aboutsummaryrefslogtreecommitdiffstats
path: root/tools/llvmc2/CompilationGraph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/llvmc2/CompilationGraph.cpp')
-rw-r--r--tools/llvmc2/CompilationGraph.cpp28
1 files changed, 21 insertions, 7 deletions
diff --git a/tools/llvmc2/CompilationGraph.cpp b/tools/llvmc2/CompilationGraph.cpp
index 53195cb..c0c849b 100644
--- a/tools/llvmc2/CompilationGraph.cpp
+++ b/tools/llvmc2/CompilationGraph.cpp
@@ -204,15 +204,29 @@ namespace llvm {
: public DefaultDOTGraphTraits
{
- template<typename GraphType>
- static std::string getNodeLabel(const Node* N, const GraphType&) {
- if (N->ToolPtr)
- return N->Name();
- else
- return "root";
- }
+ template<typename GraphType>
+ static std::string getNodeLabel(const Node* N, const GraphType&)
+ {
+ if (N->ToolPtr)
+ if (N->ToolPtr->IsJoin())
+ return N->Name() + "\n (join" +
+ (N->HasChildren() ? ")"
+ : std::string(": ") + N->ToolPtr->OutputLanguage() + ')');
+ else
+ return N->Name();
+ else
+ return "root";
+ }
+ template<typename EdgeIter>
+ static std::string getEdgeSourceLabel(const Node* N, EdgeIter I) {
+ if (N->ToolPtr)
+ return N->ToolPtr->OutputLanguage();
+ else
+ return I->ToolPtr->InputLanguage();
+ }
};
+
}
void CompilationGraph::writeGraph() {