// Reachability handling.
void updateReachableEdge(BasicBlock *, BasicBlock *);
- void processOutgoingEdges(TerminatorInst *, BasicBlock *);
+ void processOutgoingEdges(Instruction *, BasicBlock *);
Value *findConditionEquivalence(Value *) const;
// Elimination.
}
// Process the outgoing edges of a block for reachability.
-void NewGVN::processOutgoingEdges(TerminatorInst *TI, BasicBlock *B) {
+void NewGVN::processOutgoingEdges(Instruction *TI, BasicBlock *B) {
// Evaluate reachability of terminator instruction.
BranchInst *BR;
if ((BR = dyn_cast<BranchInst>(TI)) && BR->isConditional()) {
auto *Symbolized = createUnknownExpression(I);
performCongruenceFinding(I, Symbolized);
}
- processOutgoingEdges(dyn_cast<TerminatorInst>(I), I->getParent());
+ processOutgoingEdges(I, I->getParent());
}
}