LLVM 22.0.0git
llvm::DOTGraphTraits< DOTFuncInfo * > Struct Reference

#include "llvm/Analysis/CFGPrinter.h"

Inheritance diagram for llvm::DOTGraphTraits< DOTFuncInfo * >:
[legend]

Public Member Functions

 DOTGraphTraits (bool isSimple=false)
std::string getNodeLabel (const BasicBlock *Node, DOTFuncInfo *CFGInfo)
std::string getEdgeAttributes (const BasicBlock *Node, const_succ_iterator I, DOTFuncInfo *CFGInfo)
 Display the raw branch weights from PGO.
std::string getNodeAttributes (const BasicBlock *Node, DOTFuncInfo *CFGInfo)
LLVM_ABI bool isNodeHidden (const BasicBlock *Node, const DOTFuncInfo *CFGInfo)
LLVM_ABI void computeDeoptOrUnreachablePaths (const Function *F)
Public Member Functions inherited from llvm::DefaultDOTGraphTraits
 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

static void eraseComment (std::string &OutStr, unsigned &I, unsigned Idx)
static std::string getGraphName (DOTFuncInfo *CFGInfo)
static std::string getSimpleNodeLabel (const BasicBlock *Node, DOTFuncInfo *)
static LLVM_ABI std::string getCompleteNodeLabel (const BasicBlock *Node, DOTFuncInfo *, function_ref< void(raw_string_ostream &, const BasicBlock &)> HandleBasicBlock={}, function_ref< void(std::string &, unsigned &, unsigned)> HandleComment=eraseComment)
static std::string getEdgeSourceLabel (const BasicBlock *Node, const_succ_iterator I)
static std::string getBBName (const BasicBlock *Node)
Static Public Member Functions inherited from llvm::DefaultDOTGraphTraits
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.
template<typename GraphType>
static bool isNodeHidden (const void *, const GraphType &)
 isNodeHidden - If the function returns true, the given node is not displayed in the graph.
static bool renderNodesUsingHTML ()
template<typename GraphType>
static std::string getNodeIdentifierLabel (const void *, const GraphType &)
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.

Public Attributes

DenseMap< const BasicBlock *, boolisOnDeoptOrUnreachablePath

Additional Inherited Members

Protected Member Functions inherited from llvm::DefaultDOTGraphTraits
bool isSimple ()

Detailed Description

Definition at line 188 of file CFGPrinter.h.

Constructor & Destructor Documentation

◆ DOTGraphTraits()

llvm::DOTGraphTraits< DOTFuncInfo * >::DOTGraphTraits ( bool isSimple = false)
inline

Member Function Documentation

◆ computeDeoptOrUnreachablePaths()

LLVM_ABI void llvm::DOTGraphTraits< DOTFuncInfo * >::computeDeoptOrUnreachablePaths ( const Function * F)

References F, and LLVM_ABI.

◆ eraseComment()

void llvm::DOTGraphTraits< DOTFuncInfo * >::eraseComment ( std::string & OutStr,
unsigned & I,
unsigned Idx )
inlinestatic

Definition at line 195 of file CFGPrinter.h.

References I.

◆ getBBName()

std::string llvm::DOTGraphTraits< DOTFuncInfo * >::getBBName ( const BasicBlock * Node)
inlinestatic

Definition at line 246 of file CFGPrinter.h.

References Node::printAsOperand().

Referenced by getEdgeAttributes().

◆ getCompleteNodeLabel()

LLVM_ABI std::string llvm::DOTGraphTraits< DOTFuncInfo * >::getCompleteNodeLabel ( const BasicBlock * Node,
DOTFuncInfo * ,
function_ref< void(raw_string_ostream &, const BasicBlock &)> HandleBasicBlock = {},
function_ref< void(std::string &, unsigned &, unsigned)> HandleComment = eraseComment )
static

References LLVM_ABI.

Referenced by getNodeLabel().

◆ getEdgeAttributes()

◆ getEdgeSourceLabel()

◆ getGraphName()

std::string llvm::DOTGraphTraits< DOTFuncInfo * >::getGraphName ( DOTFuncInfo * CFGInfo)
inlinestatic

◆ getNodeAttributes()

std::string llvm::DOTGraphTraits< DOTFuncInfo * >::getNodeAttributes ( const BasicBlock * Node,
DOTFuncInfo * CFGInfo )
inline

◆ getNodeLabel()

std::string llvm::DOTGraphTraits< DOTFuncInfo * >::getNodeLabel ( const BasicBlock * Node,
DOTFuncInfo * CFGInfo )
inline

Definition at line 215 of file CFGPrinter.h.

References getCompleteNodeLabel(), getSimpleNodeLabel(), and isSimple().

◆ getSimpleNodeLabel()

std::string llvm::DOTGraphTraits< DOTFuncInfo * >::getSimpleNodeLabel ( const BasicBlock * Node,
DOTFuncInfo *  )
inlinestatic

Definition at line 204 of file CFGPrinter.h.

References llvm::SimpleNodeLabelString().

Referenced by getNodeLabel().

◆ isNodeHidden()

LLVM_ABI bool llvm::DOTGraphTraits< DOTFuncInfo * >::isNodeHidden ( const BasicBlock * Node,
const DOTFuncInfo * CFGInfo )

References LLVM_ABI.

Member Data Documentation

◆ isOnDeoptOrUnreachablePath

DenseMap<const BasicBlock *, bool> llvm::DOTGraphTraits< DOTFuncInfo * >::isOnDeoptOrUnreachablePath

Definition at line 191 of file CFGPrinter.h.


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