mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-10 20:33:15 +00:00
Rearrange code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5527 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
88c7294b80
commit
4f2cfc0d74
@ -103,6 +103,15 @@ void TDDataStructures::calculateGraph(Function &F) {
|
|||||||
// Get the current functions graph...
|
// Get the current functions graph...
|
||||||
DSGraph &Graph = getOrCreateDSGraph(F);
|
DSGraph &Graph = getOrCreateDSGraph(F);
|
||||||
|
|
||||||
|
// Recompute the Incomplete markers and eliminate unreachable nodes.
|
||||||
|
Graph.maskIncompleteMarkers();
|
||||||
|
// FIXME: Need to check if all callers have been found, or rather if a
|
||||||
|
// funcpointer escapes!
|
||||||
|
unsigned Flags = F.hasInternalLinkage() ?
|
||||||
|
DSGraph::IgnoreFormalArgs : DSGraph::MarkFormalArgs;
|
||||||
|
Graph.markIncompleteNodes(Flags | DSGraph::IgnoreGlobals);
|
||||||
|
Graph.removeDeadNodes(DSGraph::RemoveUnreachableGlobals);
|
||||||
|
|
||||||
const std::vector<DSCallSite> &CallSites = Graph.getFunctionCalls();
|
const std::vector<DSCallSite> &CallSites = Graph.getFunctionCalls();
|
||||||
if (CallSites.empty()) {
|
if (CallSites.empty()) {
|
||||||
DEBUG(std::cerr << " [TD] No callees for: " << F.getName() << "\n");
|
DEBUG(std::cerr << " [TD] No callees for: " << F.getName() << "\n");
|
||||||
@ -153,7 +162,8 @@ void TDDataStructures::calculateGraph(Function &F) {
|
|||||||
hash_map<const DSNode*, DSNodeHandle> OldNodeMap;
|
hash_map<const DSNode*, DSNodeHandle> OldNodeMap;
|
||||||
CG.cloneInto(Graph, OldValMap, OldNodeMap,
|
CG.cloneInto(Graph, OldValMap, OldNodeMap,
|
||||||
DSGraph::StripModRefBits |
|
DSGraph::StripModRefBits |
|
||||||
DSGraph::KeepAllocaBit | DSGraph::DontCloneCallNodes);
|
DSGraph::KeepAllocaBit | DSGraph::DontCloneCallNodes |
|
||||||
|
DSGraph::DontCloneAuxCallNodes);
|
||||||
OldValMap.clear(); // We don't care about the ValMap
|
OldValMap.clear(); // We don't care about the ValMap
|
||||||
|
|
||||||
// Loop over all of the invocation sites of the callee, resolving
|
// Loop over all of the invocation sites of the callee, resolving
|
||||||
@ -194,8 +204,9 @@ void TDDataStructures::calculateGraph(Function &F) {
|
|||||||
OldNodeMap.clear();
|
OldNodeMap.clear();
|
||||||
|
|
||||||
// Recompute the Incomplete markers and eliminate unreachable nodes.
|
// Recompute the Incomplete markers and eliminate unreachable nodes.
|
||||||
|
CG.removeTriviallyDeadNodes();
|
||||||
CG.maskIncompleteMarkers();
|
CG.maskIncompleteMarkers();
|
||||||
CG.markIncompleteNodes(DSGraph::MarkFormalArgs);
|
CG.markIncompleteNodes(DSGraph::MarkFormalArgs |DSGraph::IgnoreGlobals);
|
||||||
CG.removeDeadNodes(DSGraph::RemoveUnreachableGlobals);
|
CG.removeDeadNodes(DSGraph::RemoveUnreachableGlobals);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,14 +223,5 @@ void TDDataStructures::calculateGraph(Function &F) {
|
|||||||
calculateGraph(*I->first);
|
calculateGraph(*I->first);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recompute the Incomplete markers and eliminate unreachable nodes.
|
|
||||||
Graph.maskIncompleteMarkers();
|
|
||||||
// FIXME: Need to check if all callers have been found, or rather if a
|
|
||||||
// funcpointer escapes!
|
|
||||||
unsigned Flags = F.hasInternalLinkage() ?
|
|
||||||
DSGraph::IgnoreFormalArgs : DSGraph::MarkFormalArgs;
|
|
||||||
Graph.markIncompleteNodes(Flags | DSGraph::IgnoreGlobals);
|
|
||||||
Graph.removeDeadNodes(DSGraph::RemoveUnreachableGlobals);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user