clang
19.0.0git
|
Attributes that may be specified on loops. More...
#include "/home/runner/work/llvm/llvm/repo/clang/lib/CodeGen/CGLoopInfo.h"
Classes | |
struct | SYCLIVDepInfo |
Public Types | |
enum | LVEnableState { Unspecified , Enable , Disable , Full } |
State of loop vectorization or unrolling. More... | |
Public Member Functions | |
LoopAttributes (bool IsParallel=false) | |
void | clear () |
Public Attributes | |
bool | IsParallel |
Generate llvm.loop.parallel metadata for loads and stores. More... | |
LVEnableState | VectorizeEnable |
Value for llvm.loop.vectorize.enable metadata. More... | |
LVEnableState | UnrollEnable |
Value for llvm.loop.unroll.* metadata (enable, disable, or full). More... | |
LVEnableState | UnrollAndJamEnable |
Value for llvm.loop.unroll_and_jam.* metadata (enable, disable, or full). More... | |
LVEnableState | VectorizePredicateEnable |
Value for llvm.loop.vectorize.predicate metadata. More... | |
unsigned | VectorizeWidth |
Value for llvm.loop.vectorize.width metadata. More... | |
LVEnableState | VectorizeScalable |
unsigned | InterleaveCount |
Value for llvm.loop.interleave.count metadata. More... | |
std::optional< SYCLIVDepInfo > | GlobalSYCLIVDepInfo |
llvm::SmallVector< SYCLIVDepInfo, 4 > | ArraySYCLIVDepInfo |
unsigned | SYCLIInterval |
Value for llvm.loop.ii.count metadata. More... | |
std::optional< unsigned > | SYCLMaxConcurrencyNThreads |
Value for llvm.loop.max_concurrency.count metadata. More... | |
llvm::SmallVector< std::pair< const char *, unsigned int >, 2 > | SYCLIntelFPGAVariantCount |
Value for count variant (min/max/avg) and count metadata. More... | |
bool | SYCLLoopCoalesceEnable |
Flag for llvm.loop.coalesce metadata. More... | |
unsigned | SYCLLoopCoalesceNLevels |
Value for llvm.loop.coalesce.count metadata. More... | |
bool | SYCLLoopPipeliningDisable |
Flag for llvm.loop.intel.pipelining.enable, i32 0 metadata. More... | |
std::optional< unsigned > | SYCLMaxInterleavingNInvocations |
Value for llvm.loop.max_interleaving.count metadata. More... | |
std::optional< unsigned > | SYCLSpeculatedIterationsNIterations |
Value for llvm.loop.intel.speculated.iterations.count metadata. More... | |
std::optional< unsigned > | SYCLMaxReinvocationDelayNCycles |
bool | SYCLLoopPipeliningEnable |
Flag for llvm.loop.intel.pipelining.enable, i32 1 metadata. More... | |
unsigned | UnrollCount |
llvm.unroll. More... | |
unsigned | UnrollAndJamCount |
llvm.unroll. More... | |
LVEnableState | DistributeEnable |
Value for llvm.loop.distribute.enable metadata. More... | |
bool | PipelineDisabled |
Value for llvm.loop.pipeline.disable metadata. More... | |
unsigned | PipelineInitiationInterval |
Value for llvm.loop.pipeline.iicount metadata. More... | |
bool | SYCLNofusionEnable |
Flag for llvm.loop.fusion.disable metatdata. More... | |
unsigned | CodeAlign |
Value for 'llvm.loop.align' metadata. More... | |
bool | MustProgress |
Value for whether the loop is required to make progress. More... | |
Attributes that may be specified on loops.
Definition at line 37 of file CGLoopInfo.h.
State of loop vectorization or unrolling.
Enumerator | |
---|---|
Unspecified | |
Enable | |
Disable | |
Full |
Definition at line 45 of file CGLoopInfo.h.
Definition at line 647 of file CGLoopInfo.cpp.
References clang::Unspecified.
void LoopAttributes::clear | ( | ) |
Definition at line 660 of file CGLoopInfo.cpp.
References ArraySYCLIVDepInfo, CodeAlign, DistributeEnable, GlobalSYCLIVDepInfo, InterleaveCount, IsParallel, MustProgress, PipelineDisabled, PipelineInitiationInterval, SYCLIInterval, SYCLIntelFPGAVariantCount, SYCLLoopCoalesceEnable, SYCLLoopCoalesceNLevels, SYCLLoopPipeliningDisable, SYCLLoopPipeliningEnable, SYCLMaxConcurrencyNThreads, SYCLMaxInterleavingNInvocations, SYCLMaxReinvocationDelayNCycles, SYCLNofusionEnable, SYCLSpeculatedIterationsNIterations, UnrollAndJamCount, UnrollAndJamEnable, UnrollCount, UnrollEnable, Unspecified, VectorizeEnable, VectorizePredicateEnable, VectorizeScalable, and VectorizeWidth.
llvm::SmallVector<SYCLIVDepInfo, 4> clang::CodeGen::LoopAttributes::ArraySYCLIVDepInfo |
Definition at line 109 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
unsigned clang::CodeGen::LoopAttributes::CodeAlign |
Value for 'llvm.loop.align' metadata.
Definition at line 161 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
LVEnableState clang::CodeGen::LoopAttributes::DistributeEnable |
Value for llvm.loop.distribute.enable metadata.
Definition at line 149 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
std::optional<SYCLIVDepInfo> clang::CodeGen::LoopAttributes::GlobalSYCLIVDepInfo |
Definition at line 106 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
unsigned clang::CodeGen::LoopAttributes::InterleaveCount |
Value for llvm.loop.interleave.count metadata.
Definition at line 66 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
bool clang::CodeGen::LoopAttributes::IsParallel |
Generate llvm.loop.parallel metadata for loads and stores.
Definition at line 42 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
bool clang::CodeGen::LoopAttributes::MustProgress |
Value for whether the loop is required to make progress.
Definition at line 164 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
bool clang::CodeGen::LoopAttributes::PipelineDisabled |
Value for llvm.loop.pipeline.disable metadata.
Definition at line 152 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
unsigned clang::CodeGen::LoopAttributes::PipelineInitiationInterval |
Value for llvm.loop.pipeline.iicount metadata.
Definition at line 155 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
unsigned clang::CodeGen::LoopAttributes::SYCLIInterval |
Value for llvm.loop.ii.count metadata.
Definition at line 112 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
llvm::SmallVector<std::pair<const char *, unsigned int>, 2> clang::CodeGen::LoopAttributes::SYCLIntelFPGAVariantCount |
Value for count variant (min/max/avg) and count metadata.
Definition at line 119 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
bool clang::CodeGen::LoopAttributes::SYCLLoopCoalesceEnable |
Flag for llvm.loop.coalesce metadata.
Definition at line 122 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
unsigned clang::CodeGen::LoopAttributes::SYCLLoopCoalesceNLevels |
Value for llvm.loop.coalesce.count metadata.
Definition at line 125 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
bool clang::CodeGen::LoopAttributes::SYCLLoopPipeliningDisable |
Flag for llvm.loop.intel.pipelining.enable, i32 0 metadata.
Definition at line 128 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
bool clang::CodeGen::LoopAttributes::SYCLLoopPipeliningEnable |
Flag for llvm.loop.intel.pipelining.enable, i32 1 metadata.
Definition at line 140 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
std::optional<unsigned> clang::CodeGen::LoopAttributes::SYCLMaxConcurrencyNThreads |
Value for llvm.loop.max_concurrency.count metadata.
Definition at line 115 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
std::optional<unsigned> clang::CodeGen::LoopAttributes::SYCLMaxInterleavingNInvocations |
Value for llvm.loop.max_interleaving.count metadata.
Definition at line 131 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
std::optional<unsigned> clang::CodeGen::LoopAttributes::SYCLMaxReinvocationDelayNCycles |
Definition at line 137 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
bool clang::CodeGen::LoopAttributes::SYCLNofusionEnable |
Flag for llvm.loop.fusion.disable metatdata.
Definition at line 158 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
std::optional<unsigned> clang::CodeGen::LoopAttributes::SYCLSpeculatedIterationsNIterations |
Value for llvm.loop.intel.speculated.iterations.count metadata.
Definition at line 134 of file CGLoopInfo.h.
Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().
unsigned clang::CodeGen::LoopAttributes::UnrollAndJamCount |
llvm.unroll.
Definition at line 146 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
LVEnableState clang::CodeGen::LoopAttributes::UnrollAndJamEnable |
Value for llvm.loop.unroll_and_jam.* metadata (enable, disable, or full).
Definition at line 54 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
unsigned clang::CodeGen::LoopAttributes::UnrollCount |
llvm.unroll.
Definition at line 143 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
LVEnableState clang::CodeGen::LoopAttributes::UnrollEnable |
Value for llvm.loop.unroll.* metadata (enable, disable, or full).
Definition at line 51 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
LVEnableState clang::CodeGen::LoopAttributes::VectorizeEnable |
Value for llvm.loop.vectorize.enable metadata.
Definition at line 48 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
LVEnableState clang::CodeGen::LoopAttributes::VectorizePredicateEnable |
Value for llvm.loop.vectorize.predicate metadata.
Definition at line 57 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
LVEnableState clang::CodeGen::LoopAttributes::VectorizeScalable |
Definition at line 63 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().
unsigned clang::CodeGen::LoopAttributes::VectorizeWidth |
Value for llvm.loop.vectorize.width metadata.
Definition at line 60 of file CGLoopInfo.h.
Referenced by clear(), clang::CodeGen::LoopInfo::finish(), and clang::CodeGen::LoopInfo::LoopInfo().