From: Brian Gaeke Date: Wed, 5 May 2004 06:10:06 +0000 (+0000) Subject: Move the stuff that fixes the size, orientation & fonts of graphs to X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=6178085cfd772f62c641234bec156240281e7cf4;p=oota-llvm.git Move the stuff that fixes the size, orientation & fonts of graphs to the debugging functions that call "dot". These fixed settings have various problems: for example, the fixed size that is set in the graph traits classes is not appropriate for turning the dot file into a PNG, and if TrueType font rendering is being used, the 'Courier' TrueType font may not be installed. It seems easy enough to specify these things on the command line, anyhow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13366 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/Support/DOTGraphTraits.h b/include/Support/DOTGraphTraits.h index 63837b7ddf6..7dbc4ff0b65 100644 --- a/include/Support/DOTGraphTraits.h +++ b/include/Support/DOTGraphTraits.h @@ -33,11 +33,10 @@ struct DefaultDOTGraphTraits { static std::string getGraphName(const void *Graph) { return ""; } /// getGraphProperties - Return any custom properties that should be included - /// in the top level graph structure for dot. By default, we resize the graph - /// to fit on a letter size page. + /// in the top level graph structure for dot. /// static std::string getGraphProperties(const void *Graph) { - return "\tsize=\"7.5,10\";\n"; // Size to fit on a page + return ""; } /// getNodeLabel - Given a node and a pointer to the top level graph, return diff --git a/include/llvm/Support/DOTGraphTraits.h b/include/llvm/Support/DOTGraphTraits.h index 63837b7ddf6..7dbc4ff0b65 100644 --- a/include/llvm/Support/DOTGraphTraits.h +++ b/include/llvm/Support/DOTGraphTraits.h @@ -33,11 +33,10 @@ struct DefaultDOTGraphTraits { static std::string getGraphName(const void *Graph) { return ""; } /// getGraphProperties - Return any custom properties that should be included - /// in the top level graph structure for dot. By default, we resize the graph - /// to fit on a letter size page. + /// in the top level graph structure for dot. /// static std::string getGraphProperties(const void *Graph) { - return "\tsize=\"7.5,10\";\n"; // Size to fit on a page + return ""; } /// getNodeLabel - Given a node and a pointer to the top level graph, return diff --git a/lib/Analysis/CFGPrinter.cpp b/lib/Analysis/CFGPrinter.cpp index 9530f5695ab..ddd9851b740 100644 --- a/lib/Analysis/CFGPrinter.cpp +++ b/lib/Analysis/CFGPrinter.cpp @@ -75,10 +75,6 @@ struct DOTGraphTraits : public DefaultDOTGraphTraits { return OutStr; } - static std::string getNodeAttributes(const BasicBlock *N) { - return "fontname=Courier"; - } - static std::string getEdgeSourceLabel(const BasicBlock *Node, succ_const_iterator I) { // Label source of conditional branches with "T" or "F" @@ -155,7 +151,8 @@ void Function::viewCFG() const { std::cerr << "\n"; std::cerr << "Running 'dot' program... " << std::flush; - if (system(("dot -Tps " + Filename + " > /tmp/cfg.tempgraph.ps").c_str())) { + if (system(("dot -Tps -Nfontname=Courier -Gsize=7.5,10 " + Filename + + " > /tmp/cfg.tempgraph.ps").c_str())) { std::cerr << "Error running dot: 'dot' not in path?\n"; } else { std::cerr << "\n"; diff --git a/lib/Analysis/DataStructure/Printer.cpp b/lib/Analysis/DataStructure/Printer.cpp index 03058fb3825..f6e073adce9 100644 --- a/lib/Analysis/DataStructure/Printer.cpp +++ b/lib/Analysis/DataStructure/Printer.cpp @@ -93,17 +93,12 @@ struct DOTGraphTraits : public DefaultDOTGraphTraits { } } - static const char *getGraphProperties(const DSGraph *G) { - return "\tsize=\"10,7.5\";\n" - "\trotate=\"90\";\n"; - } - static std::string getNodeLabel(const DSNode *Node, const DSGraph *Graph) { return getCaption(Node, Graph); } static std::string getNodeAttributes(const DSNode *N) { - return "shape=Mrecord";//fontname=Courier"; + return "shape=Mrecord"; } /// addCustomGraphFeatures - Use this graph writing hook to emit call nodes @@ -234,7 +229,7 @@ void DSGraph::viewGraph() const { } print(F); F.close(); - if (system("dot -Tps /tmp/tempgraph.dot > /tmp/tempgraph.ps")) + if (system("dot -Tps -Gsize=10,7.5 -Grotate=90 /tmp/tempgraph.dot > /tmp/tempgraph.ps")) std::cerr << "Error running dot: 'dot' not in path?\n"; system("gv /tmp/tempgraph.ps"); system("rm /tmp/tempgraph.dot /tmp/tempgraph.ps");