clang 18.0.0git
|
A stack of loop information corresponding to loop nesting levels. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGLoopInfo.h"
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. | |
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 200 of file CGLoopInfo.h.
|
inline |
Definition at line 205 of file CGLoopInfo.h.
|
inline |
Return the top loop id metadata.
Definition at line 223 of file CGLoopInfo.h.
References clang::CodeGen::LoopInfo::getLoopID().
|
inline |
Return true if the top loop is parallel.
Definition at line 226 of file CGLoopInfo.h.
References clang::CodeGen::LoopInfo::getAttributes(), and clang::CodeGen::LoopAttributes::IsParallel.
void LoopInfoStack::InsertHelper | ( | llvm::Instruction * | I | ) | const |
Function called by the CodeGenFunction when an instruction is created.
Definition at line 829 of file CGLoopInfo.cpp.
References clang::CodeGen::LoopInfo::getHeader(), and clang::CodeGen::LoopInfo::getLoopID().
void LoopInfoStack::pop | ( | ) |
End the current loop.
Definition at line 823 of file CGLoopInfo.cpp.
void clang::CodeGen::LoopInfoStack::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.
Stage attributes from the Attrs list. The staged attributes are applied to the loop and then cleared.
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.
|
inline |
Set value of code align for the next loop pushed.
Definition at line 289 of file CGLoopInfo.h.
References clang::C, and clang::CodeGen::LoopAttributes::CodeAlign.
Set the next pushed loop as a distribution candidate.
Definition at line 244 of file CGLoopInfo.h.
References clang::CodeGen::LoopAttributes::Disable, clang::CodeGen::LoopAttributes::DistributeEnable, and clang::CodeGen::LoopAttributes::Enable.
|
inline |
Set the interleave count for the next loop pushed.
Definition at line 272 of file CGLoopInfo.h.
References clang::C, and clang::CodeGen::LoopAttributes::InterleaveCount.
|
inline |
Set no progress for the next loop pushed.
Definition at line 292 of file CGLoopInfo.h.
References clang::CodeGen::LoopAttributes::MustProgress, and P.
Set the next pushed loop as parallel.
Definition at line 235 of file CGLoopInfo.h.
References clang::CodeGen::LoopAttributes::IsParallel.
Referenced by emitSimdlenSafelenClause().
|
inline |
Set the pipeline disabled state.
Definition at line 281 of file CGLoopInfo.h.
References clang::CodeGen::LoopAttributes::PipelineDisabled.
|
inline |
Set the pipeline initiation interval.
Definition at line 284 of file CGLoopInfo.h.
References clang::C, and clang::CodeGen::LoopAttributes::PipelineInitiationInterval.
|
inline |
Set the unroll count for the next loop pushed.
Definition at line 278 of file CGLoopInfo.h.
References clang::C, and clang::CodeGen::LoopAttributes::UnrollAndJamCount.
|
inline |
Set the next pushed loop unroll_and_jam state.
Definition at line 260 of file CGLoopInfo.h.
References clang::CodeGen::LoopAttributes::UnrollAndJamEnable.
|
inline |
Set the unroll count for the next loop pushed.
Definition at line 275 of file CGLoopInfo.h.
References clang::C, and clang::CodeGen::LoopAttributes::UnrollCount.
|
inline |
Set the next pushed loop unroll state.
Definition at line 250 of file CGLoopInfo.h.
References clang::CodeGen::LoopAttributes::UnrollEnable.
Set the next pushed loop 'vectorize.enable'.
Definition at line 238 of file CGLoopInfo.h.
References clang::CodeGen::LoopAttributes::Disable, clang::CodeGen::LoopAttributes::Enable, and clang::CodeGen::LoopAttributes::VectorizeEnable.
Referenced by emitCommonSimdLoop().
|
inline |
Set the next pushed vectorize predicate state.
Definition at line 255 of file CGLoopInfo.h.
References clang::CodeGen::LoopAttributes::VectorizePredicateEnable.
|
inline |
Definition at line 267 of file CGLoopInfo.h.
References clang::CodeGen::LoopAttributes::VectorizeScalable.
|
inline |
Set the vectorize width for the next loop pushed.
Definition at line 265 of file CGLoopInfo.h.
References clang::CodeGen::LoopAttributes::VectorizeWidth.
Referenced by emitSimdlenSafelenClause().