CallGraphNode(const CallGraphNode &); // Do not implement
public:
+ typedef std::vector<CallRecord> CalledFunctionsVector;
+
//===---------------------------------------------------------------------
// Accessor methods...
//
CalledFunctions.clear();
}
- /// addCalledFunction add a function to the list of functions called by this
+ /// addCalledFunction - Add a function to the list of functions called by this
/// one.
void addCalledFunction(CallSite CS, CallGraphNode *M) {
CalledFunctions.push_back(std::make_pair(CS, M));
}
- /// removeCallEdgeTo - This method removes a *single* edge to the specified
- /// callee function. Note that this method takes linear time, so it should be
- /// used sparingly.
- void removeCallEdgeTo(CallGraphNode *Callee);
-
/// removeCallEdgeFor - This method removes the edge in the node for the
/// specified call site. Note that this method takes linear time, so it
/// should be used sparingly.
void removeCallEdgeFor(CallSite CS);
- /// removeAnyCallEdgeTo - This method removes any call edges from this node to
- /// the specified callee function. This takes more time to execute than
+ /// removeAnyCallEdgeTo - This method removes all call edges from this node
+ /// to the specified callee function. This takes more time to execute than
/// removeCallEdgeTo, so it should not be used unless necessary.
void removeAnyCallEdgeTo(CallGraphNode *Callee);
+ /// removeOneAbstractEdgeTo - Remove one edge associated with a null callsite
+ /// from this node to the specified callee function.
+ void removeOneAbstractEdgeTo(CallGraphNode *Callee);
+
+ /// replaceCallSite - Make the edge in the node for Old CallSite be for
+ /// New CallSite instead. Note that this method takes linear time, so it
+ /// should be used sparingly.
+ void replaceCallSite(CallSite Old, CallSite New);
+
friend class CallGraph;
// CallGraphNode ctor - Create a node for the specified function.