llvm::breakLoopBackedge

Remove the backedge of the specified loop. Handles loop nests and general loop structures subject to the precondition that the loop has no parent loop and has a single latch block. Preserves all listed analyses.

Synopsis

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

void
breakLoopBackedge(
    Loop* L,
    DominatorTree& DT,
    ScalarEvolution& SE,
    LoopInfo& LI,
    MemorySSA* MSSA);

Parameters

NameDescription
LRepresents a single loop in the control flow graph. Note that not all SCCs in the CFG are necessarily loops.
DTConcrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
SEThe main scalar evolution driver. Because client code (intentionally) can't do much with the SCEV objects directly, they must ask this class for services.
MSSAEncapsulates MemorySSA, including all data associated with memory accesses.