diff options
author | Chris Lattner <sabre@nondot.org> | 2004-11-09 20:47:30 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-11-09 20:47:30 +0000 |
commit | 0d3773d8b1c0d9f841181222368feec88c8a70f1 (patch) | |
tree | 82e9d7c0c35a1f0339bd70fa2bcf8349bd931e49 /llvm/lib/Transforms/IPO/IPConstantPropagation.cpp | |
parent | e5142be4118f9a62b6bebd16064e3f47f8ba3848 (diff) | |
download | bcm5719-llvm-0d3773d8b1c0d9f841181222368feec88c8a70f1.tar.gz bcm5719-llvm-0d3773d8b1c0d9f841181222368feec88c8a70f1.zip |
Do not let dead constant expressions hanging off of functions prevent IPCP.
This allows to elimination of a bunch of global pool descriptor args from
programs being pool allocated (and is also generally useful!)
llvm-svn: 17657
Diffstat (limited to 'llvm/lib/Transforms/IPO/IPConstantPropagation.cpp')
-rw-r--r-- | llvm/lib/Transforms/IPO/IPConstantPropagation.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp b/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp index 64d1df8354a..a1e09e6beff 100644 --- a/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp +++ b/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp @@ -62,6 +62,9 @@ bool IPCP::runOnModule(Module &M) { bool IPCP::processFunction(Function &F) { if (F.aempty() || F.use_empty()) return false; // No arguments? Early exit. + // Delete any klingons. + F.removeDeadConstantUsers(); + std::vector<std::pair<Constant*, bool> > ArgumentConstants; ArgumentConstants.resize(F.asize()); |