LLVM 24.0.0git
LoopUnrollAndJamPass.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Macros

#define DEBUG_TYPE   "loop-unroll-and-jam"

Functions

static bool hasAnyUnrollPragma (const Loop *L, StringRef Prefix)
static bool hasUnrollAndJamEnablePragma (const Loop *L)
static unsigned unrollAndJamCountPragmaValue (const Loop *L)
static uint64_t getUnrollAndJammedLoopSize (unsigned LoopSize, const TargetTransformInfo::UnrollingPreferences &UP, unsigned Count)
static unsigned computeUnrollAndJamCount (const ScalarOptions &Opts, Loop *L, Loop *SubLoop, const TargetTransformInfo &TTI, DominatorTree &DT, LoopInfo *LI, AssumptionCache *AC, ScalarEvolution &SE, const SmallPtrSetImpl< const Value * > &EphValues, OptimizationRemarkEmitter *ORE, unsigned OuterTripCount, unsigned OuterTripMultiple, const UnrollCostEstimator &OuterUCE, unsigned InnerTripCount, unsigned InnerLoopSize, bool &IsExplicitUnrollAndJam, TargetTransformInfo::UnrollingPreferences &UP, TargetTransformInfo::PeelingPreferences &PP)
static LoopUnrollResult tryToUnrollAndJamLoop (Loop *L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution &SE, const TargetTransformInfo &TTI, AssumptionCache &AC, DependenceInfo &DI, OptimizationRemarkEmitter &ORE, int OptLevel)
static bool tryToUnrollAndJamLoop (LoopNest &LN, DominatorTree &DT, LoopInfo &LI, ScalarEvolution &SE, const TargetTransformInfo &TTI, AssumptionCache &AC, DependenceInfo &DI, OptimizationRemarkEmitter &ORE, int OptLevel, LPMUpdater &U, bool &AnyLoopRemoved)

Variables

static const char *const LLVMLoopUnrollAndJamFollowupAll
static const char *const LLVMLoopUnrollAndJamFollowupInner
static const char *const LLVMLoopUnrollAndJamFollowupOuter
static const char *const LLVMLoopUnrollAndJamFollowupRemainderInner
static const char *const LLVMLoopUnrollAndJamFollowupRemainderOuter

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "loop-unroll-and-jam"

Definition at line 53 of file LoopUnrollAndJamPass.cpp.

Function Documentation

◆ computeUnrollAndJamCount()

◆ getUnrollAndJammedLoopSize()

◆ hasAnyUnrollPragma()

bool hasAnyUnrollPragma ( const Loop * L,
StringRef Prefix )
static

◆ hasUnrollAndJamEnablePragma()

bool hasUnrollAndJamEnablePragma ( const Loop * L)
static

Definition at line 94 of file LoopUnrollAndJamPass.cpp.

References llvm::getUnrollMetadataForLoop().

Referenced by computeUnrollAndJamCount().

◆ tryToUnrollAndJamLoop() [1/2]

LoopUnrollResult tryToUnrollAndJamLoop ( Loop * L,
DominatorTree & DT,
LoopInfo * LI,
ScalarEvolution & SE,
const TargetTransformInfo & TTI,
AssumptionCache & AC,
DependenceInfo & DI,
OptimizationRemarkEmitter & ORE,
int OptLevel )
static

◆ tryToUnrollAndJamLoop() [2/2]

◆ unrollAndJamCountPragmaValue()

Variable Documentation

◆ LLVMLoopUnrollAndJamFollowupAll

const char* const LLVMLoopUnrollAndJamFollowupAll
static
Initial value:
=
"llvm.loop.unroll_and_jam.followup_all"

Metadata attribute names

Definition at line 57 of file LoopUnrollAndJamPass.cpp.

Referenced by tryToUnrollAndJamLoop().

◆ LLVMLoopUnrollAndJamFollowupInner

const char* const LLVMLoopUnrollAndJamFollowupInner
static
Initial value:
=
"llvm.loop.unroll_and_jam.followup_inner"

Definition at line 59 of file LoopUnrollAndJamPass.cpp.

Referenced by tryToUnrollAndJamLoop().

◆ LLVMLoopUnrollAndJamFollowupOuter

const char* const LLVMLoopUnrollAndJamFollowupOuter
static
Initial value:
=
"llvm.loop.unroll_and_jam.followup_outer"

Definition at line 61 of file LoopUnrollAndJamPass.cpp.

Referenced by tryToUnrollAndJamLoop().

◆ LLVMLoopUnrollAndJamFollowupRemainderInner

const char* const LLVMLoopUnrollAndJamFollowupRemainderInner
static
Initial value:
=
"llvm.loop.unroll_and_jam.followup_remainder_inner"

Definition at line 63 of file LoopUnrollAndJamPass.cpp.

Referenced by tryToUnrollAndJamLoop().

◆ LLVMLoopUnrollAndJamFollowupRemainderOuter

const char* const LLVMLoopUnrollAndJamFollowupRemainderOuter
static
Initial value:
=
"llvm.loop.unroll_and_jam.followup_remainder_outer"

Definition at line 65 of file LoopUnrollAndJamPass.cpp.

Referenced by tryToUnrollAndJamLoop().