diff --git a/llvm/include/llvm/Analysis/DataStructure/DSGraph.h b/llvm/include/llvm/Analysis/DataStructure/DSGraph.h index e8555c65326b..430a7bf28160 100644 --- a/llvm/include/llvm/Analysis/DataStructure/DSGraph.h +++ b/llvm/include/llvm/Analysis/DataStructure/DSGraph.h @@ -154,6 +154,10 @@ public: GlobalSet.clear(); } + /// spliceFrom - Copy all entries from RHS, then clear RHS. + /// + void spliceFrom(DSScalarMap &RHS); + // Access to the global set: the set of all globals currently in the // scalar map. typedef GlobalSetTy::const_iterator global_iterator; @@ -455,6 +459,12 @@ public: void computeCalleeCallerMapping(DSCallSite CS, const Function &Callee, DSGraph &CalleeGraph, NodeMapTy &NodeMap); + /// spliceFrom - Logically perform the operation of cloning the RHS graph into + /// this graph, then clearing the RHS graph. Instead of performing this as + /// two seperate operations, do it as a single, much faster, one. + /// + void spliceFrom(DSGraph &RHS); + /// cloneInto - Clone the specified DSGraph into the current graph. /// /// The CloneFlags member controls various aspects of the cloning process.