projects
/
oota-llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
da7d069
)
Fix bug: IndVarsSimplify/2003-12-10-RemoveInstrCrash.llx
author
Chris Lattner
<sabre@nondot.org>
Wed, 10 Dec 2003 20:43:04 +0000
(20:43 +0000)
committer
Chris Lattner
<sabre@nondot.org>
Wed, 10 Dec 2003 20:43:04 +0000
(20:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10385
91177308
-0d34-0410-b5e6-
96231b3b80d8
lib/Transforms/Scalar/IndVarSimplify.cpp
patch
|
blob
|
history
diff --git
a/lib/Transforms/Scalar/IndVarSimplify.cpp
b/lib/Transforms/Scalar/IndVarSimplify.cpp
index 369be4768417287a8785a25ce7b843b25a06d889..ed5aca372ab0469aab9d44a109732b2998b38780 100644
(file)
--- a/
lib/Transforms/Scalar/IndVarSimplify.cpp
+++ b/
lib/Transforms/Scalar/IndVarSimplify.cpp
@@
-140,6
+140,8
@@
static bool TransformLoop(LoopInfo *Loops, Loop *Loop) {
DEBUG(IV->print(std::cerr));
+ while (isa<PHINode>(AfterPHIIt)) ++AfterPHIIt;
+
// Don't do math with pointers...
const Type *IVTy = IV->Phi->getType();
if (isa<PointerType>(IVTy)) IVTy = Type::ULongTy;
@@
-204,6
+206,9
@@
static bool TransformLoop(LoopInfo *Loops, Loop *Loop) {
PHIOps.insert(PHIOps.end(), MaybeDead->op_begin(),
MaybeDead->op_end());
MaybeDead->getParent()->getInstList().erase(MaybeDead);
+
+ // Erasing the instruction could invalidate the AfterPHI iterator!
+ AfterPHIIt = Header->begin();
}
}