Update the callgraph correctly in ArgumentPromotion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55895 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands
2008-09-08 11:07:35 +00:00
parent d7b9851c4e
commit 34c8847b2d
3 changed files with 44 additions and 0 deletions

View File

@ -607,6 +607,10 @@ Function *ArgPromotion::DoPromotion(Function *F,
// changes.
AliasAnalysis &AA = getAnalysis<AliasAnalysis>();
// Get the callgraph information that we need to update to reflect our
// changes.
CallGraph &CG = getAnalysis<CallGraph>();
// Loop over all of the callers of the function, transforming the call sites
// to pass in the loaded pointers.
//
@ -710,6 +714,9 @@ Function *ArgPromotion::DoPromotion(Function *F,
// the old call with a new one.
AA.replaceWithNewValue(Call, New);
// Update the callgraph to know that the callsite has been transformed.
CG[Call->getParent()->getParent()]->replaceCallSite(Call, New);
if (!Call->use_empty()) {
Call->replaceAllUsesWith(New);
New->takeName(Call);