Revert earlier change removing setPreservesCFG from instcombine (r221223) and
authorMark Heffernan <meheff@google.com>
Tue, 4 Nov 2014 23:02:09 +0000 (23:02 +0000)
committerMark Heffernan <meheff@google.com>
Tue, 4 Nov 2014 23:02:09 +0000 (23:02 +0000)
change LoopSimplifyPass to be !isCFGOnly.  The motivation for the earlier patch
(r221223) was that LoopSimplify is not preserved by instcombine though
setPreservesCFG indicates that it is.  This change fixes the issue
by making setPreservesCFG no longer imply LoopSimplifyPass, and is therefore less
invasive.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221311 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/InstCombine/InstructionCombining.cpp
lib/Transforms/Utils/LoopSimplify.cpp

index 4b7f841e2cdabda7b81e6d417d0b838e5f223688..5a0b01eca5c5f043645b53c5f3ba996b33e7cc0b 100644 (file)
@@ -90,8 +90,7 @@ INITIALIZE_PASS_END(InstCombiner, "instcombine",
                 "Combine redundant instructions", false, false)
 
 void InstCombiner::getAnalysisUsage(AnalysisUsage &AU) const {
-  AU.addPreserved<DominatorTreeWrapperPass>();
-  AU.addPreserved<LoopInfo>();
+  AU.setPreservesCFG();
   AU.addRequired<AssumptionTracker>();
   AU.addRequired<TargetLibraryInfo>();
 }
index c5a4adf11687e1d8cde66f24937b8115cfafd11d..af0501fc2426fe1a520ece226bfd1e70d2d77b45 100644 (file)
@@ -778,12 +778,12 @@ namespace {
 
 char LoopSimplify::ID = 0;
 INITIALIZE_PASS_BEGIN(LoopSimplify, "loop-simplify",
-                "Canonicalize natural loops", true, false)
+                "Canonicalize natural loops", false, false)
 INITIALIZE_PASS_DEPENDENCY(AssumptionTracker)
 INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass)
 INITIALIZE_PASS_DEPENDENCY(LoopInfo)
 INITIALIZE_PASS_END(LoopSimplify, "loop-simplify",
-                "Canonicalize natural loops", true, false)
+                "Canonicalize natural loops", false, false)
 
 // Publicly exposed interface to pass...
 char &llvm::LoopSimplifyID = LoopSimplify::ID;