Adjust to changes in instruction interfaces.
llvm-svn: 19900
diff --git a/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp b/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
index 5afcd70..a823e14 100644
--- a/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
+++ b/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
@@ -156,13 +156,12 @@
// See if this made any operands dead. We do it this way in case the
// instruction uses the same operand twice. We don't want to delete a
// value then reference it.
- while (unsigned NumOps = I->getNumOperands()) {
- Instruction *Op = dyn_cast<Instruction>(I->getOperand(NumOps-1));
- I->op_erase(I->op_end()-1); // Drop from the operand list.
-
- if (Op) DeadInsts.insert(Op); // Attempt to nuke it later.
+ for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i) {
+ if (Instruction *Op = dyn_cast<Instruction>(I->getOperand(i)))
+ DeadInsts.insert(Op); // Attempt to nuke it later.
+ I->setOperand(i, 0); // Drop from the operand list.
}
- I->getParent()->getInstList().erase(I);
+ I->eraseFromParent();
++NumOther;
}