mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-30 02:25:19 +00:00
Changes to be GCC3.1 friendly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3186 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -235,7 +235,7 @@ DSGraph &BUDataStructures::calculateGraph(Function &F) {
|
|||||||
Graph->markIncompleteNodes();
|
Graph->markIncompleteNodes();
|
||||||
Graph->removeDeadNodes(/*KeepAllGlobals*/ false, /*KeepCalls*/ false);
|
Graph->removeDeadNodes(/*KeepAllGlobals*/ false, /*KeepCalls*/ false);
|
||||||
|
|
||||||
DEBUG(cerr << " [BU] Done inlining: " << F.getName() << "\n");
|
DEBUG(std::cerr << " [BU] Done inlining: " << F.getName() << "\n");
|
||||||
|
|
||||||
return *Graph;
|
return *Graph;
|
||||||
}
|
}
|
||||||
|
@@ -349,9 +349,8 @@ bool DSGraph::isNodeDead(DSNode *N) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void removeIdenticalCalls(std::vector<std::vector<DSNodeHandle> > &Calls,
|
||||||
removeIdenticalCalls(std::vector<std::vector<DSNodeHandle> >& Calls,
|
const std::string &where) {
|
||||||
const string& where) {
|
|
||||||
// Remove trivially identical function calls
|
// Remove trivially identical function calls
|
||||||
unsigned NumFns = Calls.size();
|
unsigned NumFns = Calls.size();
|
||||||
std::sort(Calls.begin(), Calls.end());
|
std::sort(Calls.begin(), Calls.end());
|
||||||
@@ -359,8 +358,8 @@ removeIdenticalCalls(std::vector<std::vector<DSNodeHandle> >& Calls,
|
|||||||
Calls.end());
|
Calls.end());
|
||||||
|
|
||||||
DEBUG(if (NumFns != Calls.size())
|
DEBUG(if (NumFns != Calls.size())
|
||||||
std::cerr << "Merged " << (NumFns-Calls.size())
|
std::cerr << "Merged " << (NumFns-Calls.size())
|
||||||
<< " call nodes in " << where << "\n";);
|
<< " call nodes in " << where << "\n";);
|
||||||
}
|
}
|
||||||
|
|
||||||
// removeTriviallyDeadNodes - After the graph has been constructed, this method
|
// removeTriviallyDeadNodes - After the graph has been constructed, this method
|
||||||
@@ -727,7 +726,7 @@ void GlobalDSGraph::cloneCalls(DSGraph& Graph) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// remove trivially identical function calls
|
// remove trivially identical function calls
|
||||||
removeIdenticalCalls(FunctionCalls, string("Globals Graph"));
|
removeIdenticalCalls(FunctionCalls, "Globals Graph");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -759,3 +758,4 @@ bool LocalDataStructures::run(Module &M) {
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -168,7 +168,7 @@ DSGraph &TDDataStructures::calculateGraph(Function &F) {
|
|||||||
// Find the callers of this function recorded during the BU pass
|
// Find the callers of this function recorded during the BU pass
|
||||||
std::set<Function*> &PendingCallers = BUGraph.getPendingCallers();
|
std::set<Function*> &PendingCallers = BUGraph.getPendingCallers();
|
||||||
|
|
||||||
DEBUG(cerr << " [TD] Inlining callers for: " << F.getName() << "\n");
|
DEBUG(std::cerr << " [TD] Inlining callers for: " << F.getName() << "\n");
|
||||||
|
|
||||||
for (std::set<Function*>::iterator I=PendingCallers.begin(),
|
for (std::set<Function*>::iterator I=PendingCallers.begin(),
|
||||||
E=PendingCallers.end(); I != E; ++I) {
|
E=PendingCallers.end(); I != E; ++I) {
|
||||||
@@ -176,7 +176,7 @@ DSGraph &TDDataStructures::calculateGraph(Function &F) {
|
|||||||
assert(! caller.isExternal() && "Externals unexpected in callers list");
|
assert(! caller.isExternal() && "Externals unexpected in callers list");
|
||||||
|
|
||||||
DEBUG(std::cerr << "\t [TD] Inlining " << caller.getName()
|
DEBUG(std::cerr << "\t [TD] Inlining " << caller.getName()
|
||||||
<< " into callee: " << F.getName() << "\n");
|
<< " into callee: " << F.getName() << "\n");
|
||||||
|
|
||||||
// These two maps keep track of where scalars in the old graph _used_
|
// These two maps keep track of where scalars in the old graph _used_
|
||||||
// to point to, and of new nodes matching nodes of the old graph.
|
// to point to, and of new nodes matching nodes of the old graph.
|
||||||
@@ -194,8 +194,8 @@ DSGraph &TDDataStructures::calculateGraph(Function &F) {
|
|||||||
//
|
//
|
||||||
DSGraph &callerGraph = calculateGraph(caller); // Graph to inline
|
DSGraph &callerGraph = calculateGraph(caller); // Graph to inline
|
||||||
|
|
||||||
DEBUG(cerr << "\t\t[TD] Got graph for " << caller.getName() << " in: "
|
DEBUG(std::cerr << "\t\t[TD] Got graph for " << caller.getName()
|
||||||
<< F.getName() << "\n");
|
<< " in: " << F.getName() << "\n");
|
||||||
|
|
||||||
// Clone the caller's graph into the current graph, keeping
|
// Clone the caller's graph into the current graph, keeping
|
||||||
// track of where scalars in the old graph _used_ to point...
|
// track of where scalars in the old graph _used_ to point...
|
||||||
@@ -218,7 +218,8 @@ DSGraph &TDDataStructures::calculateGraph(Function &F) {
|
|||||||
/*&& FIXME: NEED TO CHECK IF ALL CALLERS FOUND!*/);
|
/*&& FIXME: NEED TO CHECK IF ALL CALLERS FOUND!*/);
|
||||||
Graph->removeDeadNodes(/*KeepAllGlobals*/ false, /*KeepCalls*/ false);
|
Graph->removeDeadNodes(/*KeepAllGlobals*/ false, /*KeepCalls*/ false);
|
||||||
|
|
||||||
DEBUG(cerr << " [TD] Done inlining callers for: " << F.getName() << "\n");
|
DEBUG(std::cerr << " [TD] Done inlining callers for: "
|
||||||
|
<< F.getName() << "\n");
|
||||||
|
|
||||||
return *Graph;
|
return *Graph;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user