Added a hook to print out names of target specific DAG nodes.

llvm-svn: 24877
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index ad8cca7..3438863 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -1835,15 +1835,18 @@
     if (getOpcode() < ISD::BUILTIN_OP_END)
       return "<<Unknown DAG Node>>";
     else {
-      if (G)
+      if (G) {
         if (const TargetInstrInfo *TII = G->getTarget().getInstrInfo())
           if (getOpcode()-ISD::BUILTIN_OP_END < TII->getNumOpcodes())
             return TII->getName(getOpcode()-ISD::BUILTIN_OP_END);
 
-      std::string Name
-        = "<<Unknown Target Node:"
-        + itostr((int)getOpcode()-ISD::BUILTIN_OP_END) + ">>";
-      return Name.c_str();
+        TargetLowering &TLI = G->getTargetLoweringInfo();
+        const char *Name =
+          TLI.getTargetNodeName(getOpcode());
+        if (Name) return Name;
+      }
+
+      return "<<Unknown Target Node>>";
     }
    
   case ISD::PCMARKER:      return "PCMarker";