aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-10-21 15:32:34 +0000
committerChris Lattner <sabre@nondot.org>2002-10-21 15:32:34 +0000
commiteff0da9d33b0067044638b9e53edf462a96e6eab (patch)
treee563e52c6f1c8bedb5292f96cf6815c3cd4f9b90
parent99a22847ba3bb8e868fd13cc1d0ca30fff956e57 (diff)
Add another copy ctor form
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4251 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Analysis/DSGraph.h7
-rw-r--r--include/llvm/Analysis/DataStructure/DSGraph.h7
-rw-r--r--lib/Analysis/DataStructure/DataStructure.cpp5
3 files changed, 17 insertions, 2 deletions
diff --git a/include/llvm/Analysis/DSGraph.h b/include/llvm/Analysis/DSGraph.h
index 9324cb7a3c..2a68365585 100644
--- a/include/llvm/Analysis/DSGraph.h
+++ b/include/llvm/Analysis/DSGraph.h
@@ -473,7 +473,12 @@ class DSGraph {
public:
DSGraph() : Func(0) {} // Create a new, empty, DSGraph.
DSGraph(Function &F); // Compute the local DSGraph
- DSGraph(const DSGraph &DSG); // Copy ctor
+
+ // Copy ctor - If you want to capture the node mapping between the source and
+ // destination graph, you may optionally do this by specifying a map to record
+ // this into.
+ DSGraph(const DSGraph &DSG);
+ DSGraph(const DSGraph &DSG, std::map<const DSNode*, DSNode*> &BUNodeMapTy);
~DSGraph();
bool hasFunction() const { return Func != 0; }
diff --git a/include/llvm/Analysis/DataStructure/DSGraph.h b/include/llvm/Analysis/DataStructure/DSGraph.h
index 9324cb7a3c..2a68365585 100644
--- a/include/llvm/Analysis/DataStructure/DSGraph.h
+++ b/include/llvm/Analysis/DataStructure/DSGraph.h
@@ -473,7 +473,12 @@ class DSGraph {
public:
DSGraph() : Func(0) {} // Create a new, empty, DSGraph.
DSGraph(Function &F); // Compute the local DSGraph
- DSGraph(const DSGraph &DSG); // Copy ctor
+
+ // Copy ctor - If you want to capture the node mapping between the source and
+ // destination graph, you may optionally do this by specifying a map to record
+ // this into.
+ DSGraph(const DSGraph &DSG);
+ DSGraph(const DSGraph &DSG, std::map<const DSNode*, DSNode*> &BUNodeMapTy);
~DSGraph();
bool hasFunction() const { return Func != 0; }
diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp
index cc0b8d8fc5..4b3be84aaf 100644
--- a/lib/Analysis/DataStructure/DataStructure.cpp
+++ b/lib/Analysis/DataStructure/DataStructure.cpp
@@ -371,6 +371,11 @@ DSGraph::DSGraph(const DSGraph &G) : Func(G.Func) {
RetNode = cloneInto(G, ValueMap, NodeMap);
}
+DSGraph::DSGraph(const DSGraph &G, std::map<const DSNode*, DSNode*> &NodeMap)
+ : Func(G.Func) {
+ RetNode = cloneInto(G, ValueMap, NodeMap);
+}
+
DSGraph::~DSGraph() {
FunctionCalls.clear();
ValueMap.clear();