diff options
author | Chris Lattner <sabre@nondot.org> | 2004-03-02 21:39:43 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-03-02 21:39:43 +0000 |
commit | 7252939af0c063e7db573d746061ed0a8bc0cf4e (patch) | |
tree | 70d062c0577befe4dd73cc994891217d03a2a930 /lib/Analysis/DataStructure/Printer.cpp | |
parent | a19ba52596d97fed401333831ce7857cd333642d (diff) |
FINALLY be able to get symbolic type names in the globals graph!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12082 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/DataStructure/Printer.cpp')
-rw-r--r-- | lib/Analysis/DataStructure/Printer.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/Analysis/DataStructure/Printer.cpp b/lib/Analysis/DataStructure/Printer.cpp index 6775efe398..03058fb382 100644 --- a/lib/Analysis/DataStructure/Printer.cpp +++ b/lib/Analysis/DataStructure/Printer.cpp @@ -40,11 +40,17 @@ static std::string getCaption(const DSNode *N, const DSGraph *G) { std::stringstream OS; Module *M = 0; - if (G) G = N->getParentGraph(); + if (!G) G = N->getParentGraph(); // Get the module from ONE of the functions in the graph it is available. if (G && !G->getReturnNodes().empty()) M = G->getReturnNodes().begin()->first->getParent(); + if (M == 0 && G) { + // If there is a global in the graph, we can use it to find the module. + const DSScalarMap &SM = G->getScalarMap(); + if (SM.global_begin() != SM.global_end()) + M = (*SM.global_begin())->getParent(); + } if (N->isNodeCompletelyFolded()) OS << "COLLAPSED"; @@ -108,6 +114,13 @@ struct DOTGraphTraits<const DSGraph*> : public DefaultDOTGraphTraits { Module *CurMod = 0; if (!G->getReturnNodes().empty()) CurMod = G->getReturnNodes().begin()->first->getParent(); + else { + // If there is a global in the graph, we can use it to find the module. + const DSScalarMap &SM = G->getScalarMap(); + if (SM.global_begin() != SM.global_end()) + CurMod = (*SM.global_begin())->getParent(); + } + // Add scalar nodes to the graph... const DSGraph::ScalarMapTy &VM = G->getScalarMap(); |