// destination. This is a nontrivial operation because the successors of this
// basic block must have their PHI nodes updated.
//
-bool ConstantFoldTerminator(BasicBlock *BB, BasicBlock::iterator &I,
- TerminatorInst *T);
+bool ConstantFoldTerminator(BasicBlock *BB);
//===----------------------------------------------------------------------===//
// constant value, convert it into an unconditional branch to the constant
// destination.
//
-bool ConstantFoldTerminator(BasicBlock *BB, BasicBlock::iterator &II,
- TerminatorInst *T) {
+bool ConstantFoldTerminator(BasicBlock *BB) {
+ TerminatorInst *T = BB->getTerminator();
+
// Branch - See if we are conditional jumping on constant
if (BranchInst *BI = dyn_cast<BranchInst>(T)) {
if (BI->isUnconditional()) return false; // Can't optimize uncond branch
// Set the unconditional destination, and change the insn to be an
// unconditional branch.
BI->setUnconditionalDest(Destination);
- II = BB->end()-1; // Update instruction iterator!
return true;
}
#if 0