fix a latent bug in memcpyoptimizer that my recent patches exposed: it wasn't

updating memdep when fusing stores together.  This fixes the crash optimizing
the bullet benchmark.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123091 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2011-01-08 22:19:21 +00:00
parent 0468e3e265
commit 8a629577f8

View File

@ -456,8 +456,10 @@ Instruction *MemCpyOpt::tryMergingIntoMemset(Instruction *StartInst,
// Zap all the stores.
for (SmallVector<Instruction*, 16>::const_iterator
SI = Range.TheStores.begin(),
SE = Range.TheStores.end(); SI != SE; ++SI)
SE = Range.TheStores.end(); SI != SE; ++SI) {
MD->removeInstruction(*SI);
(*SI)->eraseFromParent();
}
++NumMemSetInfer;
}
@ -912,7 +914,7 @@ bool MemCpyOpt::iterateOnFunction(Function &F) {
// Reprocess the instruction if desired.
if (RepeatInstruction) {
--BI;
if (BI != BB->begin()) --BI;
MadeChange = true;
}
}