class LoopInfo
Declaration
class LoopInfo : public LoopInfoBase { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1105
Inherits from: LoopInfoBase
Method Overview
- private LoopInfo(const llvm::LoopInfo &)
- 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)
- public bool wouldBeOutOfLoopUseRequiringLCSSA(const llvm::Value * V, const llvm::BasicBlock * ExitBB) const
Methods
¶LoopInfo(const llvm::LoopInfo&)
LoopInfo(const llvm::LoopInfo&)
Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1111
Parameters
- const llvm::LoopInfo&
¶LoopInfo()
LoopInfo()
Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1114
¶LoopInfo(const DominatorTreeBase<llvm::BasicBlock,
false>& DomTree)
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)
LoopInfo(llvm::LoopInfo&& Arg)
Declared at: llvm/include/llvm/Analysis/LoopInfo.h:1117
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:1133
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:1124
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:1163
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:1137
Parameters
- llvm::Instruction* From
- llvm::Value* To
¶bool wouldBeOutOfLoopUseRequiringLCSSA(
const llvm::Value* V,
const llvm::BasicBlock* ExitBB) const
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