From: Dan Gohman Date: Mon, 21 Jul 2008 19:57:57 +0000 (+0000) Subject: Make the GraphWriter be more consistent about the string X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2d3ff5a7aee24024765629d17ebff351ea11c9bb;p=oota-llvm.git Make the GraphWriter be more consistent about the string used for the graph "title" and the graph "label", as there are differences in interpretation of these strings between viewers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53871 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/GraphWriter.h b/include/llvm/Support/GraphWriter.h index dab09e57c6a..afb2f545bbd 100644 --- a/include/llvm/Support/GraphWriter.h +++ b/include/llvm/Support/GraphWriter.h @@ -85,7 +85,7 @@ public: std::string GraphName = DOTTraits::getGraphName(G); if (!Name.empty()) - O << "digraph " << Name << " {\n"; + O << "digraph \"" << DOT::EscapeString(Name) << "\" {\n"; else if (!GraphName.empty()) O << "digraph \"" << DOT::EscapeString(GraphName) << "\" {\n"; else @@ -94,7 +94,9 @@ public: if (DOTTraits::renderGraphFromBottomUp()) O << "\trankdir=\"BT\";\n"; - if (!GraphName.empty()) + if (!Name.empty()) + O << "\tlabel=\"" << DOT::EscapeString(Name) << "\";\n"; + else if (!GraphName.empty()) O << "\tlabel=\"" << DOT::EscapeString(GraphName) << "\";\n"; O << DOTTraits::getGraphProperties(G); O << "\n"; @@ -234,12 +236,13 @@ public: template std::ostream &WriteGraph(std::ostream &O, const GraphType &G, - const std::string &Name = "") { + const std::string &Name = "", + const std::string &Title = "") { // Start the graph emission process... GraphWriter W(O, G); // Output the header for the graph... - W.writeHeader(Name); + W.writeHeader(Title); // Emit all of the nodes in the graph... W.writeNodes(); @@ -273,24 +276,10 @@ sys::Path WriteGraph(const GraphType &G, std::ofstream O(Filename.c_str()); if (O.good()) { - // Start the graph emission process... - GraphWriter W(O, G); - - // Output the header for the graph... - W.writeHeader(Title); - - // Emit all of the nodes in the graph... - W.writeNodes(); - - // Output any customizations on the graph - DOTGraphTraits::addCustomGraphFeatures(G, W); - - // Output the end of the graph - W.writeFooter(); + WriteGraph(O, G, Name, Title); cerr << " done. \n"; O.close(); - } else { cerr << "error opening file for writing!\n"; Filename.clear();