mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Make the SelectionDAG graph printer use SDNode::PersistentId labels.
r248010 changed the -debug output to use short ids, but did not similarly modify the graph printer. Change to be consistent, for ease of cross-reference. llvm-svn: 251465
This commit is contained in:
parent
b569856ee4
commit
1bc277004d
@ -72,11 +72,12 @@ public:
|
||||
return "";
|
||||
}
|
||||
|
||||
/// hasNodeAddressLabel - If this method returns true, the address of the node
|
||||
/// is added to the label of the node.
|
||||
template<typename GraphType>
|
||||
static bool hasNodeAddressLabel(const void *, const GraphType &) {
|
||||
return false;
|
||||
// getNodeIdentifierLabel - Returns a string representing the
|
||||
// address or other unique identifier of the node. (Only used if
|
||||
// non-empty.)
|
||||
template <typename GraphType>
|
||||
static std::string getNodeIdentifierLabel(const void *, const GraphType &) {
|
||||
return "";
|
||||
}
|
||||
|
||||
template<typename GraphType>
|
||||
|
@ -175,8 +175,9 @@ public:
|
||||
O << DOT::EscapeString(DTraits.getNodeLabel(Node, G));
|
||||
|
||||
// If we should include the address of the node in the label, do so now.
|
||||
if (DTraits.hasNodeAddressLabel(Node, G))
|
||||
O << "|" << static_cast<const void*>(Node);
|
||||
std::string Id = DTraits.getNodeIdentifierLabel(Node, G);
|
||||
if (!Id.empty())
|
||||
O << "|" << DOT::EscapeString(Id);
|
||||
|
||||
std::string NodeDesc = DTraits.getNodeDescription(Node, G);
|
||||
if (!NodeDesc.empty())
|
||||
@ -199,8 +200,9 @@ public:
|
||||
O << DOT::EscapeString(DTraits.getNodeLabel(Node, G));
|
||||
|
||||
// If we should include the address of the node in the label, do so now.
|
||||
if (DTraits.hasNodeAddressLabel(Node, G))
|
||||
O << "|" << static_cast<const void*>(Node);
|
||||
std::string Id = DTraits.getNodeIdentifierLabel(Node, G);
|
||||
if (!Id.empty())
|
||||
O << "|" << DOT::EscapeString(Id);
|
||||
|
||||
std::string NodeDesc = DTraits.getNodeDescription(Node, G);
|
||||
if (!NodeDesc.empty())
|
||||
|
@ -3310,11 +3310,6 @@ struct DOTGraphTraits<ScheduleDAGMI*> : public DefaultDOTGraphTraits {
|
||||
|| Node->Succs.size() > ViewMISchedCutoff);
|
||||
}
|
||||
|
||||
static bool hasNodeAddressLabel(const SUnit *Node,
|
||||
const ScheduleDAG *Graph) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/// If you want to override the dot attributes printed for a particular
|
||||
/// edge, override this method.
|
||||
static std::string getEdgeAttributes(const SUnit *Node,
|
||||
|
@ -43,9 +43,12 @@ namespace llvm {
|
||||
return (Node->NumPreds > 10 || Node->NumSuccs > 10);
|
||||
}
|
||||
|
||||
static bool hasNodeAddressLabel(const SUnit *Node,
|
||||
const ScheduleDAG *Graph) {
|
||||
return true;
|
||||
static std::string getNodeIdentifierLabel(const SUnit *Node,
|
||||
const ScheduleDAG *Graph) {
|
||||
std::string R;
|
||||
raw_string_ostream OS(R);
|
||||
OS << static_cast<const void *>(Node);
|
||||
return R;
|
||||
}
|
||||
|
||||
/// If you want to override the dot attributes printed for a particular
|
||||
|
@ -80,9 +80,16 @@ namespace llvm {
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool hasNodeAddressLabel(const SDNode *Node,
|
||||
const SelectionDAG *Graph) {
|
||||
return true;
|
||||
static std::string getNodeIdentifierLabel(const SDNode *Node,
|
||||
const SelectionDAG *Graph) {
|
||||
std::string R;
|
||||
raw_string_ostream OS(R);
|
||||
#ifndef NDEBUG
|
||||
OS << 't' << Node->PersistentId;
|
||||
#else
|
||||
OS << static_cast<const void *>(Node);
|
||||
#endif
|
||||
return R;
|
||||
}
|
||||
|
||||
/// If you want to override the dot attributes printed for a particular
|
||||
|
Loading…
Reference in New Issue
Block a user