Added a first-class representation for each call site that can be
used in the DS graphs.  Essentially, what was vector<DSNodeHandle>
before is now a DSCallSite with the same vector, plus pointers to the
CallInst and the caller Function.  The special-purpose class
BUDataStructure::CallSite is no longer needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4228 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/DataStructure/Local.cpp b/lib/Analysis/DataStructure/Local.cpp
index b276523..15b3a96 100644
--- a/lib/Analysis/DataStructure/Local.cpp
+++ b/lib/Analysis/DataStructure/Local.cpp
@@ -61,12 +61,12 @@
     vector<DSNode*> &Nodes;
     DSNodeHandle &RetNode;               // Node that gets returned...
     map<Value*, DSNodeHandle> &ValueMap;
-    vector<vector<DSNodeHandle> > &FunctionCalls;
+    vector<DSCallSite> &FunctionCalls;
 
   public:
     GraphBuilder(DSGraph &g, vector<DSNode*> &nodes, DSNodeHandle &retNode,
                  map<Value*, DSNodeHandle> &vm,
-                 vector<vector<DSNodeHandle> > &fc)
+                 vector<DSCallSite> &fc)
       : G(g), Nodes(nodes), RetNode(retNode), ValueMap(vm), FunctionCalls(fc) {
 
       // Create scalar nodes for all pointer arguments...
@@ -356,8 +356,8 @@
 
 void GraphBuilder::visitCallInst(CallInst &CI) {
   // Add a new function call entry...
-  FunctionCalls.push_back(vector<DSNodeHandle>());
-  vector<DSNodeHandle> &Args = FunctionCalls.back();
+  FunctionCalls.push_back(DSCallSite(G.getFunction(), CI));
+  DSCallSite &Args = FunctionCalls.back();
 
   // Set up the return value...
   if (isPointerType(CI.getType()))