diff --git a/tools/llvmc2/CompilationGraph.cpp b/tools/llvmc2/CompilationGraph.cpp index 53195cbe95a..c0c849be232 100644 --- a/tools/llvmc2/CompilationGraph.cpp +++ b/tools/llvmc2/CompilationGraph.cpp @@ -204,15 +204,29 @@ namespace llvm { : public DefaultDOTGraphTraits { - template - static std::string getNodeLabel(const Node* N, const GraphType&) { - if (N->ToolPtr) - return N->Name(); - else - return "root"; - } + template + 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 + static std::string getEdgeSourceLabel(const Node* N, EdgeIter I) { + if (N->ToolPtr) + return N->ToolPtr->OutputLanguage(); + else + return I->ToolPtr->InputLanguage(); + } }; + } void CompilationGraph::writeGraph() {