clang 24.0.0git
clang::CodeGenUtils::LoopAttributes Struct Reference

Attributes that may be specified on loops. More...

#include "clang/CodeGenUtils/LoopAttributes.h"

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.
LVEnableState VectorizeEnable
 Value for llvm.loop.vectorize.enable metadata.
LVEnableState UnrollEnable
 Value for llvm.loop.unroll.* metadata (enable, disable, or full).
LVEnableState UnrollAndJamEnable
 Value for llvm.loop.unroll_and_jam.* metadata (enable, disable, or full).
LVEnableState VectorizePredicateEnable
 Value for llvm.loop.vectorize.predicate metadata.
unsigned VectorizeWidth
 Value for llvm.loop.vectorize.width metadata.
LVEnableState VectorizeScalable
unsigned InterleaveCount
 Value for llvm.loop.interleave.count metadata.
unsigned UnrollCount
 llvm.unroll.
unsigned UnrollAndJamCount
 llvm.unroll.
LVEnableState DistributeEnable
 Value for llvm.loop.distribute.enable metadata.
bool PipelineDisabled
 Value for llvm.loop.pipeline.disable metadata.
bool LICMDisabled
 Value for llvm.licm.disable metadata.
unsigned PipelineInitiationInterval
 Value for llvm.loop.pipeline.iicount metadata.
unsigned CodeAlign
 Value for 'llvm.loop.align' metadata.
bool MustProgress
 Value for whether the loop is required to make progress.

Detailed Description

Attributes that may be specified on loops.

Definition at line 31 of file LoopAttributes.h.

Member Enumeration Documentation

◆ LVEnableState

State of loop vectorization or unrolling.

Enumerator
Unspecified 
Enable 
Disable 
Full 

Definition at line 39 of file LoopAttributes.h.

Constructor & Destructor Documentation

◆ LoopAttributes()

Member Function Documentation

◆ clear()

Member Data Documentation

◆ CodeAlign

unsigned clang::CodeGenUtils::LoopAttributes::CodeAlign

Value for 'llvm.loop.align' metadata.

Definition at line 81 of file LoopAttributes.h.

Referenced by clear(), clang::CIRGen::CIRGenFunction::getLoopHints(), LoopAttributes(), and clang::CodeGenUtils::updateLoopAttributes().

◆ DistributeEnable

LVEnableState clang::CodeGenUtils::LoopAttributes::DistributeEnable

◆ InterleaveCount

unsigned clang::CodeGenUtils::LoopAttributes::InterleaveCount

◆ IsParallel

bool clang::CodeGenUtils::LoopAttributes::IsParallel

◆ LICMDisabled

bool clang::CodeGenUtils::LoopAttributes::LICMDisabled

◆ MustProgress

bool clang::CodeGenUtils::LoopAttributes::MustProgress

Value for whether the loop is required to make progress.

Definition at line 84 of file LoopAttributes.h.

Referenced by clear(), clang::CIRGen::CIRGenFunction::getLoopHints(), LoopAttributes(), and clang::CodeGenUtils::updateLoopAttributes().

◆ PipelineDisabled

bool clang::CodeGenUtils::LoopAttributes::PipelineDisabled

◆ PipelineInitiationInterval

unsigned clang::CodeGenUtils::LoopAttributes::PipelineInitiationInterval

◆ UnrollAndJamCount

unsigned clang::CodeGenUtils::LoopAttributes::UnrollAndJamCount

◆ UnrollAndJamEnable

LVEnableState clang::CodeGenUtils::LoopAttributes::UnrollAndJamEnable

Value for llvm.loop.unroll_and_jam.* metadata (enable, disable, or full).

Definition at line 48 of file LoopAttributes.h.

Referenced by clear(), clang::CodeGen::LoopInfo::finish(), clang::CIRGen::CIRGenFunction::getLoopHints(), LoopAttributes(), and clang::CodeGenUtils::updateLoopAttributes().

◆ UnrollCount

unsigned clang::CodeGenUtils::LoopAttributes::UnrollCount

◆ UnrollEnable

LVEnableState clang::CodeGenUtils::LoopAttributes::UnrollEnable

Value for llvm.loop.unroll.* metadata (enable, disable, or full).

Definition at line 45 of file LoopAttributes.h.

Referenced by clear(), clang::CodeGen::LoopInfo::finish(), clang::CIRGen::CIRGenFunction::getLoopHints(), LoopAttributes(), and clang::CodeGenUtils::updateLoopAttributes().

◆ VectorizeEnable

LVEnableState clang::CodeGenUtils::LoopAttributes::VectorizeEnable

◆ VectorizePredicateEnable

LVEnableState clang::CodeGenUtils::LoopAttributes::VectorizePredicateEnable

◆ VectorizeScalable

◆ VectorizeWidth

unsigned clang::CodeGenUtils::LoopAttributes::VectorizeWidth

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