diff options
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index ad8cca742a..3438863c90 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -1835,15 +1835,18 @@ const char *SDNode::getOperationName(const SelectionDAG *G) const { 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"; |