// This transformation requires dominator and immediate dominator info
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesCFG();
- AU.addRequired<ETForest>();
AU.addRequired<DominatorTree>();
AU.addRequired<ValueNumbering>();
}
// Get pointers to the analysis results that we will be using...
DominatorTree &DT = getAnalysis<DominatorTree>();
- ETForest &ET = getAnalysis<ETForest>();
ValueNumbering &VN = getAnalysis<ValueNumbering>();
std::vector<Value*> EqualValues;
if (OtherI->getParent() == BB)
Dominates = BlockInsts.count(OtherI);
else
- Dominates = ET.dominates(OtherI->getParent(), BB);
+ Dominates = DT.dominates(OtherI->getParent(), BB);
if (Dominates) {
// Okay, we found an instruction with the same value as this one