diff options
| author | Duncan Sands <baldrick@free.fr> | 2008-09-08 11:08:09 +0000 |
|---|---|---|
| committer | Duncan Sands <baldrick@free.fr> | 2008-09-08 11:08:09 +0000 |
| commit | fd5437a0888dfc9448b40d33330859997a5db445 (patch) | |
| tree | 71746c025bf36f8ffb84b65f1b96a0fa19a95ded /lib/Transforms/IPO | |
| parent | 148c539e3dab2f2579e4601485d11c7272339b95 (diff) | |
| download | external_llvm-fd5437a0888dfc9448b40d33330859997a5db445.zip external_llvm-fd5437a0888dfc9448b40d33330859997a5db445.tar.gz external_llvm-fd5437a0888dfc9448b40d33330859997a5db445.tar.bz2 | |
Update the callgraph correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55896 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO')
| -rw-r--r-- | lib/Transforms/IPO/StructRetPromotion.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Transforms/IPO/StructRetPromotion.cpp b/lib/Transforms/IPO/StructRetPromotion.cpp index 2a7de3d..8e6415b 100644 --- a/lib/Transforms/IPO/StructRetPromotion.cpp +++ b/lib/Transforms/IPO/StructRetPromotion.cpp @@ -252,7 +252,7 @@ Function *SRETPromotion::cloneFunctionBody(Function *F, /// updateCallSites - Update all sites that call F to use NF. void SRETPromotion::updateCallSites(Function *F, Function *NF) { - + CallGraph &CG = getAnalysis<CallGraph>(); SmallVector<Value*, 16> Args; // ParamAttrs - Keep track of the parameter attributes for the arguments. @@ -303,6 +303,9 @@ void SRETPromotion::updateCallSites(Function *F, Function *NF) { ArgAttrsVec.clear(); New->takeName(Call); + // Update the callgraph to know that the callsite has been transformed. + CG[Call->getParent()->getParent()]->replaceCallSite(Call, New); + // Update all users of sret parameter to extract value using extractvalue. for (Value::use_iterator UI = FirstCArg->use_begin(), UE = FirstCArg->use_end(); UI != UE; ) { |
