summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/HoistPHIConstants.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2001-10-18 05:27:33 +0000
committerChris Lattner <sabre@nondot.org>2001-10-18 05:27:33 +0000
commit6fea0324d7b8207fdfe5a36450ac6e9a69757b87 (patch)
treeff7f6a070986a457effb08b4b3dc20b0b348445a /llvm/lib/Transforms/HoistPHIConstants.cpp
parentfb742a58eedf1eb22735d411c604db68bac2466b (diff)
downloadbcm5719-llvm-6fea0324d7b8207fdfe5a36450ac6e9a69757b87.tar.gz
bcm5719-llvm-6fea0324d7b8207fdfe5a36450ac6e9a69757b87.zip
Convert to new simpler pass itf
llvm-svn: 880
Diffstat (limited to 'llvm/lib/Transforms/HoistPHIConstants.cpp')
-rw-r--r--llvm/lib/Transforms/HoistPHIConstants.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/HoistPHIConstants.cpp b/llvm/lib/Transforms/HoistPHIConstants.cpp
index de806fc4098..a47ab26c75f 100644
--- a/llvm/lib/Transforms/HoistPHIConstants.cpp
+++ b/llvm/lib/Transforms/HoistPHIConstants.cpp
@@ -40,8 +40,9 @@ static Value *NormalizePhiOperand(PHINode *PN, Value *CPV,
// Entry point for normalizing constant args in PHIs
//---------------------------------------------------------------------------
-bool HoistPHIConstants::doPerMethodWork(Method *M) {
+bool HoistPHIConstants::doHoistPHIConstants(Method *M) {
CachedCopyMap Cache;
+ bool Changed = false;
for (Method::iterator BI = M->begin(), BE = M->end(); BI != BE; ++BI)
for (BasicBlock::iterator II = (*BI)->begin(); II != (*BI)->end(); ++II) {
@@ -51,11 +52,13 @@ bool HoistPHIConstants::doPerMethodWork(Method *M) {
PHINode *PN = cast<PHINode>(Inst);
for (unsigned i = 0; i < PN->getNumIncomingValues(); ++i) {
Value *Op = PN->getIncomingValue(i);
- if (isa<ConstPoolVal>(Op))
+ if (isa<ConstPoolVal>(Op)) {
PN->setIncomingValue(i,
NormalizePhiOperand(PN, Op, PN->getIncomingBlock(i), Cache));
+ Changed = true;
+ }
}
}
- return false;
+ return Changed;
}
OpenPOWER on IntegriCloud