LoopSimplify: Preserve DependenceAnalysis.
authorBenjamin Kramer <benny.kra@googlemail.com>
Fri, 26 Oct 2012 17:40:50 +0000 (17:40 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Fri, 26 Oct 2012 17:40:50 +0000 (17:40 +0000)
This is currently true, but may change when DA grows more aggressive caching.
Without this setting it's impossible to use DA from a LoopPass because DA is a
function pass and cannot be properly scheduled in between LoopPasses. The
LoopManager reacts to this with an infinite loop which made this really annoying
to debug.

llvm-svn: 166788

llvm/lib/Transforms/Utils/LoopSimplify.cpp

index 8fce2ac..9d9e201 100644 (file)
@@ -46,6 +46,7 @@
 #include "llvm/LLVMContext.h"
 #include "llvm/Type.h"
 #include "llvm/Analysis/AliasAnalysis.h"
+#include "llvm/Analysis/DependenceAnalysis.h"
 #include "llvm/Analysis/Dominators.h"
 #include "llvm/Analysis/InstructionSimplify.h"
 #include "llvm/Analysis/LoopPass.h"
@@ -89,6 +90,7 @@ namespace {
 
       AU.addPreserved<AliasAnalysis>();
       AU.addPreserved<ScalarEvolution>();
+      AU.addPreserved<DependenceAnalysis>();
       AU.addPreservedID(BreakCriticalEdgesID);  // No critical edges added.
     }