[llvm-commits] CVS: llvm/include/Support/GraphWriter.h
Chris Lattner
lattner at cs.uiuc.edu
Wed Oct 16 20:01:01 PDT 2002
Changes in directory llvm/include/Support:
GraphWriter.h updated: 1.8 -> 1.9
---
Log message:
Break up the GraphWriter into smaller chunks to be used in different ways
---
Diffs of the changes:
Index: llvm/include/Support/GraphWriter.h
diff -u llvm/include/Support/GraphWriter.h:1.8 llvm/include/Support/GraphWriter.h:1.9
--- llvm/include/Support/GraphWriter.h:1.8 Wed Oct 16 15:15:38 2002
+++ llvm/include/Support/GraphWriter.h Wed Oct 16 19:59:59 2002
@@ -59,8 +59,9 @@
typedef typename GTraits::nodes_iterator node_iterator;
typedef typename GTraits::ChildIteratorType child_iterator;
public:
- GraphWriter(std::ostream &o, const GraphType &g,
- const std::string &Name) : O(o), G(g) {
+ GraphWriter(std::ostream &o, const GraphType &g) : O(o), G(g) {}
+
+ void writeHeader(const std::string &Name) {
if (Name.empty())
O << "digraph foo {\n"; // Graph name doesn't matter
else
@@ -71,15 +72,9 @@
O << "\tlabel=\"" << DOT::EscapeString(GraphName) << "\";\n";
O << DOTTraits::getGraphProperties(G);
O << "\n";
-
- // Emit all of the nodes in the graph...
- writeNodes();
-
- // Output any customizations on the graph
- DOTTraits::addCustomGraphFeatures(G, *this);
}
- ~GraphWriter() {
+ void writeFooter() {
// Finish off the graph
O << "}\n";
}
@@ -180,7 +175,19 @@
std::ostream &WriteGraph(std::ostream &O, const GraphType &G,
const std::string &Name = "") {
// Start the graph emission process...
- GraphWriter<GraphType> W(O, G, Name);
+ GraphWriter<GraphType> W(O, G);
+
+ // Output the header for the graph...
+ W.writeHeader(Name);
+
+ // Emit all of the nodes in the graph...
+ W.writeNodes();
+
+ // Output any customizations on the graph
+ DOTGraphTraits<GraphType>::addCustomGraphFeatures(G, W);
+
+ // Output the end of the graph
+ W.writeFooter();
return O;
}
More information about the llvm-commits
mailing list