LCSSA preserves dom info.
authorDevang Patel <dpatel@apple.com>
Mon, 30 Jul 2007 20:23:45 +0000 (20:23 +0000)
committerDevang Patel <dpatel@apple.com>
Mon, 30 Jul 2007 20:23:45 +0000 (20:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40604 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/LCSSA.cpp

index 3f4bad5c5135893c67cdac4cf9bc6305344b90c8..466136dea7d6c5810df2746a4041d84198a8f4b5 100644 (file)
@@ -73,6 +73,14 @@ namespace {
       AU.addPreserved<LoopInfo>();
       AU.addRequired<DominatorTree>();
       AU.addPreserved<ScalarEvolution>();
+      AU.addPreserved<DominatorTree>();
+
+      // Request DominanceFrontier now, even though LCSSA does
+      // not use it. This allows Pass Manager to schedule Dominance
+      // Frontier early enough such that one LPPassManager can handle
+      // multiple loop transformation passes.
+      AU.addRequired<DominanceFrontier>(); 
+      AU.addPreserved<DominanceFrontier>();
     }
   private:
     void getLoopValuesUsedOutsideLoop(Loop *L,