LLVM 24.0.0git
LoopSplitUtils.cpp File Reference

Go to the source code of this file.

Classes

struct  llvm::LoopSplitUtils::SplitState
 Per-split() scratch shared by the phase helpers; lives for one split() call. More...
struct  llvm::LoopSplitUtils::SplitState::EscapingValue
 A value that must be reconstructed after cloning because it is loop-carried (feeds a later partition), live-out (used after the loop), or both. More...

Macros

#define DEBUG_TYPE   "loop-split-utils"

Functions

static const SCEVAddRecExpranalyzeInduction (Loop *L, ScalarEvolution *SE, Value *&LatchIndOperand)
static std::optional< boolcomputeSignedness (Loop *L, const SCEVAddRecExpr *IndAR)
static ICmpInst::Predicate continuePredicate (bool Signed, bool Descending, bool Inclusive)
static ICmpInst::Predicate guardPredicate (bool Signed, bool Descending)
static void buildEntryGuard (BasicBlock *&Preheader, BasicBlock *&EntryGuard, DominatorTree *DT, LoopInfo *LI)
static void rewriteLatch (Loop *PL, Value *IndOp, Value *SelEnd, BasicBlock *Exit, bool Signed, bool Descending, bool LatchComparesPHI)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "loop-split-utils"

Definition at line 76 of file LoopSplitUtils.cpp.

Function Documentation

◆ analyzeInduction()

◆ buildEntryGuard()

void buildEntryGuard ( BasicBlock *& Preheader,
BasicBlock *& EntryGuard,
DominatorTree * DT,
LoopInfo * LI )
static

◆ computeSignedness()

◆ continuePredicate()

ICmpInst::Predicate continuePredicate ( bool Signed,
bool Descending,
bool Inclusive )
static

◆ guardPredicate()

ICmpInst::Predicate guardPredicate ( bool Signed,
bool Descending )
static

◆ rewriteLatch()

void rewriteLatch ( Loop * PL,
Value * IndOp,
Value * SelEnd,
BasicBlock * Exit,
bool Signed,
bool Descending,
bool LatchComparesPHI )
static