Update the callgraph correctly in ArgumentPromotion.

llvm-svn: 55895
diff --git a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
index b508714..f3b29fe 100644
--- a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
+++ b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
@@ -607,6 +607,10 @@
   // 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 @@
     // 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);