diff options
author | Chris Lattner <sabre@nondot.org> | 2002-10-16 01:44:59 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-10-16 01:44:59 +0000 |
commit | 834a9d12f3575f0030f39117546f01fc7e0ff300 (patch) | |
tree | c6e182786ff4794121e8927b0b517643e97e3e99 /include | |
parent | ff5feedf283b5321a0a16b2ee02b58af41018222 (diff) | |
download | external_llvm-834a9d12f3575f0030f39117546f01fc7e0ff300.zip external_llvm-834a9d12f3575f0030f39117546f01fc7e0ff300.tar.gz external_llvm-834a9d12f3575f0030f39117546f01fc7e0ff300.tar.bz2 |
* Add new DOTGraphTraits::addCustomGraphFeatures method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4197 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/Support/DOTGraphTraits.h | 9 | ||||
-rw-r--r-- | include/Support/GraphWriter.h | 4 | ||||
-rw-r--r-- | include/llvm/Support/DOTGraphTraits.h | 9 | ||||
-rw-r--r-- | include/llvm/Support/GraphWriter.h | 4 |
4 files changed, 26 insertions, 0 deletions
diff --git a/include/Support/DOTGraphTraits.h b/include/Support/DOTGraphTraits.h index ca7c463..42f9af2 100644 --- a/include/Support/DOTGraphTraits.h +++ b/include/Support/DOTGraphTraits.h @@ -60,6 +60,15 @@ struct DefaultDOTGraphTraits { /// edge. template<typename EdgeIter> static EdgeIter getEdgeTarget(void *Node, EdgeIter I) { return I; } + + /// addCustomGraphFeatures - If a graph is made up of more than just + /// straight-forward nodes and edges, this is the place to put all of the + /// custom stuff neccesary. The GraphWriter object, instantiated with your + /// GraphType is passed in as an argument. You may call arbitrary methods on + /// it to add things to the output graph. + /// + template<typename GraphWriter> + static void addCustomGraphFeatures(void *Graph, GraphWriter &GW) {} }; diff --git a/include/Support/GraphWriter.h b/include/Support/GraphWriter.h index 0a7576c..7783b46 100644 --- a/include/Support/GraphWriter.h +++ b/include/Support/GraphWriter.h @@ -72,7 +72,11 @@ public: 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() { diff --git a/include/llvm/Support/DOTGraphTraits.h b/include/llvm/Support/DOTGraphTraits.h index ca7c463..42f9af2 100644 --- a/include/llvm/Support/DOTGraphTraits.h +++ b/include/llvm/Support/DOTGraphTraits.h @@ -60,6 +60,15 @@ struct DefaultDOTGraphTraits { /// edge. template<typename EdgeIter> static EdgeIter getEdgeTarget(void *Node, EdgeIter I) { return I; } + + /// addCustomGraphFeatures - If a graph is made up of more than just + /// straight-forward nodes and edges, this is the place to put all of the + /// custom stuff neccesary. The GraphWriter object, instantiated with your + /// GraphType is passed in as an argument. You may call arbitrary methods on + /// it to add things to the output graph. + /// + template<typename GraphWriter> + static void addCustomGraphFeatures(void *Graph, GraphWriter &GW) {} }; diff --git a/include/llvm/Support/GraphWriter.h b/include/llvm/Support/GraphWriter.h index 0a7576c..7783b46 100644 --- a/include/llvm/Support/GraphWriter.h +++ b/include/llvm/Support/GraphWriter.h @@ -72,7 +72,11 @@ public: 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() { |