class LoopInfo

Declaration

class LoopInfo : public LoopInfoBase { /* full declaration omitted */ };

Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1105

Inherits from: LoopInfoBase

Method Overview

Methods

LoopInfo(const llvm::LoopInfo&)

Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1111

Parameters

const llvm::LoopInfo&

LoopInfo()

Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1114

LoopInfo(const DominatorTreeBase<llvm::BasicBlock,
                                 false>& DomTree)

Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1115

Parameters

const DominatorTreeBase<llvm::BasicBlock, false>& DomTree

LoopInfo(llvm::LoopInfo&& Arg)

Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1117

Parameters

llvm::LoopInfo&& Arg

void erase(llvm::Loop* L)

Description

Update LoopInfo after removing the last backedge from a loop. This updates the loop forest and parent loops for each block so that \c L is no longer referenced, but does not actually delete \c L immediately. The pointer will remain valid until this LoopInfo's memory is released.

Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1133

Parameters

llvm::Loop* L

bool invalidate(
    llvm::Function& F,
    const llvm::PreservedAnalyses& PA,
    FunctionAnalysisManager::Invalidator&)

Description

Handle invalidation explicitly.

Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1124

Parameters

llvm::Function& F
const llvm::PreservedAnalyses& PA
FunctionAnalysisManager::Invalidator&

bool movementPreservesLCSSAForm(
    llvm::Instruction* Inst,
    llvm::Instruction* NewLoc)

Description

Checks if moving a specific instruction can break LCSSA in any loop. Return true if moving \p Inst to before \p NewLoc will break LCSSA, assuming that the function containing \p Inst and \p NewLoc is currently in LCSSA form.

Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1163

Parameters

llvm::Instruction* Inst
llvm::Instruction* NewLoc

bool replacementPreservesLCSSAForm(
    llvm::Instruction* From,
    llvm::Value* To)

Description

Returns true if replacing From with To everywhere is guaranteed to preserve LCSSA form.

Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1137

Parameters

llvm::Instruction* From
llvm::Value* To

bool wouldBeOutOfLoopUseRequiringLCSSA(
    const llvm::Value* V,
    const llvm::BasicBlock* ExitBB) const

Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1233

Parameters

const llvm::Value* V
const llvm::BasicBlock* ExitBB