diff options
Diffstat (limited to 'lib/Analysis/DataStructure')
-rw-r--r-- | lib/Analysis/DataStructure/BottomUpClosure.cpp | 2 | ||||
-rw-r--r-- | lib/Analysis/DataStructure/DataStructure.cpp | 4 | ||||
-rw-r--r-- | lib/Analysis/DataStructure/Local.cpp | 4 | ||||
-rw-r--r-- | lib/Analysis/DataStructure/Printer.cpp | 17 |
4 files changed, 16 insertions, 11 deletions
diff --git a/lib/Analysis/DataStructure/BottomUpClosure.cpp b/lib/Analysis/DataStructure/BottomUpClosure.cpp index 62206d9b0e..c8b45b50cc 100644 --- a/lib/Analysis/DataStructure/BottomUpClosure.cpp +++ b/lib/Analysis/DataStructure/BottomUpClosure.cpp @@ -15,7 +15,7 @@ using std::map; static RegisterAnalysis<BUDataStructures> X("budatastructure", "Bottom-Up Data Structure Analysis Closure"); -AnalysisID BUDataStructures::ID(AnalysisID::create<BUDataStructures>()); +AnalysisID BUDataStructures::ID = X; // releaseMemory - If the pass pipeline is done with this pass, we can release // our memory... here... diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp index f573a0be1a..5d62f09073 100644 --- a/lib/Analysis/DataStructure/DataStructure.cpp +++ b/lib/Analysis/DataStructure/DataStructure.cpp @@ -15,10 +15,6 @@ using std::vector; -static RegisterAnalysis<LocalDataStructures> -X("datastructure", "Local Data Structure Analysis"); -AnalysisID LocalDataStructures::ID(AnalysisID::create<LocalDataStructures>()); - //===----------------------------------------------------------------------===// // DSNode Implementation //===----------------------------------------------------------------------===// diff --git a/lib/Analysis/DataStructure/Local.cpp b/lib/Analysis/DataStructure/Local.cpp index 6ce3ae0858..296195cb1f 100644 --- a/lib/Analysis/DataStructure/Local.cpp +++ b/lib/Analysis/DataStructure/Local.cpp @@ -18,6 +18,10 @@ using std::map; using std::vector; +static RegisterAnalysis<LocalDataStructures> +X("datastructure", "Local Data Structure Analysis"); +AnalysisID LocalDataStructures::ID = X; + //===----------------------------------------------------------------------===// // GraphBuilder Class //===----------------------------------------------------------------------===// diff --git a/lib/Analysis/DataStructure/Printer.cpp b/lib/Analysis/DataStructure/Printer.cpp index 4a58c69afd..03ce297c4a 100644 --- a/lib/Analysis/DataStructure/Printer.cpp +++ b/lib/Analysis/DataStructure/Printer.cpp @@ -147,16 +147,21 @@ void DSGraph::print(std::ostream &O) const { } template <typename Collection> -static void printCollection(const Collection &C, std::ostream &O, Module *M, - const string &Prefix) { - for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) +static void printCollection(const Collection &C, std::ostream &O, + const Module *M, const string &Prefix) { + if (M == 0) { + O << "Null Module pointer, cannot continue!\n"; + return; + } + + for (Module::const_iterator I = M->begin(), E = M->end(); I != E; ++I) if (!I->isExternal()) { string Filename = Prefix + "." + I->getName() + ".dot"; O << "Writing '" << Filename << "'..."; std::ofstream F(Filename.c_str()); if (F.good()) { - DSGraph &Graph = C.getDSGraph(*I); + DSGraph &Graph = C.getDSGraph((Function&)*I); Graph.print(F); O << " [" << Graph.getGraphSize() << "+" << Graph.getFunctionCalls().size() << "]\n"; @@ -168,10 +173,10 @@ static void printCollection(const Collection &C, std::ostream &O, Module *M, // print - Print out the analysis results... -void LocalDataStructures::print(std::ostream &O, Module *M) const { +void LocalDataStructures::print(std::ostream &O, const Module *M) const { printCollection(*this, O, M, "ds"); } -void BUDataStructures::print(std::ostream &O, Module *M) const { +void BUDataStructures::print(std::ostream &O, const Module *M) const { printCollection(*this, O, M, "bu"); } |