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()))