[llvm] r221223 - Remove setPreservesCFG from instcombine. The pass, in particular, does not
Mark Heffernan
meheff at google.com
Mon Nov 3 17:51:02 PST 2014
Author: meheff
Date: Mon Nov 3 19:51:01 2014
New Revision: 221223
URL: http://llvm.org/viewvc/llvm-project?rev=221223&view=rev
Log:
Remove setPreservesCFG from instcombine. The pass, in particular, does not
preserve LoopSimplify because instcombine may replace branch predicates
with undef which loop simplify then replaces with always exit. Replace
setPreservesCFG with the more constrained preservation of DomTree and
LoopInfo.
Modified:
llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp
Modified: llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp?rev=221223&r1=221222&r2=221223&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp (original)
+++ llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp Mon Nov 3 19:51:01 2014
@@ -90,7 +90,8 @@ INITIALIZE_PASS_END(InstCombiner, "instc
"Combine redundant instructions", false, false)
void InstCombiner::getAnalysisUsage(AnalysisUsage &AU) const {
- AU.setPreservesCFG();
+ AU.addPreserved<DominatorTreeWrapperPass>();
+ AU.addPreserved<LoopInfo>();
AU.addRequired<AssumptionTracker>();
AU.addRequired<TargetLibraryInfo>();
}
More information about the llvm-commits
mailing list