Showing content from https://clang.llvm.org/doxygen/classclang_1_1OMPTargetTeamsDistributeParallelForDirective.html below:
clang: clang::OMPTargetTeamsDistributeParallelForDirective Class Reference
This represents '#pragma omp target teams distribute parallel for' combined directive. More...
#include "clang/AST/StmtOpenMP.h"
Expr * getTaskReductionRefExpr () Returns special task reduction reference expression.
const Expr * getTaskReductionRefExpr () const bool hasCancel () const Return true if current directive has inner cancel directive.
Expr * getIterationVariable () const Expr * getLastIteration () const Expr * getCalcLastIteration () const Expr * getPreCond () const Expr * getCond () const Expr * getInit () const Expr * getInc () const const Stmt * getPreInits () const Stmt * getPreInits () Expr * getIsLastIterVariable () const Expr * getLowerBoundVariable () const Expr * getUpperBoundVariable () const Expr * getStrideVariable () const Expr * getEnsureUpperBound () const Expr * getNextLowerBound () const Expr * getNextUpperBound () const Expr * getNumIterations () const Expr * getPrevLowerBoundVariable () const Expr * getPrevUpperBoundVariable () const Expr * getDistInc () const Expr * getPrevEnsureUpperBound () const Expr * getCombinedLowerBoundVariable () const Expr * getCombinedUpperBoundVariable () const Expr * getCombinedEnsureUpperBound () const Expr * getCombinedInit () const Expr * getCombinedCond () const Expr * getCombinedNextLowerBound () const Expr * getCombinedNextUpperBound () const Expr * getCombinedDistCond () const Expr * getCombinedParForInDistCond () const Stmt * getBody () const Stmt * getBody () const ArrayRef< Expr * > counters () ArrayRef< Expr * > counters () const ArrayRef< Expr * > private_counters () ArrayRef< Expr * > private_counters () const ArrayRef< Expr * > inits () ArrayRef< Expr * > inits () const ArrayRef< Expr * > updates () ArrayRef< Expr * > updates () const ArrayRef< Expr * > finals () ArrayRef< Expr * > finals () const ArrayRef< Expr * > dependent_counters () ArrayRef< Expr * > dependent_counters () const ArrayRef< Expr * > dependent_inits () ArrayRef< Expr * > dependent_inits () const ArrayRef< Expr * > finals_conditions () ArrayRef< Expr * > finals_conditions () const unsigned getLoopsNumber () const Get number of collapsed loops.
template<typename SpecificClause > llvm::iterator_range< specific_clause_iterator< SpecificClause > > getClausesOfKind () const template<typename SpecificClause > const SpecificClause * getSingleClause () const template<typename SpecificClause > bool hasClausesOfKind () const Returns true if the current directive has one or more clauses of a specific kind.
SourceLocation getBeginLoc () const Returns starting location of directive kind.
SourceLocation getEndLoc () const Returns ending location of directive.
void setLocStart (SourceLocation Loc) Set starting location of directive kind.
void setLocEnd (SourceLocation Loc) Set ending location of directive.
unsigned getNumClauses () const Get number of clauses.
OMPClause * getClause (unsigned I) const Returns specified clause.
bool hasAssociatedStmt () const Returns true if directive has associated statement.
const Stmt * getAssociatedStmt () const Returns statement associated with the directive.
Stmt * getAssociatedStmt () const CapturedStmt * getCapturedStmt (OpenMPDirectiveKind RegionKind) const Returns the captured statement associated with the component region within the (combined) directive.
CapturedStmt * getInnermostCapturedStmt () Get innermost captured statement for the construct.
const CapturedStmt * getInnermostCapturedStmt () const OpenMPDirectiveKind getDirectiveKind () const child_range children () const_child_range children () const ArrayRef< OMPClause * > clauses () const bool isStandaloneDirective () const Returns whether or not this is a Standalone directive.
const Stmt * getStructuredBlock () const Returns the AST node representing OpenMP structured-block of this OpenMP executable directive, Prerequisite: Executable Directive must not be Standalone directive.
Stmt * getStructuredBlock () const Stmt * getRawStmt () const Stmt * getRawStmt () void * operator new (size_t bytes, const ASTContext &C, unsigned alignment=8) void * operator new (size_t bytes, const ASTContext *C, unsigned alignment=8) void * operator new (size_t bytes, void *mem) noexcept void operator delete (void *, const ASTContext &, unsigned) noexcept void operator delete (void *, const ASTContext *, unsigned) noexcept void operator delete (void *, size_t) noexcept void operator delete (void *, void *) noexcept Stmt ()=delete Stmt (const Stmt &)=delete Stmt (Stmt &&)=delete Stmt & operator= (const Stmt &)=delete Stmt & operator= (Stmt &&)=delete Stmt (StmtClass SC) StmtClass getStmtClass () const const char * getStmtClassName () const SourceRange getSourceRange () const LLVM_READONLY SourceLocation tokens are not useful in isolation - they are low level value objects created/interpreted by SourceManager.
SourceLocation getBeginLoc () const LLVM_READONLY SourceLocation getEndLoc () const LLVM_READONLY void dump () const Dumps the specified AST fragment and all subtrees to llvm::errs()
.
void dump (raw_ostream &OS, const ASTContext &Context) const int64_t getID (const ASTContext &Context) const void dumpColor () const dumpColor - same as dump(), but forces color highlighting.
void dumpPretty (const ASTContext &Context) const dumpPretty/printPretty - These two methods do a "pretty print" of the AST back to its original source language syntax.
void printPretty (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0, StringRef NewlineSymbol="\n", const ASTContext *Context=nullptr) const void printPrettyControlled (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0, StringRef NewlineSymbol="\n", const ASTContext *Context=nullptr) const void printJson (raw_ostream &Out, PrinterHelper *Helper, const PrintingPolicy &Policy, bool AddQuotes) const Pretty-prints in JSON format.
void viewAST () const viewAST - Visualize an AST rooted at this Stmt* using GraphViz.
Stmt * IgnoreContainers (bool IgnoreCaptured=false) Skip no-op (attributed, compound) container stmts and skip captured stmt at the top, if IgnoreCaptured is true.
const Stmt * IgnoreContainers (bool IgnoreCaptured=false) const const Stmt * stripLabelLikeStatements () const Strip off all label-like statements.
Stmt * stripLabelLikeStatements () child_range children () const_child_range children () const child_iterator child_begin () child_iterator child_end () const_child_iterator child_begin () const const_child_iterator child_end () const void Profile (llvm::FoldingSetNodeID &ID, const ASTContext &Context, bool Canonical, bool ProfileLambdaExpr=false) const Produce a unique representation of the given statement.
void ProcessODRHash (llvm::FoldingSetNodeID &ID, ODRHash &Hash) const Calculate a unique representation for a statement that is stable across compiler invocations.
static OMPTargetTeamsDistributeParallelForDirective * Create (const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, unsigned CollapsedNum, ArrayRef< OMPClause * > Clauses, Stmt *AssociatedStmt, const HelperExprs &Exprs, Expr *TaskRedRef, bool HasCancel) Creates directive with a list of Clauses.
static OMPTargetTeamsDistributeParallelForDirective * CreateEmpty (const ASTContext &C, unsigned NumClauses, unsigned CollapsedNum, EmptyShell) Creates an empty directive with the place for NumClauses clauses.
static bool classof (const Stmt *T) static bool classof (const Stmt *T) static Stmt * tryToFindNextInnerLoop (Stmt *CurStmt, bool TryImperfectlyNestedLoops) Try to find the next loop sub-statement in the specified statement CurStmt
.
static const Stmt * tryToFindNextInnerLoop (const Stmt *CurStmt, bool TryImperfectlyNestedLoops) static bool doForAllLoops (Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< bool(unsigned, Stmt *)> Callback, llvm::function_ref< void(OMPLoopTransformationDirective *)> OnTransformationCallback) Calls the specified callback function for all the loops in CurStmt
, from the outermost to the innermost.
static bool doForAllLoops (const Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< bool(unsigned, const Stmt *)> Callback, llvm::function_ref< void(const OMPLoopTransformationDirective *)> OnTransformationCallback) static bool doForAllLoops (Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< bool(unsigned, Stmt *)> Callback) Calls the specified callback function for all the loops in CurStmt
, from the outermost to the innermost.
static bool doForAllLoops (const Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< bool(unsigned, const Stmt *)> Callback) static void doForAllLoopsBodies (Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< void(unsigned, Stmt *, Stmt *)> Callback) Calls the specified callback function for all the loop bodies in CurStmt
, from the outermost loop to the innermost.
static void doForAllLoopsBodies (const Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< void(unsigned, const Stmt *, const Stmt *)> Callback) static bool classof (const Stmt *T) static llvm::iterator_range< used_clauses_child_iterator > used_clauses_children (ArrayRef< OMPClause * > Clauses) template<typename SpecificClause > static llvm::iterator_range< specific_clause_iterator< SpecificClause > > getClausesOfKind (ArrayRef< OMPClause * > Clauses) template<typename SpecificClause > static const SpecificClause * getSingleClause (ArrayRef< OMPClause * > Clauses) Gets a single clause of the specified kind associated with the current directive iff there is only one clause of this kind (and assertion is fired if there is more than one clause is associated with the directive).
static bool classof (const Stmt *S) static void addStmtClass (const StmtClass s) static void EnableStatistics () static void PrintStats () static Likelihood getLikelihood (ArrayRef< const Attr * > Attrs) static Likelihood getLikelihood (const Stmt *S) static const Attr * getLikelihoodAttr (const Stmt *S) static Likelihood getLikelihood (const Stmt *Then, const Stmt *Else) static std::tuple< bool, const Attr *, const Attr * > determineLikelihoodConflict (const Stmt *Then, const Stmt *Else) enum StmtClass { NoStmtClass = 0 } enum Likelihood { LH_Unlikely = -1 , LH_None , LH_Likely } The likelihood of a branch being taken. More...
using child_iterator = StmtIterator Child Iterators: All subclasses must implement 'children' to permit easy iteration over the substatements/subexpressions of an AST node.
using const_child_iterator = ConstStmtIterator using child_range = llvm::iterator_range< child_iterator > using const_child_range = llvm::iterator_range< const_child_iterator > enum { NumExprBits = NumStmtBits + 5 + llvm::BitWidth<ExprDependence> } enum { NumCallExprBits = 32 } enum { NumOverloadExprBits = NumExprBits + 1 } template<typename T > using ConstCastIterator = CastIterator< T, const T *const, const Stmt *const > Const iterator for iterating over Stmt * arrays that contain only T *.
using ExprIterator = CastIterator< Expr > using ConstExprIterator = ConstCastIterator< Expr > OMPLoopDirective (StmtClass SC, OpenMPDirectiveKind Kind, SourceLocation StartLoc, SourceLocation EndLoc, unsigned CollapsedNum) Build instance of loop directive of class Kind.
void setIterationVariable (Expr *IV) void setLastIteration (Expr *LI) void setCalcLastIteration (Expr *CLI) void setPreCond (Expr *PC) void setCond (Expr *Cond) void setInit (Expr *Init) void setInc (Expr *Inc) void setPreInits (Stmt *PreInits) void setIsLastIterVariable (Expr *IL) void setLowerBoundVariable (Expr *LB) void setUpperBoundVariable (Expr *UB) void setStrideVariable (Expr *ST) void setEnsureUpperBound (Expr *EUB) void setNextLowerBound (Expr *NLB) void setNextUpperBound (Expr *NUB) void setNumIterations (Expr *NI) void setPrevLowerBoundVariable (Expr *PrevLB) void setPrevUpperBoundVariable (Expr *PrevUB) void setDistInc (Expr *DistInc) void setPrevEnsureUpperBound (Expr *PrevEUB) void setCombinedLowerBoundVariable (Expr *CombLB) void setCombinedUpperBoundVariable (Expr *CombUB) void setCombinedEnsureUpperBound (Expr *CombEUB) void setCombinedInit (Expr *CombInit) void setCombinedCond (Expr *CombCond) void setCombinedNextLowerBound (Expr *CombNLB) void setCombinedNextUpperBound (Expr *CombNUB) void setCombinedDistCond (Expr *CombDistCond) void setCombinedParForInDistCond (Expr *CombParForInDistCond) void setCounters (ArrayRef< Expr * > A) void setPrivateCounters (ArrayRef< Expr * > A) void setInits (ArrayRef< Expr * > A) void setUpdates (ArrayRef< Expr * > A) void setFinals (ArrayRef< Expr * > A) void setDependentCounters (ArrayRef< Expr * > A) void setDependentInits (ArrayRef< Expr * > A) void setFinalsConditions (ArrayRef< Expr * > A) OMPLoopBasedDirective (StmtClass SC, OpenMPDirectiveKind Kind, SourceLocation StartLoc, SourceLocation EndLoc, unsigned NumAssociatedLoops) Build instance of loop directive of class Kind.
OMPExecutableDirective (StmtClass SC, OpenMPDirectiveKind K, SourceLocation StartLoc, SourceLocation EndLoc) Build instance of directive of class K.
void * operator new (size_t bytes) noexcept void operator delete (void *data) noexcept Stmt (StmtClass SC, EmptyShell) Construct an empty statement.
static unsigned getArraysOffset (OpenMPDirectiveKind Kind) Offset to the start of children expression arrays.
static unsigned numLoopChildren (unsigned CollapsedNum, OpenMPDirectiveKind Kind) Children number.
template<typename T , typename... Params> static T * createDirective (const ASTContext &C, ArrayRef< OMPClause * > Clauses, Stmt *AssociatedStmt, unsigned NumChildren, Params &&... P) template<typename T , typename... Params> static T * createEmptyDirective (const ASTContext &C, unsigned NumClauses, bool HasAssociatedStmt, unsigned NumChildren, Params &&... P) template<typename T > static T * createEmptyDirective (const ASTContext &C, unsigned NumClauses, bool HasAssociatedStmt=false, unsigned NumChildren=0) unsigned NumAssociatedLoops = 0 Number of collapsed loops as specified by 'collapse' clause.
OMPChildren * Data = nullptr Data, associated with the directive.
union { StmtBitfields StmtBits NullStmtBitfields NullStmtBits CompoundStmtBitfields CompoundStmtBits LabelStmtBitfields LabelStmtBits AttributedStmtBitfields AttributedStmtBits IfStmtBitfields IfStmtBits SwitchStmtBitfields SwitchStmtBits WhileStmtBitfields WhileStmtBits DoStmtBitfields DoStmtBits ForStmtBitfields ForStmtBits GotoStmtBitfields GotoStmtBits ContinueStmtBitfields ContinueStmtBits BreakStmtBitfields BreakStmtBits ReturnStmtBitfields ReturnStmtBits SwitchCaseBitfields SwitchCaseBits ExprBitfields ExprBits ConstantExprBitfields ConstantExprBits PredefinedExprBitfields PredefinedExprBits DeclRefExprBitfields DeclRefExprBits FloatingLiteralBitfields FloatingLiteralBits StringLiteralBitfields StringLiteralBits CharacterLiteralBitfields CharacterLiteralBits UnaryOperatorBitfields UnaryOperatorBits UnaryExprOrTypeTraitExprBitfields UnaryExprOrTypeTraitExprBits ArrayOrMatrixSubscriptExprBitfields ArrayOrMatrixSubscriptExprBits CallExprBitfields CallExprBits MemberExprBitfields MemberExprBits CastExprBitfields CastExprBits BinaryOperatorBitfields BinaryOperatorBits InitListExprBitfields InitListExprBits ParenListExprBitfields ParenListExprBits GenericSelectionExprBitfields GenericSelectionExprBits PseudoObjectExprBitfields PseudoObjectExprBits SourceLocExprBitfields SourceLocExprBits ParenExprBitfields ParenExprBits StmtExprBitfields StmtExprBits CXXOperatorCallExprBitfields CXXOperatorCallExprBits CXXRewrittenBinaryOperatorBitfields CXXRewrittenBinaryOperatorBits CXXBoolLiteralExprBitfields CXXBoolLiteralExprBits CXXNullPtrLiteralExprBitfields CXXNullPtrLiteralExprBits CXXThisExprBitfields CXXThisExprBits CXXThrowExprBitfields CXXThrowExprBits CXXDefaultArgExprBitfields CXXDefaultArgExprBits CXXDefaultInitExprBitfields CXXDefaultInitExprBits CXXScalarValueInitExprBitfields CXXScalarValueInitExprBits CXXNewExprBitfields CXXNewExprBits CXXDeleteExprBitfields CXXDeleteExprBits TypeTraitExprBitfields TypeTraitExprBits DependentScopeDeclRefExprBitfields DependentScopeDeclRefExprBits CXXConstructExprBitfields CXXConstructExprBits ExprWithCleanupsBitfields ExprWithCleanupsBits CXXUnresolvedConstructExprBitfields CXXUnresolvedConstructExprBits CXXDependentScopeMemberExprBitfields CXXDependentScopeMemberExprBits OverloadExprBitfields OverloadExprBits UnresolvedLookupExprBitfields UnresolvedLookupExprBits UnresolvedMemberExprBitfields UnresolvedMemberExprBits CXXNoexceptExprBitfields CXXNoexceptExprBits SubstNonTypeTemplateParmExprBitfields SubstNonTypeTemplateParmExprBits LambdaExprBitfields LambdaExprBits RequiresExprBitfields RequiresExprBits CoawaitExprBitfields CoawaitBits ObjCIndirectCopyRestoreExprBitfields ObjCIndirectCopyRestoreExprBits OpaqueValueExprBitfields OpaqueValueExprBits };
This represents '#pragma omp target teams distribute parallel for' combined directive.
#pragma omp target teams distribute parallel for private(x)
In this example directive '#pragma omp target teams distribute parallel for' has clause 'private' with the variables 'x'
Definition at line 5321 of file StmtOpenMP.h.
◆ classof() static bool clang::OMPTargetTeamsDistributeParallelForDirective::classof ( const Stmt * T ) inlinestatic ◆ Create()
Creates directive with a list of Clauses.
-
Parameters
-
C AST context. StartLoc Starting location of the directive kind. EndLoc Ending Location of the directive. CollapsedNum Number of collapsed loops. Clauses List of clauses. AssociatedStmt Statement, associated with the directive. Exprs Helper expressions for CodeGen. TaskRedRef Task reduction special reference expression to handle taskgroup descriptor. HasCancel true if this directive has inner cancel directive.
Definition at line 2163 of file StmtOpenMP.cpp.
References clang::C, clang::OMPLoopBasedDirective::HelperExprs::CalcLastIteration, clang::OMPLoopBasedDirective::DistCombinedHelperExprs::Cond, clang::OMPLoopBasedDirective::HelperExprs::Cond, clang::OMPLoopBasedDirective::HelperExprs::Counters, clang::OMPLoopBasedDirective::HelperExprs::DependentCounters, clang::OMPLoopBasedDirective::HelperExprs::DependentInits, clang::OMPLoopBasedDirective::HelperExprs::DistCombinedFields, clang::OMPLoopBasedDirective::DistCombinedHelperExprs::DistCond, clang::OMPLoopBasedDirective::HelperExprs::DistInc, clang::OMPLoopBasedDirective::DistCombinedHelperExprs::EUB, clang::OMPLoopBasedDirective::HelperExprs::EUB, clang::OMPLoopBasedDirective::HelperExprs::Finals, clang::OMPLoopBasedDirective::HelperExprs::FinalsConditions, clang::OMPLoopBasedDirective::HelperExprs::IL, clang::OMPLoopBasedDirective::HelperExprs::Inc, clang::OMPLoopBasedDirective::DistCombinedHelperExprs::Init, clang::OMPLoopBasedDirective::HelperExprs::Init, clang::OMPLoopBasedDirective::HelperExprs::Inits, clang::OMPLoopBasedDirective::HelperExprs::IterationVarRef, clang::OMPLoopBasedDirective::HelperExprs::LastIteration, clang::OMPLoopBasedDirective::DistCombinedHelperExprs::LB, clang::OMPLoopBasedDirective::HelperExprs::LB, clang::OMPLoopBasedDirective::DistCombinedHelperExprs::NLB, clang::OMPLoopBasedDirective::HelperExprs::NLB, clang::OMPLoopBasedDirective::DistCombinedHelperExprs::NUB, clang::OMPLoopBasedDirective::HelperExprs::NUB, clang::OMPLoopBasedDirective::HelperExprs::NumIterations, clang::OMPLoopDirective::numLoopChildren(), clang::OMPLoopBasedDirective::DistCombinedHelperExprs::ParForInDistCond, clang::OMPLoopBasedDirective::HelperExprs::PreCond, clang::OMPLoopBasedDirective::HelperExprs::PreInits, clang::OMPLoopBasedDirective::HelperExprs::PrevEUB, clang::OMPLoopBasedDirective::HelperExprs::PrevLB, clang::OMPLoopBasedDirective::HelperExprs::PrevUB, clang::OMPLoopBasedDirective::HelperExprs::PrivateCounters, clang::OMPLoopBasedDirective::HelperExprs::ST, clang::OMPLoopBasedDirective::DistCombinedHelperExprs::UB, clang::OMPLoopBasedDirective::HelperExprs::UB, and clang::OMPLoopBasedDirective::HelperExprs::Updates.
Referenced by clang::SemaOpenMP::ActOnOpenMPTargetTeamsDistributeParallelForDirective().
◆ CreateEmpty() ◆ getTaskReductionRefExpr() [1/2] Expr * clang::OMPTargetTeamsDistributeParallelForDirective::getTaskReductionRefExpr ( ) inline ◆ getTaskReductionRefExpr() [2/2] const Expr * clang::OMPTargetTeamsDistributeParallelForDirective::getTaskReductionRefExpr ( ) const inline ◆ hasCancel() bool clang::OMPTargetTeamsDistributeParallelForDirective::hasCancel ( ) const inline
Return true if current directive has inner cancel directive.
Definition at line 5402 of file StmtOpenMP.h.
◆ ASTStmtReader ◆ OMPExecutableDirective
The documentation for this class was generated from the following files:
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4