diff options
Diffstat (limited to 'lib/Transforms/Utils/LoopSimplify.cpp')
-rw-r--r-- | lib/Transforms/Utils/LoopSimplify.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/Transforms/Utils/LoopSimplify.cpp b/lib/Transforms/Utils/LoopSimplify.cpp index 69b2ec4447..fcea05402d 100644 --- a/lib/Transforms/Utils/LoopSimplify.cpp +++ b/lib/Transforms/Utils/LoopSimplify.cpp @@ -197,9 +197,7 @@ bool LoopSimplify::ProcessLoop(Loop *L) { DominatorSet &DS = getAnalysis<DominatorSet>(); for (BasicBlock::iterator I = L->getHeader()->begin(); (PN = dyn_cast<PHINode>(I++)); ) - if (Value *V = PN->hasConstantValue(true)) - if (!isa<Instruction>(V) || - DS.dominates(cast<Instruction>(V)->getParent(), L->getHeader())) { + if (Value *V = PN->hasConstantValue()) { PN->replaceAllUsesWith(V); PN->eraseFromParent(); } |