mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-06 04:31:08 +00:00
Eliminate the cloneGraph method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17405 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
936e5ca38b
commit
68f9658fcb
@ -151,8 +151,6 @@ namespace PA {
|
||||
|
||||
DSGraph &getOrCreateGraph(Function &F);
|
||||
|
||||
DSGraph* cloneGraph(Function &F);
|
||||
|
||||
bool hasFoldedGraph(const Function& F) const {
|
||||
hash_map<const Function*, DSGraph*>::const_iterator I =
|
||||
FoldedGraphsMap.find(const_cast<Function*>(&F));
|
||||
|
@ -194,7 +194,7 @@ void PA::EquivClassGraphs::buildIndirectFunctionSets(Module &M) {
|
||||
// This equiv class has multiple functions: merge their graphs. First,
|
||||
// clone the CBU graph for the leader and make it the common graph for the
|
||||
// equivalence graph.
|
||||
DSGraph* mergedG = cloneGraph(*LF);
|
||||
DSGraph *mergedG = &getOrCreateGraph(*LF);
|
||||
|
||||
// Record the argument nodes for use in merging later below
|
||||
EquivClassGraphArgsInfo& GraphInfo = getECGraphInfo(mergedG);
|
||||
@ -255,13 +255,7 @@ DSGraph &PA::EquivClassGraphs::getOrCreateGraph(Function &F) {
|
||||
DSGraph *&Graph = FoldedGraphsMap[&F];
|
||||
if (Graph) return *Graph;
|
||||
|
||||
return *cloneGraph(F);
|
||||
}
|
||||
|
||||
DSGraph *PA::EquivClassGraphs::cloneGraph(Function &F) {
|
||||
DSGraph *&Graph = FoldedGraphsMap[&F];
|
||||
DSGraph &CBUGraph = CBU->getDSGraph(F);
|
||||
assert(Graph == 0 && "Cloning a graph twice?");
|
||||
|
||||
// Copy the CBU graph...
|
||||
Graph = new DSGraph(CBUGraph); // updates the map via reference
|
||||
@ -278,7 +272,7 @@ DSGraph *PA::EquivClassGraphs::cloneGraph(Function &F) {
|
||||
FG = Graph;
|
||||
}
|
||||
|
||||
return Graph;
|
||||
return *Graph;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user