clang  19.0.0git
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
clang::CodeGen::LoopAttributes Struct Reference

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< SYCLIVDepInfoGlobalSYCLIVDepInfo
 
llvm::SmallVector< SYCLIVDepInfo, 4 > ArraySYCLIVDepInfo
 
unsigned SYCLIInterval
 Value for llvm.loop.ii.count metadata. More...
 
std::optional< unsignedSYCLMaxConcurrencyNThreads
 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< unsignedSYCLMaxInterleavingNInvocations
 Value for llvm.loop.max_interleaving.count metadata. More...
 
std::optional< unsignedSYCLSpeculatedIterationsNIterations
 Value for llvm.loop.intel.speculated.iterations.count metadata. More...
 
std::optional< unsignedSYCLMaxReinvocationDelayNCycles
 
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...
 

Detailed Description

Attributes that may be specified on loops.

Definition at line 37 of file CGLoopInfo.h.

Member Enumeration Documentation

◆ LVEnableState

State of loop vectorization or unrolling.

Enumerator
Unspecified 
Enable 
Disable 
Full 

Definition at line 45 of file CGLoopInfo.h.

Constructor & Destructor Documentation

◆ LoopAttributes()

LoopAttributes::LoopAttributes ( bool  IsParallel = false)
explicit

Definition at line 647 of file CGLoopInfo.cpp.

References clang::Unspecified.

Member Function Documentation

◆ clear()

void LoopAttributes::clear ( )

Member Data Documentation

◆ ArraySYCLIVDepInfo

llvm::SmallVector<SYCLIVDepInfo, 4> clang::CodeGen::LoopAttributes::ArraySYCLIVDepInfo

Definition at line 109 of file CGLoopInfo.h.

Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().

◆ CodeAlign

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().

◆ DistributeEnable

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().

◆ GlobalSYCLIVDepInfo

std::optional<SYCLIVDepInfo> clang::CodeGen::LoopAttributes::GlobalSYCLIVDepInfo

Definition at line 106 of file CGLoopInfo.h.

Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().

◆ InterleaveCount

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().

◆ IsParallel

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().

◆ MustProgress

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().

◆ PipelineDisabled

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().

◆ PipelineInitiationInterval

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().

◆ SYCLIInterval

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().

◆ SYCLIntelFPGAVariantCount

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().

◆ SYCLLoopCoalesceEnable

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().

◆ SYCLLoopCoalesceNLevels

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().

◆ SYCLLoopPipeliningDisable

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().

◆ SYCLLoopPipeliningEnable

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().

◆ SYCLMaxConcurrencyNThreads

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().

◆ SYCLMaxInterleavingNInvocations

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().

◆ SYCLMaxReinvocationDelayNCycles

std::optional<unsigned> clang::CodeGen::LoopAttributes::SYCLMaxReinvocationDelayNCycles

Definition at line 137 of file CGLoopInfo.h.

Referenced by clear(), and clang::CodeGen::LoopInfo::LoopInfo().

◆ SYCLNofusionEnable

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().

◆ SYCLSpeculatedIterationsNIterations

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().

◆ UnrollAndJamCount

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().

◆ UnrollAndJamEnable

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().

◆ UnrollCount

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().

◆ UnrollEnable

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().

◆ VectorizeEnable

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().

◆ VectorizePredicateEnable

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().

◆ VectorizeScalable

LVEnableState clang::CodeGen::LoopAttributes::VectorizeScalable

◆ VectorizeWidth

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().


The documentation for this struct was generated from the following files: