1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00

When we complete the bottom-up pass, make sure to merge the globals in 'main' into

the globals graph.

llvm-svn: 11562
This commit is contained in:
Chris Lattner 2004-02-17 19:06:47 +00:00
parent f2b699b98b
commit d9e1a49650

View File

@ -57,6 +57,23 @@ bool BUDataStructures::run(Module &M) {
NumCallEdges += ActualCallees.size();
// At the end of the BU phase, clone the BU graph for main into the globals
// graph to make sure it has everything.
if (MainFunc) {
DSGraph &MainGraph = getOrCreateGraph(MainFunc);
DSScalarMap &MainSM = MainGraph.getScalarMap();
ReachabilityCloner RC(*GlobalsGraph, MainGraph, DSGraph::StripAllocaBit);
// Clone everything reachable from globals in the "main" graph into the
// globals graph.
for (DSScalarMap::global_iterator I = MainSM.global_begin(),
E = MainSM.global_end(); I != E; ++I)
RC.getClonedNH(MainSM[*I]);
}
// At the end of the bottom-up pass, the globals graph becomes complete.
// FIXME: This is not the right way to do this, but it is sorta better than
// nothing! In particular, externally visible globals and unresolvable call