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();
|
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.
|
// 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
|
// 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
|
// nothing! In particular, externally visible globals and unresolvable call
|
||||||
|
Loading…
Reference in New Issue
Block a user