llvm::GraphTraits

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

NameDescription
NodeRef Placeholder that fails compilation unless GraphTraits is specialized.

Specializations

NameDescription
GraphTraits<ValueInfo> GraphTraits definition to build SCC for the index
GraphTraits<FlatIt<MachineRegion*>>
GraphTraits<FlatIt<MachineRegionNode*>>
GraphTraits<FlatIt<Region*>>
GraphTraits<FlatIt<RegionNode*>>
GraphTraits<FlatIt<MachineRegion const*>>
GraphTraits<FlatIt<MachineRegionNode const*>>
GraphTraits<FlatIt<Region const*>>
GraphTraits<FlatIt<RegionNode const*>>
GraphTraits<Inverse<BasicBlock*>>
GraphTraits<Inverse<Function*>>
GraphTraits<Inverse<MachineBasicBlock*>>
GraphTraits<Inverse<MachineFunction*>>
GraphTraits<Inverse<MemoryAccess*>>
GraphTraits<Inverse<BasicBlock const*>>
GraphTraits<Inverse<Function const*>>
GraphTraits<Inverse<MachineBasicBlock const*>>
GraphTraits<Inverse<MachineFunction const*>>
GraphTraits<AACallGraphNode*>
GraphTraits<AttributorCallGraph*>
GraphTraits<BasicBlock*>
GraphTraits<CallGraph*>
GraphTraits<CallGraphNode*>
GraphTraits<DDGNode*> non-const versions of the grapth trait specializations for DDG
GraphTraits<DOTFuncInfo*>
GraphTraits<DOTMachineFuncInfo*>
GraphTraits<DataDependenceGraph*>
GraphTraits<DomTreeNode*>
GraphTraits<DominatorTree*>
GraphTraits<Function*>
GraphTraits<LazyCallGraph*>
GraphTraits<Loop*>
GraphTraits<MachineBasicBlock*>
GraphTraits<MachineDomTreeNode*>
GraphTraits<MachineDominatorTree*>
GraphTraits<MachineFunction*>
GraphTraits<MachineLoop*>
GraphTraits<MachineRegion*>
GraphTraits<MachineRegionInfo*>
GraphTraits<MachineRegionInfoPass*>
GraphTraits<MachineRegionNode*>
GraphTraits<MemoryAccess*> GraphTraits for a MemoryAccess, which walks defs in the normal case, and uses in the inverse case.
GraphTraits<ModuleSummaryIndex*>
GraphTraits<LazyCallGraph::Node*>
GraphTraits<PostDominatorTree*>
GraphTraits<ProfiledCallGraph*>
GraphTraits<ProfiledCallGraphNode*>
GraphTraits<Region*>
GraphTraits<RegionInfo*>
GraphTraits<RegionInfoPass*>
GraphTraits<RegionNode*>
GraphTraits<SDNode*>
GraphTraits<SUnit*>
GraphTraits<ScheduleDAG*>
GraphTraits<SelectionDAG*>
GraphTraits<BasicBlock const*>
GraphTraits<CallGraph const*>
GraphTraits<CallGraphNode const*>
GraphTraits<DDGNode const*> const versions of the grapth trait specializations for DDG
GraphTraits<DataDependenceGraph const*>
GraphTraits<DomTreeNode const*>
GraphTraits<Function const*>
GraphTraits<Loop const*>
GraphTraits<MachineBasicBlock const*>
GraphTraits<MachineDomTreeNode const*>
GraphTraits<MachineFunction const*>
GraphTraits<MachineLoop const*>
GraphTraits<MachineRegion const*>
GraphTraits<MachineRegionNode const*>
GraphTraits<Region const*>
GraphTraits<RegionNode const*>
GraphTraits<Inverse<Inverse<T>>>

Derived Classes

NameDescription
GraphTraits<Inverse<Inverse<T>>>