LLVM 24.0.0git
LoopFlatten.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "loop-flatten"

Functions

 STATISTIC (NumFlattened, "Number of loops flattened")
static bool setLoopComponents (Value *&TC, Value *&TripCount, BinaryOperator *&Increment, SmallPtrSetImpl< Instruction * > &IterationInstructions)
static bool verifyTripCount (Value *RHS, Loop *L, SmallPtrSetImpl< Instruction * > &IterationInstructions, PHINode *&InductionPHI, Value *&TripCount, BinaryOperator *&Increment, CondBrInst *&BackBranch, ScalarEvolution *SE, bool IsWidened)
static bool findLoopComponents (Loop *L, SmallPtrSetImpl< Instruction * > &IterationInstructions, PHINode *&InductionPHI, Value *&TripCount, BinaryOperator *&Increment, CondBrInst *&BackBranch, ScalarEvolution *SE, bool IsWidened)
static bool checkPHIs (FlattenInfo &FI, const TargetTransformInfo *TTI)
static bool checkOuterLoopInsts (FlattenInfo &FI, SmallPtrSetImpl< Instruction * > &IterationInstructions, const TargetTransformInfo *TTI)
static bool checkIVUsers (FlattenInfo &FI)
static OverflowResult checkOverflow (FlattenInfo &FI, DominatorTree *DT, AssumptionCache *AC)
static bool CanFlattenLoopPair (FlattenInfo &FI, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, const TargetTransformInfo *TTI)
static bool DoFlattenLoopPair (FlattenInfo &FI, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, const TargetTransformInfo *TTI, LPMUpdater *U, MemorySSAUpdater *MSSAU)
static bool CanWidenIV (FlattenInfo &FI, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, const TargetTransformInfo *TTI)
static bool FlattenLoopPair (FlattenInfo &FI, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, const TargetTransformInfo *TTI, LPMUpdater *U, MemorySSAUpdater *MSSAU, const LoopAccessInfo &LAI)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "loop-flatten"

Definition at line 83 of file LoopFlatten.cpp.

Function Documentation

◆ CanFlattenLoopPair()

◆ CanWidenIV()

◆ checkIVUsers()

bool checkIVUsers ( FlattenInfo & FI)
static

Definition at line 604 of file LoopFlatten.cpp.

References llvm::dbgs(), LLVM_DEBUG, and llvm::SmallPtrSetImplBase::size().

Referenced by CanFlattenLoopPair().

◆ checkOuterLoopInsts()

◆ checkOverflow()

◆ checkPHIs()

◆ DoFlattenLoopPair()

◆ findLoopComponents()

◆ FlattenLoopPair()

◆ setLoopComponents()

bool setLoopComponents ( Value *& TC,
Value *& TripCount,
BinaryOperator *& Increment,
SmallPtrSetImpl< Instruction * > & IterationInstructions )
static

◆ STATISTIC()

STATISTIC ( NumFlattened ,
"Number of loops flattened"  )

References llvm::Global.

◆ verifyTripCount()