Traits for traversing a graph type without copying it.

Synopsis

Declared in <llvm/ADT/GraphTraits.h>

template<class GraphType>
struct GraphTraits;

Description

Specialize for each graph (CFG, DomTree, …). The primary template is empty except for a deliberate incomplete NodeRef that fails compilation when no specialization is visible. May reinterpret the graph via richer NodeRef values (see LoopBodyTraits).

Type Aliases

Name

Description

NodeRef

Placeholder that fails compilation unless GraphTraits is specialized.

Specializations

Name

Description

GraphTraits<ValueInfo>

GraphTraits specialization so ValueInfo can be used as a call‐graph node.

GraphTraits<FlatIt<MachineRegion*>>

GraphTraits specialization for flat iteration of MachineRegion graphs.

GraphTraits<FlatIt<MachineRegionNode*>>

GraphTraits specialization for flat iteration of MachineRegionNode graphs.

GraphTraits<FlatIt<Region*>>

GraphTraits specialization that walks a Region in flat CFG mode.

GraphTraits<FlatIt<RegionNode*>>

GraphTraits specialization for flat RegionNode successors.

GraphTraits<FlatIt<MachineRegion const*>>

GraphTraits specialization for flat iteration of const MachineRegion graphs.

GraphTraits<FlatIt<MachineRegionNode const*>>

GraphTraits specialization for flat iteration of const MachineRegionNode graphs.

GraphTraits<FlatIt<Region const*>>

GraphTraits specialization that walks a Region in flat CFG mode.

GraphTraits<FlatIt<RegionNode const*>>

GraphTraits specialization for flat RegionNode successors.

GraphTraits<Inverse<BasicBlock*>>

GraphTraits specialization walking a BasicBlock CFG in inverse (predecessor) order.

GraphTraits<Inverse<Function*>>

GraphTraits specialization walking a Function CFG in inverse (predecessor) order.

GraphTraits<Inverse<MachineBasicBlock*>>

GraphTraits specialization walking a MachineBasicBlock CFG in inverse order via predecessors.

GraphTraits<Inverse<MachineFunction*>>

GraphTraits specialization walking a MachineFunction CFG in inverse order via predecessor edges.

GraphTraits<Inverse<MemoryAccess*>>

Inverse GraphTraits specialization that walks MemoryAccess users.

GraphTraits<Inverse<BasicBlock const*>>

GraphTraits specialization walking a const BasicBlock CFG in inverse order.

GraphTraits<Inverse<Function const*>>

GraphTraits specialization walking a const Function CFG in inverse order.

GraphTraits<Inverse<MachineBasicBlock const*>>

GraphTraits specialization walking a const MachineBasicBlock CFG in inverse order via predecessors.

GraphTraits<Inverse<MachineFunction const*>>

GraphTraits specialization walking a const MachineFunction CFG in inverse order via predecessor edges.

GraphTraits<AACallGraphNode*>

GraphTraits specialization for the Attributor call graph.

GraphTraits<AttributorCallGraph*>

GraphTraits specialization for the Attributor call graph.

GraphTraits<BasicBlock*>

GraphTraits specialization treating a BasicBlock as a CFG node via successors.

GraphTraits<CallGraph*>

GraphTraits specialization treating a CallGraph as a graph of nodes.

GraphTraits<CallGraphNode*>

GraphTraits specialization for mutable CallGraphNode pointers.

GraphTraits<DDGNode*>

GraphTraits specialization for mutable DDGNode pointers.

GraphTraits<DOTFuncInfo*>

GraphTraits specialization that treats DOTFuncInfo as a CFG of basic blocks.

GraphTraits<DOTMachineFuncInfo*>

GraphTraits specialization that treats DOTMachineFuncInfo as a CFG of machine basic blocks.

GraphTraits<DataDependenceGraph*>

GraphTraits specialization treating a DataDependenceGraph as a graph of nodes.

GraphTraits<DomTreeNode*>

GraphTraits specialization for mutable DomTreeNode pointers.

GraphTraits<DominatorTree*>

GraphTraits specialization so DominatorTree can be walked as a graph.

GraphTraits<Function*>

GraphTraits specialization treating a Function as a CFG of basic blocks.

GraphTraits<LazyCallGraph*>

GraphTraits specialization treating a LazyCallGraph as a graph of nodes.

GraphTraits<Loop*>

GraphTraits specialization for mutable Loop pointers.

GraphTraits<MachineBasicBlock*>

GraphTraits specialization treating a MachineBasicBlock as a CFG node via successors.

GraphTraits<MachineDomTreeNode*>

