LLVM  mainline
Public Member Functions | Static Public Member Functions | Protected Member Functions
llvm::DefaultDOTGraphTraits Struct Reference

DefaultDOTGraphTraits - This class provides the default implementations of all of the DOTGraphTraits methods. More...

#include <DOTGraphTraits.h>

Inheritance diagram for llvm::DefaultDOTGraphTraits:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 DefaultDOTGraphTraits (bool simple=false)
template<typename GraphType >
std::string getNodeLabel (const void *, const GraphType &)
 getNodeLabel - Given a node and a pointer to the top level graph, return the label to print in the node.

Static Public Member Functions

template<typename GraphType >
static std::string getGraphName (const GraphType &)
 getGraphName - Return the label for the graph as a whole.
template<typename GraphType >
static std::string getGraphProperties (const GraphType &)
 getGraphProperties - Return any custom properties that should be included in the top level graph structure for dot.
static bool renderGraphFromBottomUp ()
 renderGraphFromBottomUp - If this function returns true, the graph is emitted bottom-up instead of top-down.
static bool isNodeHidden (const void *)
 isNodeHidden - If the function returns true, the given node is not displayed in the graph.
template<typename GraphType >
static bool hasNodeAddressLabel (const void *, const GraphType &)
 hasNodeAddressLabel - If this method returns true, the address of the node is added to the label of the node.
template<typename GraphType >
static std::string getNodeDescription (const void *, const GraphType &)
template<typename GraphType >
static std::string getNodeAttributes (const void *, const GraphType &)
 If you want to specify custom node attributes, this is the place to do so.
template<typename EdgeIter , typename GraphType >
static std::string getEdgeAttributes (const void *, EdgeIter, const GraphType &)
 If you want to override the dot attributes printed for a particular edge, override this method.
template<typename EdgeIter >
static std::string getEdgeSourceLabel (const void *, EdgeIter)
 getEdgeSourceLabel - If you want to label the edge source itself, implement this method.
template<typename EdgeIter >
static bool edgeTargetsEdgeSource (const void *, EdgeIter)
 edgeTargetsEdgeSource - This method returns true if this outgoing edge should actually target another edge source, not a node.
template<typename EdgeIter >
static EdgeIter getEdgeTarget (const void *, EdgeIter I)
 getEdgeTarget - If edgeTargetsEdgeSource returns true, this method is called to determine which outgoing edge of Node is the target of this edge.
static bool hasEdgeDestLabels ()
 hasEdgeDestLabels - If this function returns true, the graph is able to provide labels for edge destinations.
static unsigned numEdgeDestLabels (const void *)
 numEdgeDestLabels - If hasEdgeDestLabels, this function returns the number of incoming edge labels the given node has.
static std::string getEdgeDestLabel (const void *, unsigned)
 getEdgeDestLabel - If hasEdgeDestLabels, this function returns the incoming edge label with the given index in the given node.
template<typename GraphType , typename GraphWriter >
static void addCustomGraphFeatures (const GraphType &, GraphWriter &)
 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 necessary.

Protected Member Functions

bool isSimple ()

Detailed Description

DefaultDOTGraphTraits - This class provides the default implementations of all of the DOTGraphTraits methods.

If a specialization does not need to override all methods here it should inherit so that it can get the default implementations.

Definition at line 29 of file DOTGraphTraits.h.


Constructor & Destructor Documentation

Definition at line 39 of file DOTGraphTraits.h.


Member Function Documentation

template<typename GraphType , typename GraphWriter >
static void llvm::DefaultDOTGraphTraits::addCustomGraphFeatures ( const GraphType &  ,
GraphWriter  
) [inline, static]

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 necessary.

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.

Definition at line 151 of file DOTGraphTraits.h.

template<typename EdgeIter >
static bool llvm::DefaultDOTGraphTraits::edgeTargetsEdgeSource ( const void *  ,
EdgeIter   
) [inline, static]

edgeTargetsEdgeSource - This method returns true if this outgoing edge should actually target another edge source, not a node.

If this method is implemented, getEdgeTarget should be implemented.

Reimplemented in llvm::DOTGraphTraits< SelectionDAG * >.

Definition at line 114 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeEdge().

template<typename EdgeIter , typename GraphType >
static std::string llvm::DefaultDOTGraphTraits::getEdgeAttributes ( const void *  ,
EdgeIter  ,
const GraphType &   
) [inline, static]

If you want to override the dot attributes printed for a particular edge, override this method.

