class LoopInfo
Declaration
class LoopInfo : public LoopInfoBase { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1049
Inherits from: LoopInfoBase
Method Overview
- public LoopInfo()
- public LoopInfo(const DominatorTreeBase<llvm::BasicBlock, false> & DomTree)
- public LoopInfo(llvm::LoopInfo && Arg)
- public void erase(llvm::Loop * L)
- public bool invalidate(llvm::Function & F, const llvm::PreservedAnalyses & PA, FunctionAnalysisManager::Invalidator &)
- public bool movementPreservesLCSSAForm(llvm::Instruction * Inst, llvm::Instruction * NewLoc)
- public bool replacementPreservesLCSSAForm(llvm::Instruction * From, llvm::Value * To)
Methods
¶LoopInfo()
LoopInfo()
Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1058
¶LoopInfo(const DominatorTreeBase<llvm::BasicBlock,
false>& DomTree)
LoopInfo(const DominatorTreeBase<llvm::BasicBlock,
false>& DomTree)
Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1059
Parameters
- const DominatorTreeBase<llvm::BasicBlock, false>& DomTree
¶LoopInfo(llvm::LoopInfo&& Arg)
LoopInfo(llvm::LoopInfo&& Arg)
Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1061
Parameters
- llvm::LoopInfo&& Arg
¶void erase(llvm::Loop* L)
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:1077
Parameters
- llvm::Loop* L
¶bool invalidate(
llvm::Function& F,
const llvm::PreservedAnalyses& PA,
FunctionAnalysisManager::Invalidator&)
bool invalidate(
llvm::Function& F,
const llvm::PreservedAnalyses& PA,
FunctionAnalysisManager::Invalidator&)
Description
Handle invalidation explicitly.
Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1068
Parameters
- llvm::Function& F
- const llvm::PreservedAnalyses& PA
- FunctionAnalysisManager::Invalidator&
¶bool movementPreservesLCSSAForm(
llvm::Instruction* Inst,
llvm::Instruction* NewLoc)
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:1107
Parameters
- llvm::Instruction* Inst
- llvm::Instruction* NewLoc
¶bool replacementPreservesLCSSAForm(
llvm::Instruction* From,
llvm::Value* To)
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:1081
Parameters
- llvm::Instruction* From
- llvm::Value* To