GraphTraits specialization for mutable MachineDomTreeNode pointers.

GraphTraits<MachineDominatorTree*>

GraphTraits specialization so MachineDominatorTree can be walked as a graph.

GraphTraits<MachineFunction*>

GraphTraits specialization treating a MachineFunction as a CFG of machine basic blocks, with the entry node as the first block.

GraphTraits<MachineLoop*>

GraphTraits specialization for mutable MachineLoop pointers.

GraphTraits<MachineRegion*>

GraphTraits specialization so MachineRegion can be walked as a graph.

GraphTraits<MachineRegionInfo*>

GraphTraits specialization so MachineRegionInfo can be walked as a flat region graph.

GraphTraits<MachineRegionInfoPass*>

GraphTraits specialization so MachineRegionInfoPass can be walked as a flat region graph.

GraphTraits<MachineRegionNode*>

GraphTraits specialization for mutable MachineRegionNode pointers.

GraphTraits<MemoryAccess*>

GraphTraits specialization that walks defining accesses of a MemoryAccess.

GraphTraits<ModuleSummaryIndex*>

GraphTraits specialization so ModuleSummaryIndex can be traversed as a graph.

GraphTraits<LazyCallGraph::Node*>

GraphTraits specialization for LazyCallGraph nodes.

GraphTraits<PostDominatorTree*>

GraphTraits specialization so PostDominatorTree can be walked as a graph.

GraphTraits<ProfiledCallGraph*>

GraphTraits specialization treating a ProfiledCallGraph as a graph of nodes.

GraphTraits<ProfiledCallGraphNode*>

GraphTraits specialization for ProfiledCallGraphNode pointers.

GraphTraits<Region*>

GraphTraits specialization that walks a Region as a graph of nodes.

GraphTraits<RegionInfo*>

GraphTraits specialization that walks RegionInfo as a flat region graph.

GraphTraits<RegionInfoPass*>

GraphTraits specialization that walks RegionInfoPass via its RegionInfo.

GraphTraits<RegionNode*>

GraphTraits specialization for hierarchical RegionNode successors.

GraphTraits<SDNode*>

GraphTraits specialization treating SDNode operands as children.

GraphTraits<SUnit*>

GraphTraits specialization so algorithms can walk SUnit predecessor edges.

GraphTraits<ScheduleDAG*>

GraphTraits specialization for iterating all SUnits in a ScheduleDAG.

GraphTraits<SelectionDAG*>

GraphTraits specialization that iterates every node in a SelectionDAG.

GraphTraits<BasicBlock const*>

GraphTraits specialization treating a const BasicBlock as a CFG node via successors.

GraphTraits<CallGraph const*>

GraphTraits specialization treating a const CallGraph as a graph of nodes.

GraphTraits<CallGraphNode const*>

GraphTraits specialization for const CallGraphNode pointers.

GraphTraits<DDGNode const*>

GraphTraits specialization for const DDGNode pointers.

GraphTraits<DataDependenceGraph const*>

GraphTraits specialization treating a const DataDependenceGraph as a graph of nodes.

GraphTraits<DomTreeNode const*>

GraphTraits specialization for const DomTreeNode pointers.

GraphTraits<Function const*>

GraphTraits specialization treating a const Function as a CFG of basic blocks.

GraphTraits<Loop const*>

GraphTraits specialization for const Loop pointers.

GraphTraits<MachineBasicBlock const*>

GraphTraits specialization treating a const MachineBasicBlock as a CFG node via successors.

GraphTraits<MachineDomTreeNode const*>

GraphTraits specialization for const MachineDomTreeNode pointers.

GraphTraits<MachineFunction const*>

GraphTraits specialization treating a const MachineFunction as a CFG of machine basic blocks, with the entry node as the first block.

GraphTraits<MachineLoop const*>

GraphTraits specialization for const MachineLoop pointers.

GraphTraits<MachineRegion const*>

GraphTraits specialization so const MachineRegion can be walked as a graph.

GraphTraits<MachineRegionNode const*>

GraphTraits specialization for const MachineRegionNode pointers.

GraphTraits<Region const*>

GraphTraits specialization that walks a Region as a graph of nodes.

GraphTraits<RegionNode const*>

GraphTraits specialization for hierarchical RegionNode successors.

GraphTraits<Inverse<Inverse<T>>>

GraphTraits for a double‐inverted graph, same as for the original type.

Derived Classes

Name

Description

GraphTraits<Inverse<Inverse<T>>>

GraphTraits for a double‐inverted graph, same as for the original type.

Created with MrDocs