ΒΆbool LoopRotation(
llvm::Loop* L,
llvm::LoopInfo* LI,
const llvm::TargetTransformInfo* TTI,
llvm::AssumptionCache* AC,
llvm::DominatorTree* DT,
llvm::ScalarEvolution* SE,
llvm::MemorySSAUpdater* MSSAU,
const llvm::SimplifyQuery& SQ,
bool RotationOnly,
unsigned int Threshold,
bool IsUtilMode)
bool LoopRotation(
llvm::Loop* L,
llvm::LoopInfo* LI,
const llvm::TargetTransformInfo* TTI,
llvm::AssumptionCache* AC,
llvm::DominatorTree* DT,
llvm::ScalarEvolution* SE,
llvm::MemorySSAUpdater* MSSAU,
const llvm::SimplifyQuery& SQ,
bool RotationOnly,
unsigned int Threshold,
bool IsUtilMode)
Description
Convert a loop into a loop with bottom test. It may perform loop latch simplication as well if the flag RotationOnly is false. The flag Threshold represents the size threshold of the loop header. If the loop header's size exceeds the threshold, the loop rotation will give up. The flag IsUtilMode controls the heuristic used in the LoopRotation. If it is true, the profitability heuristic will be ignored.
Declared at: llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h:33
Parameters
- llvm::Loop* L
- llvm::LoopInfo* LI
- const llvm::TargetTransformInfo* TTI
- llvm::AssumptionCache* AC
- llvm::DominatorTree* DT
- llvm::ScalarEvolution* SE
- llvm::MemorySSAUpdater* MSSAU
- const llvm::SimplifyQuery& SQ
- bool RotationOnly
- unsigned int Threshold
- bool IsUtilMode