Redirect selected predecessors of a block through a new intermediate block.

Synopses

Declared in <llvm/Transforms/Utils/BasicBlockUtils.h>

Redirect selected predecessors of a block through a new intermediate block.

BasicBlock*
SplitBlockPredecessors(
    BasicBlock* BB,
    ArrayRef<BasicBlock*> Preds,
    char const* Suffix,
    DomTreeUpdater* DTU = nullptr,
    LoopInfo* LI = nullptr,
    MemorySSAUpdater* MSSAU = nullptr,
    bool PreserveLCSSA = false);

Redirect selected predecessors of a block through a new intermediate block.

BasicBlock*
SplitBlockPredecessors(
    BasicBlock* BB,
    ArrayRef<BasicBlock*> Preds,
    char const* Suffix,
    DominatorTree* DT,
    LoopInfo* LI = nullptr,
    MemorySSAUpdater* MSSAU = nullptr,
    bool PreserveLCSSA = false);

Return Value

The new intermediate block to which predecessors from Preds now point.

Parameters

Name

Description

BB

Block whose predecessors are redirected.

Preds

Predecessors moved to the new intermediate block.

Suffix

Name suffix for the newly created block.

DTU

Optional dominator‐tree updater for CFG changes.

LI

Optional loop info to update.

MSSAU

Optional MemorySSA updater for the split.

PreserveLCSSA

Whether to preserve LCSSA form.

DT

Dominator tree to update.

Created with MrDocs