Clean up dead operands left around after SROA replaces a mem intrinsic.

I'm not aware that this does anything significant on its own, but it's
needed for another patch that I'm working on.

llvm-svn: 90864
This commit is contained in:
Bob Wilson 2009-12-08 18:22:03 +00:00
parent 049bdcac49
commit 2029ea04f9
1 changed files with 6 additions and 0 deletions

View File

@ -769,6 +769,10 @@ void SROA::RewriteMemIntrinUserOfAlloca(MemIntrinsic *MI, Instruction *BCInst,
OtherPtr = MTI->getRawDest();
}
}
// Keep track of the other intrinsic argument, so it can be removed if it
// is dead when the intrinsic is replaced.
Value *PossiblyDead = OtherPtr;
// If there is an other pointer, we want to convert it to the same pointer
// type as AI has, so we can GEP through it safely.
@ -922,6 +926,8 @@ void SROA::RewriteMemIntrinUserOfAlloca(MemIntrinsic *MI, Instruction *BCInst,
}
}
MI->eraseFromParent();
if (PossiblyDead)
RecursivelyDeleteTriviallyDeadInstructions(PossiblyDead);
}
/// RewriteStoreUserOfWholeAlloca - We found a store of an integer that