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:
parent
f2b699b98b
commit
d9e1a49650
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user