diff options
Diffstat (limited to 'lib/Analysis/DataStructure/DataStructure.cpp')
-rw-r--r-- | lib/Analysis/DataStructure/DataStructure.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp index 1e47203f42..a73a942fc7 100644 --- a/lib/Analysis/DataStructure/DataStructure.cpp +++ b/lib/Analysis/DataStructure/DataStructure.cpp @@ -2084,9 +2084,10 @@ void DSGraph::computeNodeMapping(const DSNodeHandle &NH1, } -/// computeGlobalGraphMapping - Compute the mapping of nodes in the global -/// graph to nodes in this graph. -void DSGraph::computeGlobalGraphMapping(NodeMapTy &NodeMap) { +/// computeGToGGMapping - Compute the mapping of nodes in the global graph to +/// nodes in this graph. Note that any uses of this method are probably bugs, +/// unless it is known that the globals graph has been merged into this graph! +void DSGraph::computeGToGGMapping(NodeMapTy &NodeMap) { DSGraph &GG = *getGlobalsGraph(); DSScalarMap &SM = getScalarMap(); @@ -2095,3 +2096,14 @@ void DSGraph::computeGlobalGraphMapping(NodeMapTy &NodeMap) { DSGraph::computeNodeMapping(SM[*I], GG.getNodeForValue(*I), NodeMap); } +/// computeGGToGMapping - Compute the mapping of nodes in the global graph to +/// nodes in this graph. +void DSGraph::computeGGToGMapping(NodeMapTy &NodeMap) { + DSGraph &GG = *getGlobalsGraph(); + + DSScalarMap &SM = getScalarMap(); + for (DSScalarMap::global_iterator I = SM.global_begin(), + E = SM.global_end(); I != E; ++I) + DSGraph::computeNodeMapping(GG.getNodeForValue(*I), SM[*I], NodeMap); +} + |