diff --git a/lib/Transforms/Utils/LoopSimplify.cpp b/lib/Transforms/Utils/LoopSimplify.cpp index 69b2ec44470..fcea05402d0 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(); for (BasicBlock::iterator I = L->getHeader()->begin(); (PN = dyn_cast(I++)); ) - if (Value *V = PN->hasConstantValue(true)) - if (!isa(V) || - DS.dominates(cast(V)->getParent(), L->getHeader())) { + if (Value *V = PN->hasConstantValue()) { PN->replaceAllUsesWith(V); PN->eraseFromParent(); }