clang  3.9.0
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 <CGLoopInfo.h>

Collaboration diagram for clang::CodeGen::LoopAttributes:
[legend]

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...
 
unsigned VectorizeWidth
 Value for llvm.loop.vectorize.width metadata. More...
 
unsigned InterleaveCount
 Value for llvm.loop.interleave.count metadata. More...
 
unsigned UnrollCount
 llvm.unroll. More...
 
LVEnableState DistributeEnable
 Value for llvm.loop.distribute.enable metadata. More...
 

Detailed Description

Attributes that may be specified on loops.

Definition at line 37 of file CGLoopInfo.h.

Member Enumeration Documentation

State of loop vectorization or unrolling.

Enumerator
Unspecified 
Enable 
Disable 
Full 

Definition at line 45 of file CGLoopInfo.h.

Constructor & Destructor Documentation

LoopAttributes::LoopAttributes ( bool  IsParallel = false)
explicit

Definition at line 102 of file CGLoopInfo.cpp.

References clang::Unspecified.

Member Function Documentation

void LoopAttributes::clear ( )

Member Data Documentation

LVEnableState clang::CodeGen::LoopAttributes::DistributeEnable

Value for llvm.loop.distribute.enable metadata.

Definition at line 63 of file CGLoopInfo.h.

Referenced by createMetadata(), and clang::CodeGen::LoopInfoStack::setDistributeState().

unsigned clang::CodeGen::LoopAttributes::InterleaveCount

Value for llvm.loop.interleave.count metadata.

Definition at line 57 of file CGLoopInfo.h.

Referenced by clear(), createMetadata(), and clang::CodeGen::LoopInfoStack::setInterleaveCount().

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(), createMetadata(), clang::CodeGen::LoopInfoStack::getCurLoopParallel(), clang::CodeGen::LoopInfoStack::InsertHelper(), and clang::CodeGen::LoopInfoStack::setParallel().

unsigned clang::CodeGen::LoopAttributes::UnrollCount

llvm.unroll.

Definition at line 60 of file CGLoopInfo.h.

Referenced by clear(), createMetadata(), and clang::CodeGen::LoopInfoStack::setUnrollCount().

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(), createMetadata(), and clang::CodeGen::LoopInfoStack::setUnrollState().

LVEnableState clang::CodeGen::LoopAttributes::VectorizeEnable

Value for llvm.loop.vectorize.enable metadata.

Definition at line 48 of file CGLoopInfo.h.

Referenced by clear(), createMetadata(), and clang::CodeGen::LoopInfoStack::setVectorizeEnable().

unsigned clang::CodeGen::LoopAttributes::VectorizeWidth

Value for llvm.loop.vectorize.width metadata.

Definition at line 54 of file CGLoopInfo.h.

Referenced by clear(), createMetadata(), and clang::CodeGen::LoopInfoStack::setVectorizeWidth().


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