Propagate globals graph from the local to bu to td globals graphs. This
fixes bug: DSGraph/buglobals.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6947 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/DataStructure/BottomUpClosure.cpp b/lib/Analysis/DataStructure/BottomUpClosure.cpp
index 9f50436..4592867 100644
--- a/lib/Analysis/DataStructure/BottomUpClosure.cpp
+++ b/lib/Analysis/DataStructure/BottomUpClosure.cpp
@@ -17,7 +17,7 @@
Statistic<> MaxSCC("budatastructure", "Maximum SCC Size in Call Graph");
RegisterAnalysis<BUDataStructures>
- X("budatastructure", "Bottom-up Data Structure Analysis Closure");
+ X("budatastructure", "Bottom-up Data Structure Analysis");
}
using namespace DS;
@@ -120,7 +120,8 @@
// program.
//
bool BUDataStructures::run(Module &M) {
- GlobalsGraph = new DSGraph();
+ LocalDataStructures &LocalDSA = getAnalysis<LocalDataStructures>();
+ GlobalsGraph = new DSGraph(LocalDSA.getGlobalsGraph());
GlobalsGraph->setPrintAuxCalls();
Function *MainFunc = M.getMainFunction();
diff --git a/lib/Analysis/DataStructure/TopDownClosure.cpp b/lib/Analysis/DataStructure/TopDownClosure.cpp
index 3138ada..4058348 100644
--- a/lib/Analysis/DataStructure/TopDownClosure.cpp
+++ b/lib/Analysis/DataStructure/TopDownClosure.cpp
@@ -15,7 +15,7 @@
namespace {
RegisterAnalysis<TDDataStructures> // Register the pass
- Y("tddatastructure", "Top-down Data Structure Analysis Closure");
+ Y("tddatastructure", "Top-down Data Structure Analysis");
}
// run - Calculate the top down data structure graphs for each function in the
@@ -23,7 +23,7 @@
//
bool TDDataStructures::run(Module &M) {
BUDataStructures &BU = getAnalysis<BUDataStructures>();
- GlobalsGraph = new DSGraph();
+ GlobalsGraph = new DSGraph(BU.getGlobalsGraph());
// Calculate top-down from main...
if (Function *F = M.getMainFunction())