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:
parent
049bdcac49
commit
2029ea04f9
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue