Fix a problem exposed by the et-forest work. Load-vn needs these passes live
whenever it is live, not just when load-vn is computed initially
llvm-svn: 25146
diff --git a/llvm/lib/Analysis/LoadValueNumbering.cpp b/llvm/lib/Analysis/LoadValueNumbering.cpp
index 16e79a1..7169b3c 100644
--- a/llvm/lib/Analysis/LoadValueNumbering.cpp
+++ b/llvm/lib/Analysis/LoadValueNumbering.cpp
@@ -95,10 +95,10 @@
///
void LoadVN::getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
- AU.addRequired<AliasAnalysis>();
+ AU.addRequiredTransitive<AliasAnalysis>();
AU.addRequired<ValueNumbering>();
- AU.addRequired<DominatorSet>();
- AU.addRequired<TargetData>();
+ AU.addRequiredTransitive<DominatorSet>();
+ AU.addRequiredTransitive<TargetData>();
}
static bool isPathTransparentTo(BasicBlock *CurBlock, BasicBlock *Dom,