diff --git a/include/llvm/Analysis/DataStructure/DSGraph.h b/include/llvm/Analysis/DataStructure/DSGraph.h index 9da47af5fed..22a31bd311e 100644 --- a/include/llvm/Analysis/DataStructure/DSGraph.h +++ b/include/llvm/Analysis/DataStructure/DSGraph.h @@ -106,6 +106,8 @@ public: typedef GlobalSetTy::const_iterator global_iterator; global_iterator global_begin() const { return GlobalSet.begin(); } global_iterator global_end() const { return GlobalSet.end(); } + unsigned global_size() const { return GlobalSet.size(); } + unsigned global_count(GlobalValue *GV) const { return GlobalSet.count(GV); } }; @@ -399,6 +401,12 @@ public: /// graph to nodes in this graph. void computeGGToGMapping(InvNodeMapTy &InvNodeMap); + /// computeCalleeCallerMapping - Given a call from a function in the current + /// graph to the 'Callee' function (which lives in 'CalleeGraph'), compute the + /// mapping of nodes from the callee to nodes in the caller. + void computeCalleeCallerMapping(DSCallSite CS, const Function &Callee, + DSGraph &CalleeGraph, NodeMapTy &NodeMap); + /// cloneInto - Clone the specified DSGraph into the current graph. The /// translated ScalarMap for the old function is filled into the OldValMap /// member, and the translated ReturnNodes map is returned into ReturnNodes.