Definition at line 98 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeEdge().

static std::string llvm::DefaultDOTGraphTraits::getEdgeDestLabel ( const void *  ,
unsigned   
) [inline, static]

getEdgeDestLabel - If hasEdgeDestLabels, this function returns the incoming edge label with the given index in the given node.

Reimplemented in llvm::DOTGraphTraits< SelectionDAG * >.

Definition at line 140 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeNode().

template<typename EdgeIter >
static std::string llvm::DefaultDOTGraphTraits::getEdgeSourceLabel ( const void *  ,
EdgeIter   
) [inline, static]

getEdgeSourceLabel - If you want to label the edge source itself, implement this method.

Reimplemented in llvm::DOTGraphTraits< SelectionDAG * >.

Definition at line 106 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeEdge().

template<typename EdgeIter >
static EdgeIter llvm::DefaultDOTGraphTraits::getEdgeTarget ( const void *  ,
EdgeIter  I 
) [inline, static]

getEdgeTarget - If edgeTargetsEdgeSource returns true, this method is called to determine which outgoing edge of Node is the target of this edge.

Reimplemented in llvm::DOTGraphTraits< SelectionDAG * >.

Definition at line 122 of file DOTGraphTraits.h.

References I.

Referenced by llvm::GraphWriter< GraphType >::writeEdge().

template<typename GraphType >
static std::string llvm::DefaultDOTGraphTraits::getGraphName ( const GraphType &  ) [inline, static]

getGraphName - Return the label for the graph as a whole.

Printed at the top of the graph.

Definition at line 45 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeHeader().

template<typename GraphType >
static std::string llvm::DefaultDOTGraphTraits::getGraphProperties ( const GraphType &  ) [inline, static]

getGraphProperties - Return any custom properties that should be included in the top level graph structure for dot.

Definition at line 51 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeHeader().

template<typename GraphType >
static std::string llvm::DefaultDOTGraphTraits::getNodeAttributes ( const void *  ,
const GraphType &   
) [inline, static]

If you want to specify custom node attributes, this is the place to do so.

Definition at line 90 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeNode().

template<typename GraphType >
static std::string llvm::DefaultDOTGraphTraits::getNodeDescription ( const void *  ,
const GraphType &   
) [inline, static]

Definition at line 83 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeNode().

template<typename GraphType >
std::string llvm::DefaultDOTGraphTraits::getNodeLabel ( const void *  ,
const GraphType &   
) [inline]

getNodeLabel - Given a node and a pointer to the top level graph, return the label to print in the node.

Definition at line 71 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeNode().

hasEdgeDestLabels - If this function returns true, the graph is able to provide labels for edge destinations.

Reimplemented in llvm::DOTGraphTraits< SelectionDAG * >.

Definition at line 128 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::emitEdge(), and llvm::GraphWriter< GraphType >::writeNode().

template<typename GraphType >
static bool llvm::DefaultDOTGraphTraits::hasNodeAddressLabel ( const void *  ,
const GraphType &   
) [inline, static]

hasNodeAddressLabel - If this method returns true, the address of the node is added to the label of the node.

Definition at line 78 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeNode().

static bool llvm::DefaultDOTGraphTraits::isNodeHidden ( const void *  ) [inline, static]

isNodeHidden - If the function returns true, the given node is not displayed in the graph.

Definition at line 64 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::isNodeHidden(), and llvm::GraphWriter< GraphType >::writeNode().

Definition at line 34 of file DOTGraphTraits.h.

static unsigned llvm::DefaultDOTGraphTraits::numEdgeDestLabels ( const void *  ) [inline, static]

numEdgeDestLabels - If hasEdgeDestLabels, this function returns the number of incoming edge labels the given node has.

Reimplemented in llvm::DOTGraphTraits< SelectionDAG * >.

Definition at line 134 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeNode().

renderGraphFromBottomUp - If this function returns true, the graph is emitted bottom-up instead of top-down.

This requires graphviz 2.0 to work though.

Reimplemented in llvm::DOTGraphTraits< ScheduleDAGMI * >, llvm::DOTGraphTraits< SelectionDAG * >, and llvm::DOTGraphTraits< ScheduleDAG * >.

Definition at line 58 of file DOTGraphTraits.h.

Referenced by llvm::GraphWriter< GraphType >::writeHeader(), and llvm::GraphWriter< GraphType >::writeNode().


The documentation for this struct was generated from the following file: