diff --git a/include/llvm/Analysis/DSGraph.h b/include/llvm/Analysis/DSGraph.h index 81979cf74ec..06b694220db 100644 --- a/include/llvm/Analysis/DSGraph.h +++ b/include/llvm/Analysis/DSGraph.h @@ -136,6 +136,12 @@ public: return I->second; } + const DSNodeHandle &getReturnNodeFor(Function &F) const { + ReturnNodesTy::const_iterator I = ReturnNodes.find(&F); + assert(I != ReturnNodes.end() && "F not in this DSGraph!"); + return I->second; + } + /// getGraphSize - Return the number of nodes in this graph. /// unsigned getGraphSize() const { @@ -218,6 +224,12 @@ public: void mergeInGraph(const DSCallSite &CS, Function &F, const DSGraph &Graph, unsigned CloneFlags); + + /// getCallSiteForArguments - Get the arguments and return value bindings for + /// the specified function in the current graph. + /// + DSCallSite getCallSiteForArguments(Function &F) const; + // Methods for checking to make sure graphs are well formed... void AssertNodeInGraph(const DSNode *N) const { assert((!N || find(Nodes.begin(), Nodes.end(), N) != Nodes.end()) && diff --git a/include/llvm/Analysis/DataStructure/DSGraph.h b/include/llvm/Analysis/DataStructure/DSGraph.h index 81979cf74ec..06b694220db 100644 --- a/include/llvm/Analysis/DataStructure/DSGraph.h +++ b/include/llvm/Analysis/DataStructure/DSGraph.h @@ -136,6 +136,12 @@ public: return I->second; } + const DSNodeHandle &getReturnNodeFor(Function &F) const { + ReturnNodesTy::const_iterator I = ReturnNodes.find(&F); + assert(I != ReturnNodes.end() && "F not in this DSGraph!"); + return I->second; + } + /// getGraphSize - Return the number of nodes in this graph. /// unsigned getGraphSize() const { @@ -218,6 +224,12 @@ public: void mergeInGraph(const DSCallSite &CS, Function &F, const DSGraph &Graph, unsigned CloneFlags); + + /// getCallSiteForArguments - Get the arguments and return value bindings for + /// the specified function in the current graph. + /// + DSCallSite getCallSiteForArguments(Function &F) const; + // Methods for checking to make sure graphs are well formed... void AssertNodeInGraph(const DSNode *N) const { assert((!N || find(Nodes.begin(), Nodes.end(), N) != Nodes.end()) &&