diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp b/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp index b48bbeae66b..e6a05b7e90b 100644 --- a/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp +++ b/llvm/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 |

