map from instruction* to SCEVHandles. When we delete instructions, we have
to tell it about it. We would run into nasty cases where new instructions
were reallocated at old instruction addresses and get the old map values.
Bad bad bad :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22632
91177308-0d34-0410-b5e6-
96231b3b80d8
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i)
if (Instruction *U = dyn_cast<Instruction>(I->getOperand(i)))
Insts.insert(U);
- I->getParent()->getInstList().erase(I);
+ SE->deleteInstructionFromRecords(I);
+ I->eraseFromParent();
Changed = true;
}
}
DeadInsts.insert(BO);
// Break the cycle, then delete the PHI.
PN->replaceAllUsesWith(UndefValue::get(PN->getType()));
+ SE->deleteInstructionFromRecords(PN);
PN->eraseFromParent();
}
}