clang: clang::CodeGen::LoopInfoStack Class Reference (original) (raw)

A stack of loop information corresponding to loop nesting levels. More...

#include "[/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGLoopInfo.h](CGLoopInfo%5F8h%5Fsource.html)"

Public Member Functions
LoopInfoStack ()
void push (llvm::BasicBlock *Header, const llvm::DebugLoc &StartLoc, const llvm::DebugLoc &EndLoc)
Begin a new structured loop.
void push (llvm::BasicBlock *Header, clang::ASTContext &Ctx, const clang::CodeGenOptions &CGOpts, llvm::ArrayRef< const Attr * > Attrs, const llvm::DebugLoc &StartLoc, const llvm::DebugLoc &EndLoc, bool MustProgress=false)
Begin a new structured loop.
void pop ()
End the current loop.
llvm::MDNode * getCurLoopID () const
Return the top loop id metadata.
bool getCurLoopParallel () const
Return true if the top loop is parallel.
void InsertHelper (llvm::Instruction *I) const
Function called by the CodeGenFunction when an instruction is created.
void setParallel (bool Enable=true)
Set the next pushed loop as parallel.
void setVectorizeEnable (bool Enable=true)
Set the next pushed loop 'vectorize.enable'.
void setDistributeState (bool Enable=true)
Set the next pushed loop as a distribution candidate.
void setUnrollState (const LoopAttributes::LVEnableState &State)
Set the next pushed loop unroll state.
void setVectorizePredicateState (const LoopAttributes::LVEnableState &State)
Set the next pushed vectorize predicate state.
void setUnrollAndJamState (const LoopAttributes::LVEnableState &State)
Set the next pushed loop unroll_and_jam state.
void setVectorizeWidth (unsigned W)
Set the vectorize width for the next loop pushed.
void setVectorizeScalable (const LoopAttributes::LVEnableState &State)
void setInterleaveCount (unsigned C)
Set the interleave count for the next loop pushed.
void setUnrollCount (unsigned C)
Set the unroll count for the next loop pushed.
void setUnrollAndJamCount (unsigned C)
Set the unroll count for the next loop pushed.
void setPipelineDisabled (bool S)
Set the pipeline disabled state.
void setPipelineInitiationInterval (unsigned C)
Set the pipeline initiation interval.
void setCodeAlign (unsigned C)
Set value of code align for the next loop pushed.
void setMustProgress (bool P)
Set no progress for the next loop pushed.
bool hasInfo () const
Returns true if there is LoopInfo on the stack.
const LoopInfo & getInfo () const
Return the LoopInfo for the current loop.

A stack of loop information corresponding to loop nesting levels.

This stack can be used to prepare attributes which are applied when a loop is emitted.

Definition at line 207 of file CGLoopInfo.h.

clang::CodeGen::LoopInfoStack::LoopInfoStack ( ) inline

getCurLoopID()

llvm::MDNode * clang::CodeGen::LoopInfoStack::getCurLoopID ( ) const inline

getCurLoopParallel()

bool clang::CodeGen::LoopInfoStack::getCurLoopParallel ( ) const inline

getInfo()

const LoopInfo & clang::CodeGen::LoopInfoStack::getInfo ( ) const inline

hasInfo()

bool clang::CodeGen::LoopInfoStack::hasInfo ( ) const inline

InsertHelper()

void LoopInfoStack::InsertHelper ( llvm::Instruction * I ) const

pop()

void LoopInfoStack::pop ( )

push() [1/2]

Begin a new structured loop.

Stage attributes from the Attrs list. The staged attributes are applied to the loop and then cleared.

push() [2/2]

void clang::CodeGen::LoopInfoStack::push ( llvm::BasicBlock * Header,
const llvm::DebugLoc & StartLoc,
const llvm::DebugLoc & EndLoc )

Begin a new structured loop.

The set of staged attributes will be applied to the loop and then cleared.

setCodeAlign()

void clang::CodeGen::LoopInfoStack::setCodeAlign ( unsigned C) inline

Set value of code align for the next loop pushed.

Definition at line 296 of file CGLoopInfo.h.

References clang::C.

setDistributeState()

void clang::CodeGen::LoopInfoStack::setDistributeState ( bool Enable = true) inline

setInterleaveCount()

void clang::CodeGen::LoopInfoStack::setInterleaveCount ( unsigned C) inline

Set the interleave count for the next loop pushed.

Definition at line 279 of file CGLoopInfo.h.

References clang::C.

setMustProgress()

void clang::CodeGen::LoopInfoStack::setMustProgress ( bool P) inline

Set no progress for the next loop pushed.

Definition at line 299 of file CGLoopInfo.h.

setParallel()

void clang::CodeGen::LoopInfoStack::setParallel ( bool Enable = true) inline

setPipelineDisabled()

void clang::CodeGen::LoopInfoStack::setPipelineDisabled ( bool S) inline

Set the pipeline disabled state.

Definition at line 288 of file CGLoopInfo.h.

setPipelineInitiationInterval()

void clang::CodeGen::LoopInfoStack::setPipelineInitiationInterval ( unsigned C) inline

setUnrollAndJamCount()

void clang::CodeGen::LoopInfoStack::setUnrollAndJamCount ( unsigned C) inline

setUnrollAndJamState()

Set the next pushed loop unroll_and_jam state.

Definition at line 267 of file CGLoopInfo.h.

setUnrollCount()

void clang::CodeGen::LoopInfoStack::setUnrollCount ( unsigned C) inline

setUnrollState()

Set the next pushed loop unroll state.

Definition at line 257 of file CGLoopInfo.h.

setVectorizeEnable()

void clang::CodeGen::LoopInfoStack::setVectorizeEnable ( bool Enable = true) inline

setVectorizePredicateState()

Set the next pushed vectorize predicate state.

Definition at line 262 of file CGLoopInfo.h.

setVectorizeScalable()

setVectorizeWidth()

void clang::CodeGen::LoopInfoStack::setVectorizeWidth ( unsigned W) inline

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