summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-11-09 20:47:30 +0000
committerChris Lattner <sabre@nondot.org>2004-11-09 20:47:30 +0000
commit0d3773d8b1c0d9f841181222368feec88c8a70f1 (patch)
tree82e9d7c0c35a1f0339bd70fa2bcf8349bd931e49 /llvm/lib/Transforms/IPO/IPConstantPropagation.cpp
parente5142be4118f9a62b6bebd16064e3f47f8ba3848 (diff)
downloadbcm5719-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.cpp3
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());
OpenPOWER on IntegriCloud