diff options
author | Patrik Hagglund <patrik.h.hagglund@ericsson.com> | 2016-06-20 09:10:10 +0000 |
---|---|---|
committer | Patrik Hagglund <patrik.h.hagglund@ericsson.com> | 2016-06-20 09:10:10 +0000 |
commit | 720521559114a6941a77fc15a2a5f07e211793a6 (patch) | |
tree | ca368383aa5de012f1b68c9aa6fa632766c55d41 /llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp | |
parent | e178c2f7c648ebb32fd889e04c281490348e66b1 (diff) | |
download | bcm5719-llvm-720521559114a6941a77fc15a2a5f07e211793a6.tar.gz bcm5719-llvm-720521559114a6941a77fc15a2a5f07e211793a6.zip |
Fix for PR27940
After a store has been eliminated, when making sure that the
instruction iterator points to a valid instruction, dbg intrinsics are
now ignored as a new instruction.
Patch by Henric Karlsson.
Reviewed by Daniel Berlin.
Differential Revision: http://reviews.llvm.org/D21076
llvm-svn: 273141
Diffstat (limited to 'llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp b/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp index 4cdc314ff87..d1687d680d4 100644 --- a/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp +++ b/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp @@ -851,8 +851,9 @@ static bool eliminateDeadStores(BasicBlock &BB, AliasAnalysis *AA, // deleteDeadInstruction can delete the current instruction in loop // cases, reset BBI. BBI = Inst->getIterator(); - if (BBI != BB.begin()) - --BBI; + auto BBBegin = BB.begin(); + while (BBI != BBBegin && isa<DbgInfoIntrinsic>(*(--BBI))) + ; break; } else if ((OR == OverwriteEnd && isShortenableAtTheEnd(DepWrite)) || ((OR == OverwriteBegin && |