Don't use reinterpret_cast when it isn't needed.
[oota-llvm.git] / include / llvm / Support / GraphWriter.h
index afb2f545bbd5ae9d1eb188e20fd2398e3d38f41a..15f9527abeacaa32e636e2c9eec68407a887468f 100644 (file)
@@ -125,7 +125,7 @@ public:
   void writeNode(NodeType *Node) {
     std::string NodeAttributes = DOTTraits::getNodeAttributes(Node, G);
 
-    O << "\tNode" << reinterpret_cast<const void*>(Node) << " [shape=record,";
+    O << "\tNode" << static_cast<const void*>(Node) << " [shape=record,";
     if (!NodeAttributes.empty()) O << NodeAttributes << ",";
     O << "label=\"{";
 
@@ -146,11 +146,11 @@ public:
 
       for (unsigned i = 0; EI != EE && i != 64; ++EI, ++i) {
         if (i) O << "|";
-        O << "<g" << i << ">" << DOTTraits::getEdgeSourceLabel(Node, EI);
+        O << "<s" << i << ">" << DOTTraits::getEdgeSourceLabel(Node, EI);
       }
 
       if (EI != EE)
-        O << "|<g64>truncated...";
+        O << "|<s64>truncated...";
       O << "}";
       if (DOTTraits::renderGraphFromBottomUp()) O << "|";
     }
@@ -163,6 +163,20 @@ public:
         O << "|" << (void*)Node;
     }
 
+    if (DOTTraits::hasEdgeDestLabels()) {
+      O << "|{";
+
+      unsigned i = 0, e = DOTTraits::numEdgeDestLabels(Node);
+      for (; i != e && i != 64; ++i) {
+        if (i) O << "|";
+        O << "<d" << i << ">" << DOTTraits::getEdgeDestLabel(Node, i);
+      }
+
+      if (i != e)
+        O << "|<d64>truncated...";
+      O << "}";
+    }
+
     O << "}\"];\n";   // Finish printing the "node" line
 
     // Output all of the edges now
@@ -185,8 +199,8 @@ public:
         DestPort = static_cast<int>(Offset);
       }
 
-      emitEdge(reinterpret_cast<const void*>(Node), edgeidx,
-               reinterpret_cast<const void*>(TargetNode), DestPort,
+      emitEdge(static_cast<const void*>(Node), edgeidx,
+               static_cast<const void*>(TargetNode), DestPort,
                DOTTraits::getEdgeAttributes(Node, EI));
     }
   }
@@ -223,10 +237,10 @@ public:
 
     O << "\tNode" << SrcNodeID;
     if (SrcNodePort >= 0)
-      O << ":g" << SrcNodePort;
-    O << " -> Node" << reinterpret_cast<const void*>(DestNodeID);
+      O << ":s" << SrcNodePort;
+    O << " -> Node" << DestNodeID;
     if (DestNodePort >= 0)
-      O << ":g" << DestNodePort;
+      O << ":d" << DestNodePort;
 
     if (!Attrs.empty())
       O << "[" << Attrs << "]";