Remove ShortNames from getNodeLabel in DOTGraphTraits

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90134 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Tobias Grosser 2009-11-30 12:38:47 +00:00
parent a10d598602
commit 56f4ef3232
8 changed files with 59 additions and 56 deletions

View File

@ -31,19 +31,22 @@ struct DOTGraphTraits<const Function*> : public DefaultDOTGraphTraits {
return "CFG for '" + F->getNameStr() + "' function";
}
static std::string getNodeLabel(const BasicBlock *Node,
const Function *Graph,
bool ShortNames) {
if (ShortNames && !Node->getName().empty())
static std::string getSimpleNodeLabel(const BasicBlock *Node,
const Function *Graph) {
if (!Node->getName().empty())
return Node->getNameStr();
std::string Str;
raw_string_ostream OS(Str);
if (ShortNames) {
WriteAsOperand(OS, Node, false);
return OS.str();
}
WriteAsOperand(OS, Node, false);
return OS.str();
}
static std::string getCompleteNodeLabel(const BasicBlock *Node,
const Function *Graph) {
std::string Str;
raw_string_ostream OS(Str);
if (Node->getName().empty()) {
WriteAsOperand(OS, Node, false);
@ -68,6 +71,14 @@ struct DOTGraphTraits<const Function*> : public DefaultDOTGraphTraits {
return OutStr;
}
std::string getNodeLabel(const BasicBlock *Node,
const Function *Graph) {
if (isSimple())
return getSimpleNodeLabel(Node, Graph);
else
return getCompleteNodeLabel(Node, Graph);
}
static std::string getEdgeSourceLabel(const BasicBlock *Node,
succ_const_iterator I) {
// Label source of conditional branches with "T" or "F"

View File

@ -62,8 +62,7 @@ public:
/// getNodeLabel - Given a node and a pointer to the top level graph, return
/// the label to print in the node.
template<typename GraphType>
static std::string getNodeLabel(const void *Node,
const GraphType& Graph, bool ShortNames) {
std::string getNodeLabel(const void *Node, const GraphType& Graph) {
return "";
}

View File

@ -52,7 +52,6 @@ template<typename GraphType>
class GraphWriter {
raw_ostream &O;
const GraphType &G;
bool ShortNames;
typedef DOTGraphTraits<GraphType> DOTTraits;
typedef GraphTraits<GraphType> GTraits;
@ -89,8 +88,7 @@ class GraphWriter {
}
public:
GraphWriter(raw_ostream &o, const GraphType &g, bool SN) :
O(o), G(g), ShortNames(SN) {
GraphWriter(raw_ostream &o, const GraphType &g, bool SN) : O(o), G(g) {
DTraits = DOTTraits(SN);
}
@ -143,7 +141,7 @@ public:
O << "label=\"{";
if (!DTraits.renderGraphFromBottomUp()) {
O << DOT::EscapeString(DTraits.getNodeLabel(Node, G, ShortNames));
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))
@ -163,7 +161,7 @@ public:
}
if (DTraits.renderGraphFromBottomUp()) {
O << DOT::EscapeString(DTraits.getNodeLabel(Node, G, ShortNames));
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))

View File

@ -31,18 +31,23 @@ namespace llvm {
template<>
struct DOTGraphTraits<DomTreeNode*> : public DefaultDOTGraphTraits {
DOTGraphTraits (bool isSimple=false) : DefaultDOTGraphTraits(isSimple) {}
DOTGraphTraits (bool isSimple=false)
: DefaultDOTGraphTraits(isSimple) {}
static std::string getNodeLabel(DomTreeNode *Node, DomTreeNode *Graph,
bool ShortNames) {
std::string getNodeLabel(DomTreeNode *Node, DomTreeNode *Graph) {
BasicBlock *BB = Node->getBlock();
if (!BB)
return "Post dominance root node";
return DOTGraphTraits<const Function*>::getNodeLabel(BB, BB->getParent(),
ShortNames);
if (isSimple())
return DOTGraphTraits<const Function*>
::getSimpleNodeLabel(BB, BB->getParent());
else
return DOTGraphTraits<const Function*>
::getCompleteNodeLabel(BB, BB->getParent());
}
};
@ -56,11 +61,8 @@ struct DOTGraphTraits<DominatorTree*> : public DOTGraphTraits<DomTreeNode*> {
return "Dominator tree";
}
static std::string getNodeLabel(DomTreeNode *Node,
DominatorTree *G,
bool ShortNames) {
return DOTGraphTraits<DomTreeNode*>::getNodeLabel(Node, G->getRootNode(),
ShortNames);
std::string getNodeLabel(DomTreeNode *Node, DominatorTree *G) {
return DOTGraphTraits<DomTreeNode*>::getNodeLabel(Node, G->getRootNode());
}
};
@ -74,12 +76,9 @@ struct DOTGraphTraits<PostDominatorTree*>
static std::string getGraphName(PostDominatorTree *DT) {
return "Post dominator tree";
}
static std::string getNodeLabel(DomTreeNode *Node,
PostDominatorTree *G,
bool ShortNames) {
return DOTGraphTraits<DomTreeNode*>::getNodeLabel(Node,
G->getRootNode(),
ShortNames);
std::string getNodeLabel(DomTreeNode *Node, PostDominatorTree *G ) {
return DOTGraphTraits<DomTreeNode*>::getNodeLabel(Node, G->getRootNode());
}
};
}

View File

@ -366,10 +366,9 @@ namespace llvm {
return "CFG for '" + F->getFunction()->getNameStr() + "' function";
}
static std::string getNodeLabel(const MachineBasicBlock *Node,
const MachineFunction *Graph,
bool ShortNames) {
if (ShortNames && Node->getBasicBlock() &&
std::string getNodeLabel(const MachineBasicBlock *Node,
const MachineFunction *Graph) {
if (isSimple () && Node->getBasicBlock() &&
!Node->getBasicBlock()->getName().empty())
return Node->getBasicBlock()->getNameStr() + ":";
@ -377,7 +376,7 @@ namespace llvm {
{
raw_string_ostream OSS(OutStr);
if (ShortNames)
if (isSimple())
OSS << Node->getNumber() << ':';
else
Node->print(OSS);

View File

@ -60,9 +60,7 @@ namespace llvm {
}
static std::string getNodeLabel(const SUnit *Node,
const ScheduleDAG *Graph,
bool ShortNames);
std::string getNodeLabel(const SUnit *Node, const ScheduleDAG *Graph);
static std::string getNodeAttributes(const SUnit *N,
const ScheduleDAG *Graph) {
return "shape=Mrecord";
@ -76,8 +74,7 @@ namespace llvm {
}
std::string DOTGraphTraits<ScheduleDAG*>::getNodeLabel(const SUnit *SU,
const ScheduleDAG *G,
bool ShortNames) {
const ScheduleDAG *G) {
return G->getGraphNodeLabel(SU);
}

View File

@ -96,9 +96,16 @@ namespace llvm {
}
static std::string getNodeLabel(const SDNode *Node,
const SelectionDAG *Graph,
bool ShortNames);
static std::string getSimpleNodeLabel(const SDNode *Node,
const SelectionDAG *G) {
std::string Result = Node->getOperationName(G);
{
raw_string_ostream OS(Result);
Node->print_details(OS, G);
}
return Result;
}
std::string getNodeLabel(const SDNode *Node, const SelectionDAG *Graph);
static std::string getNodeAttributes(const SDNode *N,
const SelectionDAG *Graph) {
#ifndef NDEBUG
@ -124,14 +131,8 @@ namespace llvm {
}
std::string DOTGraphTraits<SelectionDAG*>::getNodeLabel(const SDNode *Node,
const SelectionDAG *G,
bool ShortNames) {
std::string Result = Node->getOperationName(G);
{
raw_string_ostream OS(Result);
Node->print_details(OS, G);
}
return Result;
const SelectionDAG *G) {
DOTGraphTraits<SelectionDAG*>::getSimpleNodeLabel (Node, G);
}
@ -272,8 +273,8 @@ std::string ScheduleDAGSDNodes::getGraphNodeLabel(const SUnit *SU) const {
for (SDNode *N = SU->getNode(); N; N = N->getFlaggedNode())
FlaggedNodes.push_back(N);
while (!FlaggedNodes.empty()) {
O << DOTGraphTraits<SelectionDAG*>::getNodeLabel(FlaggedNodes.back(),
DAG, false);
O << DOTGraphTraits<SelectionDAG*>
::getSimpleNodeLabel(FlaggedNodes.back(), DAG);
FlaggedNodes.pop_back();
if (!FlaggedNodes.empty())
O << "\n ";

View File

@ -53,8 +53,7 @@ namespace llvm {
return "Call Graph";
}
static std::string getNodeLabel(CallGraphNode *Node, CallGraph *Graph,
bool ShortNames) {
static std::string getNodeLabel(CallGraphNode *Node, CallGraph *Graph) {
if (Node->getFunction())
return ((Value*)Node->getFunction())->getName();
else