Determine the iterated dominance frontier, given a set of defining blocks, and optionally, a set of live‐in blocks.

Synopsis

Declared in <llvm/Support/GenericIteratedDominanceFrontier.h>

template<
    class NodeTy,
    bool IsPostDom>
class IDFCalculatorBase;

Description

In turn, the results can be used to place phi nodes.

This algorithm is a linear time computation of Iterated Dominance Frontiers, pruned using the live‐in set. By default, liveness is not used to prune the IDF computation. The template parameters should be of a CFG block type.

Type Aliases

Name

Description

ChildrenGetterTy

Helper that yields CFG children in the direction of the IDF walk.

OrderedNodeTy

Node type oriented for dominance or post‐dominance traversal.

Member Functions

Name

Description

IDFCalculatorBase [constructor]

Constructors

calculate

Calculate iterated dominance frontiers.

resetLiveInBlocks

Reset the live‐in block set to be empty, and tell the IDF calculator to not use liveness anymore.

setDefiningBlocks

Set the blocks in which the value is defined.

setLiveInBlocks

Set the blocks in which the value is live on entry.

Derived Classes

Name

Description

IDFCalculator

Iterated dominance frontier calculator specialized for BasicBlock.

Created with MrDocs