Enhancements for --view-graph


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50737 91177308-0d34-0410-b5e6-96231b3b80d8
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 @@
     : 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() {