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)

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)

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)

Description

Create an atomic node in the graph given a single instruction.

Declared at: llvm/include/llvm/Analysis/DDG.h:353

Parameters

llvm::Instruction& I

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)

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()

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)

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)

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

Description

Return true if creation of pi-blocks are supported and desired, and false otherwise.

Declared at: llvm/include/llvm/Analysis/DDG.h:391