summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
diff options
context:
space:
mode:
authorPatrik Hagglund <patrik.h.hagglund@ericsson.com>2016-06-20 09:10:10 +0000
committerPatrik Hagglund <patrik.h.hagglund@ericsson.com>2016-06-20 09:10:10 +0000
commit720521559114a6941a77fc15a2a5f07e211793a6 (patch)
treeca368383aa5de012f1b68c9aa6fa632766c55d41 /llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
parente178c2f7c648ebb32fd889e04c281490348e66b1 (diff)
downloadbcm5719-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.cpp5
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 &&
OpenPOWER on IntegriCloud