Don't insert and erase load instruction. Simply create (new) and delete it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167196 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jakub Staszak 2012-11-01 01:10:43 +00:00
parent 647d6d7d3b
commit 5801ff93e3

View File

@ -2521,12 +2521,12 @@ private:
// the computed value, and then replace the placeholder with LI, leaving
// LI only used for this computation.
Value *Placeholder
= IRB.CreateLoad(UndefValue::get(LI.getType()->getPointerTo()));
= new LoadInst(UndefValue::get(LI.getType()->getPointerTo()));
V = insertInteger(TD, IRB, Placeholder, V, BeginOffset,
getName(".insert"));
LI.replaceAllUsesWith(V);
Placeholder->replaceAllUsesWith(&LI);
cast<Instruction>(Placeholder)->eraseFromParent();
delete Placeholder;
if (Pass.DeadSplitInsts.insert(&LI))
Pass.DeadInsts.push_back(&LI);
DEBUG(dbgs() << " to: " << *V << "\n");