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 | c890bfe1da56e3740d633559f3ea9bd33ee6d2f7 (patch) | |
tree | a45f851f86833362bc90aaf72b8328b106ef1609 /lib/Transforms/IPO/IPConstantPropagation.cpp | |
parent | 8ee9da05ed8d6b6538c1453adaf6f3f1f1366806 (diff) | |
download | external_llvm-c890bfe1da56e3740d633559f3ea9bd33ee6d2f7.zip external_llvm-c890bfe1da56e3740d633559f3ea9bd33ee6d2f7.tar.gz external_llvm-c890bfe1da56e3740d633559f3ea9bd33ee6d2f7.tar.bz2 |
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!)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17657 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO/IPConstantPropagation.cpp')
-rw-r--r-- | lib/Transforms/IPO/IPConstantPropagation.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Transforms/IPO/IPConstantPropagation.cpp b/lib/Transforms/IPO/IPConstantPropagation.cpp index 64d1df8..a1e09e6 100644 --- a/lib/Transforms/IPO/IPConstantPropagation.cpp +++ b/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()); |