LLVM  15.0.0git
Namespaces | Macros | Functions
LoopBoundSplit.cpp File Reference
#include "llvm/Transforms/Scalar/LoopBoundSplit.h"
#include "llvm/ADT/Sequence.h"
#include "llvm/Analysis/LoopAnalysisManager.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/Transforms/Scalar/LoopPassManager.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Transforms/Utils/LoopSimplify.h"
#include "llvm/Transforms/Utils/ScalarEvolutionExpander.h"
Include dependency graph for LoopBoundSplit.cpp:

Go to the source code of this file.


 This is an optimization pass for GlobalISel generic memory operations.


#define DEBUG_TYPE   "loop-bound-split"


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

Macro Definition Documentation


#define DEBUG_TYPE   "loop-bound-split"

Definition at line 22 of file LoopBoundSplit.cpp.