diff options
-rw-r--r-- | lib/Transforms/Scalar/DeadStoreElimination.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Transforms/Scalar/DeadStoreElimination.cpp b/lib/Transforms/Scalar/DeadStoreElimination.cpp index b48bbeae66..e6a05b7e90 100644 --- a/lib/Transforms/Scalar/DeadStoreElimination.cpp +++ b/lib/Transforms/Scalar/DeadStoreElimination.cpp @@ -132,7 +132,8 @@ bool DSE::runOnBasicBlock(BasicBlock &BB) { // If we deleted a store, reinvestigate this instruction. if (deletedStore) { - --BBI; + if (!isa<TerminatorInst>(BB.begin())) + --BBI; continue; } } @@ -160,7 +161,8 @@ bool DSE::runOnBasicBlock(BasicBlock &BB) { DT.dominates(dep, L))) { DeleteDeadInstruction(S); - --BBI; + if (!isa<TerminatorInst>(BB.begin())) + --BBI; NumFastStores++; MadeChange = true; } else |