clang
19.0.0git
|
A stack of loop information corresponding to loop nesting levels. More...
#include "/home/runner/work/llvm/llvm/repo/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. More... | |
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. More... | |
void | pop () |
End the current loop. More... | |
llvm::MDNode * | getCurLoopID () const |
Return the top loop id metadata. More... | |
bool | getCurLoopParallel () const |
Return true if the top loop is parallel. More... | |
void | InsertHelper (llvm::Instruction *I) const |
Function called by the CodeGenFunction when an instruction is created. More... | |
void | setParallel (bool Enable=true) |
Set the next pushed loop as parallel. More... | |
void | setVectorizeEnable (bool Enable=true) |
Set the next pushed loop 'vectorize.enable'. More... | |
void | setDistributeState (bool Enable=true) |
Set the next pushed loop as a distribution candidate. More... | |
void | setUnrollState (const LoopAttributes::LVEnableState &State) |
Set the next pushed loop unroll state. More... | |
void | setVectorizePredicateState (const LoopAttributes::LVEnableState &State) |
Set the next pushed vectorize predicate state. More... | |
void | setUnrollAndJamState (const LoopAttributes::LVEnableState &State) |
Set the next pushed loop unroll_and_jam state. More... | |
void | setVectorizeWidth (unsigned W) |
Set the vectorize width for the next loop pushed. More... | |
void | setVectorizeScalable (const LoopAttributes::LVEnableState &State) |
void | setInterleaveCount (unsigned C) |
Set the interleave count for the next loop pushed. More... | |
void | addSYCLIVDepInfo (llvm::LLVMContext &Ctx, unsigned SafeLen, const ValueDecl *Array) |
Add a safelen value for the next loop pushed. More... | |
void | addIVDepMetadata (const ValueDecl *Array, llvm::Instruction *GEP) |
void | setSYCLIInterval (unsigned C) |
Set value of an initiation interval for the next loop pushed. More... | |
void | setSYCLMaxConcurrencyNThreads (unsigned C) |
Set value of max_concurrency for the next loop pushed. More... | |
void | setSYCLLoopCoalesceEnable () |
Set flag of loop_coalesce for the next loop pushed. More... | |
void | setSYCLLoopCoalesceNLevels (unsigned C) |
Set value of coalesced levels for the next loop pushed. More... | |
void | setSYCLLoopPipeliningDisable () |
Set flag of disable_loop_pipelining for the next loop pushed. More... | |
void | setSYCLMaxInterleavingNInvocations (unsigned C) |
Set value of max interleaved invocations for the next loop pushed. More... | |
void | setSYCLSpeculatedIterationsNIterations (unsigned C) |
Set value of speculated iterations for the next loop pushed. More... | |
void | setSYCLIntelFPGAVariantCount (const char *Var, unsigned int Count) |
Set value of variant and loop count for the next loop pushed. More... | |
void | setUnrollCount (unsigned C) |
Set the unroll count for the next loop pushed. More... | |
void | setUnrollAndJamCount (unsigned C) |
Set the unroll count for the next loop pushed. More... | |
void | setPipelineDisabled (bool S) |
Set the pipeline disabled state. More... | |
void | setPipelineInitiationInterval (unsigned C) |
Set the pipeline initiation interval. More... | |
void | setSYCLNofusionEnable () |
Set flag of nofusion for the next loop pushed. More... | |
void | setCodeAlign (unsigned C) |
Set value of code align for the next loop pushed. More... | |
void | setMustProgress (bool P) |
Set no progress for the next loop pushed. More... | |
void | setSYCLMaxReinvocationDelayNCycles (unsigned C) |
Set value of max reinvocation delay for the next loop pushed. More... | |
void | setSYCLLoopPipeliningEnable () |
Set flag of enable_loop_pipelining for the next loop pushed. More... | |
bool | hasInfo () const |
Returns true if there is LoopInfo on the stack. More... | |
const LoopInfo & | getInfo () const |
Return the LoopInfo for the current loop. More... | |
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 287 of file CGLoopInfo.h.
|
inline |
Definition at line 292 of file CGLoopInfo.h.
void LoopInfoStack::addIVDepMetadata | ( | const ValueDecl * | Array, |
llvm::Instruction * | GEP | ||
) |
Definition at line 1227 of file CGLoopInfo.cpp.
References clang::CodeGen::LoopInfo::addIVDepMetadata(), Array, getInfo(), and hasInfo().
Referenced by AddIVDepMetadata().
void LoopInfoStack::addSYCLIVDepInfo | ( | llvm::LLVMContext & | Ctx, |
unsigned | SafeLen, | ||
const ValueDecl * | Array | ||
) |
Add a safelen value for the next loop pushed.
Definition at line 418 of file CGLoopInfo.cpp.
|
inline |
|
inline |
Return true if the top loop is parallel.
Definition at line 313 of file CGLoopInfo.h.
References getInfo().
|
inline |
Return the LoopInfo for the current loop.
HasInfo should be called first to ensure LoopInfo is present.
Definition at line 442 of file CGLoopInfo.h.
Referenced by addIVDepMetadata(), and InsertHelper().
|
inline |
Returns true if there is LoopInfo on the stack.
Definition at line 439 of file CGLoopInfo.h.
Referenced by addIVDepMetadata(), and InsertHelper().
void LoopInfoStack::InsertHelper | ( | llvm::Instruction * | I | ) | const |
Function called by the CodeGenFunction when an instruction is created.
Definition at line 1156 of file CGLoopInfo.cpp.
References clang::CodeGen::LoopInfo::getHeader(), getInfo(), clang::CodeGen::LoopInfo::getLoopID(), and hasInfo().
void LoopInfoStack::pop | ( | ) |
End the current loop.
Definition at line 1150 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 423 of file CGLoopInfo.h.
Set the next pushed loop as a distribution candidate.
Definition at line 331 of file CGLoopInfo.h.
|
inline |
Set the interleave count for the next loop pushed.
Definition at line 359 of file CGLoopInfo.h.
|
inline |
Set no progress for the next loop pushed.
Definition at line 426 of file CGLoopInfo.h.
References P.
Set the next pushed loop as parallel.
Definition at line 322 of file CGLoopInfo.h.
Referenced by emitSimdlenSafelenClause().
|
inline |
Set the pipeline disabled state.
Definition at line 412 of file CGLoopInfo.h.
|
inline |
Set the pipeline initiation interval.
Definition at line 415 of file CGLoopInfo.h.
|
inline |
Set value of an initiation interval for the next loop pushed.
Definition at line 368 of file CGLoopInfo.h.
|
inline |
Set value of variant and loop count for the next loop pushed.
Definition at line 401 of file CGLoopInfo.h.
|
inline |
Set flag of loop_coalesce for the next loop pushed.
Definition at line 376 of file CGLoopInfo.h.
|
inline |
Set value of coalesced levels for the next loop pushed.
Definition at line 381 of file CGLoopInfo.h.
|
inline |
Set flag of disable_loop_pipelining for the next loop pushed.
Definition at line 386 of file CGLoopInfo.h.
|
inline |
Set flag of enable_loop_pipelining for the next loop pushed.
Definition at line 434 of file CGLoopInfo.h.
|
inline |
Set value of max_concurrency for the next loop pushed.
Definition at line 371 of file CGLoopInfo.h.
|
inline |
Set value of max interleaved invocations for the next loop pushed.
Definition at line 391 of file CGLoopInfo.h.
|
inline |
Set value of max reinvocation delay for the next loop pushed.
Definition at line 429 of file CGLoopInfo.h.
|
inline |
Set flag of nofusion for the next loop pushed.
Definition at line 420 of file CGLoopInfo.h.
|
inline |
Set value of speculated iterations for the next loop pushed.
Definition at line 396 of file CGLoopInfo.h.
|
inline |
Set the unroll count for the next loop pushed.
Definition at line 409 of file CGLoopInfo.h.
|
inline |
Set the next pushed loop unroll_and_jam state.
Definition at line 347 of file CGLoopInfo.h.
References State.
|
inline |
Set the unroll count for the next loop pushed.
Definition at line 406 of file CGLoopInfo.h.
|
inline |
Set the next pushed loop unroll state.
Definition at line 337 of file CGLoopInfo.h.
References State.
Set the next pushed loop 'vectorize.enable'.
Definition at line 325 of file CGLoopInfo.h.
|
inline |
Set the next pushed vectorize predicate state.
Definition at line 342 of file CGLoopInfo.h.
References State.
|
inline |
Definition at line 354 of file CGLoopInfo.h.
References State.
|
inline |
Set the vectorize width for the next loop pushed.
Definition at line 352 of file CGLoopInfo.h.
Referenced by emitSimdlenSafelenClause().