class DDGBuilder
Declaration
class DDGBuilder : public AbstractDependenceGraphBuilder { /* full declaration omitted */ };
Description
Concrete implementation of a pure data dependence graph builder. This class provides custom implementation for the pure-virtual functions used in the generic dependence graph build algorithm. For information about time complexity of the build algorithm see the comments near the declaration of AbstractDependenceGraphBuilder.
Declared at: llvm/include/llvm/Analysis/DDG.h:342
Inherits from: AbstractDependenceGraphBuilder
Method Overview
- public DDGBuilder(llvm::DataDependenceGraph & G, llvm::DependenceInfo & D, const llvm::AbstractDependenceGraphBuilder<llvm::DataDependenceGraph>::BasicBlockListType & BBs)
- public llvm::DDGEdge & createDefUseEdge(llvm::DDGNode & Src, llvm::DDGNode & Tgt)
- public llvm::DDGNode & createFineGrainedNode(llvm::Instruction & I)
- public llvm::DDGEdge & createMemoryEdge(llvm::DDGNode & Src, llvm::DDGNode & Tgt)
- public llvm::DDGNode & createPiBlock(const llvm::AbstractDependenceGraphBuilder<llvm::DataDependenceGraph>::NodeListType & L)
- public llvm::DDGNode & createRootNode()
- public llvm::DDGEdge & createRootedEdge(llvm::DDGNode & Src, llvm::DDGNode & Tgt)
- public const llvm::AbstractDependenceGraphBuilder<llvm::DataDependenceGraph>::NodeListType & getNodesInPiBlock(const llvm::DDGNode & N)
- public bool shouldCreatePiBlocks() const
Methods
¶DDGBuilder(
llvm::DataDependenceGraph& G,
llvm::DependenceInfo& D,
const llvm::AbstractDependenceGraphBuilder<
llvm::DataDependenceGraph>::
BasicBlockListType& BBs)
DDGBuilder(
llvm::DataDependenceGraph& G,
llvm::DependenceInfo& D,
const llvm::AbstractDependenceGraphBuilder<
llvm::DataDependenceGraph>::
BasicBlockListType& BBs)
Declared at: llvm/include/llvm/Analysis/DDG.h:344
Parameters
- llvm::DataDependenceGraph& G
- llvm::DependenceInfo& D
- const llvm::AbstractDependenceGraphBuilder< llvm::DataDependenceGraph>:: BasicBlockListType& BBs
¶llvm::DDGEdge& createDefUseEdge(
llvm::DDGNode& Src,
llvm::DDGNode& Tgt)
llvm::DDGEdge& createDefUseEdge(
llvm::DDGNode& Src,
llvm::DDGNode& Tgt)
Description
Create a def-use edge going from \p Src to \p Tgt.
Declared at: llvm/include/llvm/Analysis/DDG.h:365
Parameters
- llvm::DDGNode& Src
- llvm::DDGNode& Tgt
¶llvm::DDGNode& createFineGrainedNode(
llvm::Instruction& I)
llvm::DDGNode& createFineGrainedNode(
llvm::Instruction& I)
Description
Create an atomic node in the graph given a single instruction.
Declared at: llvm/include/llvm/Analysis/DDG.h:353
Parameters
¶llvm::DDGEdge& createMemoryEdge(
llvm::DDGNode& Src,
llvm::DDGNode& Tgt)
llvm::DDGEdge& createMemoryEdge(
llvm::DDGNode& Src,
llvm::DDGNode& Tgt)
Description
Create a memory dependence edge going from \p Src to \p Tgt.
Declared at: llvm/include/llvm/Analysis/DDG.h:371
Parameters
- llvm::DDGNode& Src
- llvm::DDGNode& Tgt
¶llvm::DDGNode& createPiBlock(
const llvm::AbstractDependenceGraphBuilder<
llvm::DataDependenceGraph>::NodeListType&
L)
llvm::DDGNode& createPiBlock(
const llvm::AbstractDependenceGraphBuilder<
llvm::DataDependenceGraph>::NodeListType&
L)
Description
Create a pi-block node in the graph representing a group of nodes in an SCC of the graph.
Declared at: llvm/include/llvm/Analysis/DDG.h:359
Parameters
- const llvm::AbstractDependenceGraphBuilder< llvm::DataDependenceGraph>::NodeListType& L
¶llvm::DDGNode& createRootNode()
llvm::DDGNode& createRootNode()
Description
Create the root node of the graph.
Declared at: llvm/include/llvm/Analysis/DDG.h:347
¶llvm::DDGEdge& createRootedEdge(
llvm::DDGNode& Src,
llvm::DDGNode& Tgt)
llvm::DDGEdge& createRootedEdge(
llvm::DDGNode& Src,
llvm::DDGNode& Tgt)
Description
Create a rooted edge going from \p Src to \p Tgt .
Declared at: llvm/include/llvm/Analysis/DDG.h:377
Parameters
- llvm::DDGNode& Src
- llvm::DDGNode& Tgt
¶const llvm::AbstractDependenceGraphBuilder<
llvm::DataDependenceGraph>::NodeListType&
getNodesInPiBlock(const llvm::DDGNode& N)
const llvm::AbstractDependenceGraphBuilder<
llvm::DataDependenceGraph>::NodeListType&
getNodesInPiBlock(const llvm::DDGNode& N)
Description
Given a pi-block node, return a vector of all the nodes contained within it.
Declared at: llvm/include/llvm/Analysis/DDG.h:385
Parameters
- const llvm::DDGNode& N
¶bool shouldCreatePiBlocks() const
bool shouldCreatePiBlocks() const
Description
Return true if creation of pi-blocks are supported and desired, and false otherwise.
Declared at: llvm/include/llvm/Analysis/DDG.h:391