LLVM 22.0.0git
LoopBoundSplit.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "loop-bound-split"

Functions

static void analyzeICmp (ScalarEvolution &SE, ICmpInst *ICmp, ConditionInfo &Cond, const Loop &L)
static bool calculateUpperBound (const Loop &L, ScalarEvolution &SE, ConditionInfo &Cond, bool IsExitCond)
static bool hasProcessableCondition (const Loop &L, ScalarEvolution &SE, ICmpInst *ICmp, ConditionInfo &Cond, bool IsExitCond)
static bool isProcessableCondBI (const ScalarEvolution &SE, const BranchInst *BI)
static bool canSplitLoopBound (const Loop &L, const DominatorTree &DT, ScalarEvolution &SE, ConditionInfo &Cond)
static bool isProfitableToTransform (const Loop &L, const BranchInst *BI)
static BranchInstfindSplitCandidate (const Loop &L, ScalarEvolution &SE, ConditionInfo &ExitingCond, ConditionInfo &SplitCandidateCond)
static bool splitLoopBound (Loop &L, DominatorTree &DT, LoopInfo &LI, ScalarEvolution &SE, LPMUpdater &U)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "loop-bound-split"

Definition at line 22 of file LoopBoundSplit.cpp.

Function Documentation

◆ analyzeICmp()

◆ calculateUpperBound()

◆ canSplitLoopBound()

◆ findSplitCandidate()

BranchInst * findSplitCandidate ( const Loop & L,
ScalarEvolution & SE,
ConditionInfo & ExitingCond,
ConditionInfo & SplitCandidateCond )
static

◆ hasProcessableCondition()

◆ isProcessableCondBI()

◆ isProfitableToTransform()

bool isProfitableToTransform ( const Loop & L,
const BranchInst * BI )
static

◆ splitLoopBound()

bool splitLoopBound ( Loop & L,
DominatorTree & DT,
LoopInfo & LI,
ScalarEvolution & SE,
LPMUpdater & U )
static