SSI needs to require DT and DF transitively, since it uses them outside of its runOnF...
[oota-llvm.git] / lib / Transforms / Utils / SSI.cpp
index e5a1dd1bb73c97e97af9b08b8b269a87f7570314..305f60e7d70647660c5bc39da596cc255a62928f 100644 (file)
@@ -37,9 +37,9 @@ STATISTIC(NumSigmaInserted, "Number of sigma functions inserted");
 STATISTIC(NumPhiInserted, "Number of phi functions inserted");
 
 void SSI::getAnalysisUsage(AnalysisUsage &AU) const {
-  AU.addRequired<DominanceFrontier>();
-  AU.addRequired<DominatorTree>();
-  AU.setPreservesCFG();
+  AU.addRequiredTransitive<DominanceFrontier>();
+  AU.addRequiredTransitive<DominatorTree>();
+  AU.setPreservesAll();
 }
 
 bool SSI::runOnFunction(Function &F) {