Ensure that all exit blocks of the loop are dedicated exits.

Synopsis

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

bool
formDedicatedExitBlocks(
    Loop* L,
    DominatorTree* DT,
    LoopInfo* LI,
    MemorySSAUpdater* MSSAU,
    bool PreserveLCSSA);

Description

For any loop exit block with non‐loop predecessors, we split the loop predecessors to use a dedicated loop exit block. We update the dominator tree and loop info if provided, and will preserve LCSSA if requested.

Return Value

True if any exit blocks were made dedicated.

Parameters

Name

Description

L

The loop whose exits should be made dedicated.

DT

Dominator tree to update, or nullptr.

LI

Loop info to update, or nullptr.

MSSAU

MemorySSA updater, or nullptr.

PreserveLCSSA

Whether to preserve LCSSA form when splitting.

Created with MrDocs