clang 20.0.0git
|
This is a basic class for representing single OpenMP executable directive. More...
#include "clang/AST/StmtOpenMP.h"
Classes | |
class | specific_clause_iterator |
Iterates over a filtered subrange of clauses applied to a directive. More... | |
class | used_clauses_child_iterator |
Iterates over expressions/statements used in the construct. More... | |
Public Member Functions | |
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 () |
Public Member Functions inherited from clang::Stmt | |
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 Public Member Functions | |
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 Public Member Functions inherited from clang::Stmt | |
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) |
Protected Member Functions | |
OMPExecutableDirective (StmtClass SC, OpenMPDirectiveKind K, SourceLocation StartLoc, SourceLocation EndLoc) | |
Build instance of directive of class K. | |
Protected Member Functions inherited from clang::Stmt | |
void * | operator new (size_t bytes) noexcept |
void | operator delete (void *data) noexcept |
Stmt (StmtClass SC, EmptyShell) | |
Construct an empty statement. | |
Static Protected Member Functions | |
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) |
Friends | |
class | ASTStmtReader |
class | ASTStmtWriter |
Additional Inherited Members | |
Public Types inherited from clang::Stmt | |
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 > |
Protected Types inherited from clang::Stmt | |
enum | { NumStmtBits = 9 } |
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 > |
This is a basic class for representing single OpenMP executable directive.
Definition at line 266 of file StmtOpenMP.h.
|
inlineprotected |
Build instance of directive of class K.
SC | Statement class. |
K | Kind of OpenMP directive. |
StartLoc | Starting location of the directive (directive keyword). |
EndLoc | Ending location of the directive. |
Definition at line 295 of file StmtOpenMP.h.
|
inline |
Definition at line 563 of file StmtOpenMP.h.
References Data, and clang::OMPChildren::getAssociatedStmtAsRange().
Referenced by children().
|
inline |
Definition at line 569 of file StmtOpenMP.h.
References children().
Definition at line 558 of file StmtOpenMP.h.
Definition at line 573 of file StmtOpenMP.h.
References Data, and clang::OMPChildren::getClauses().
Referenced by getClause(), getClausesOfKind(), and getSingleClause().
|
inlinestaticprotected |
Definition at line 333 of file StmtOpenMP.h.
|
inline |
Definition at line 524 of file StmtOpenMP.h.
References Data, clang::OMPChildren::getAssociatedStmt(), and hasAssociatedStmt().
|
inline |
Returns statement associated with the directive.
Definition at line 521 of file StmtOpenMP.h.
References getAssociatedStmt().
Referenced by getAssociatedStmt().
|
inline |
Returns starting location of directive kind.
Definition at line 489 of file StmtOpenMP.h.
|
inline |
Returns the captured statement associated with the component region within the (combined) directive.
RegionKind | Component region kind. |
Definition at line 534 of file StmtOpenMP.h.
References Data, clang::OMPChildren::getCapturedStmt(), getDirectiveKind(), clang::getOpenMPCaptureRegions(), and hasAssociatedStmt().
Returns specified clause.
I | Number of clause. |
Definition at line 515 of file StmtOpenMP.h.
References clauses().
|
inline |
Definition at line 454 of file StmtOpenMP.h.
References clauses().
|
inlinestatic |
Definition at line 446 of file StmtOpenMP.h.
Referenced by getDistributeLastprivateVars().
|
inline |
Definition at line 556 of file StmtOpenMP.h.
Referenced by clang::SemaOpenMP::ActOnOpenMPLoopnest(), getCapturedStmt(), clang::OMPLoopDirective::getCombinedCond(), clang::OMPLoopDirective::getCombinedDistCond(), clang::OMPLoopDirective::getCombinedEnsureUpperBound(), clang::OMPLoopDirective::getCombinedInit(), clang::OMPLoopDirective::getCombinedLowerBoundVariable(), clang::OMPLoopDirective::getCombinedNextLowerBound(), clang::OMPLoopDirective::getCombinedNextUpperBound(), clang::OMPLoopDirective::getCombinedParForInDistCond(), clang::OMPLoopDirective::getCombinedUpperBoundVariable(), clang::OMPLoopDirective::getDistInc(), getDistributeLastprivateVars(), clang::OMPLoopDirective::getEnsureUpperBound(), getInnermostCapturedStmt(), clang::OMPLoopDirective::getIsLastIterVariable(), clang::OMPLoopDirective::getLowerBoundVariable(), clang::OMPLoopDirective::getNextLowerBound(), clang::OMPLoopDirective::getNextUpperBound(), clang::OMPLoopDirective::getNumIterations(), clang::OMPLoopDirective::getPrevEnsureUpperBound(), clang::OMPLoopDirective::getPrevLowerBoundVariable(), clang::OMPLoopDirective::getPrevUpperBoundVariable(), clang::OMPLoopDirective::getStrideVariable(), clang::OMPLoopDirective::getUpperBoundVariable(), clang::OMPLoopDirective::setCombinedCond(), clang::OMPLoopDirective::setCombinedDistCond(), clang::OMPLoopDirective::setCombinedEnsureUpperBound(), clang::OMPLoopDirective::setCombinedInit(), clang::OMPLoopDirective::setCombinedLowerBoundVariable(), clang::OMPLoopDirective::setCombinedNextLowerBound(), clang::OMPLoopDirective::setCombinedNextUpperBound(), clang::OMPLoopDirective::setCombinedParForInDistCond(), clang::OMPLoopDirective::setCombinedUpperBoundVariable(), clang::OMPLoopDirective::setDistInc(), clang::OMPLoopDirective::setEnsureUpperBound(), clang::OMPLoopDirective::setIsLastIterVariable(), clang::OMPLoopDirective::setLowerBoundVariable(), clang::OMPLoopDirective::setNextLowerBound(), clang::OMPLoopDirective::setNextUpperBound(), clang::OMPLoopDirective::setNumIterations(), clang::OMPLoopDirective::setPrevEnsureUpperBound(), clang::OMPLoopDirective::setPrevLowerBoundVariable(), clang::OMPLoopDirective::setPrevUpperBoundVariable(), clang::OMPLoopDirective::setStrideVariable(), and clang::OMPLoopDirective::setUpperBoundVariable().
|
inline |
Returns ending location of directive.
Definition at line 491 of file StmtOpenMP.h.
|
inline |
Get innermost captured statement for the construct.
Definition at line 543 of file StmtOpenMP.h.
References Data, getDirectiveKind(), clang::OMPChildren::getInnermostCapturedStmt(), clang::getOpenMPCaptureRegions(), and hasAssociatedStmt().
Referenced by getInnermostCapturedStmt().
|
inline |
Definition at line 551 of file StmtOpenMP.h.
References getInnermostCapturedStmt().
|
inline |
Get number of clauses.
Definition at line 505 of file StmtOpenMP.h.
References Data, and clang::OMPChildren::getNumClauses().
|
inline |
Definition at line 596 of file StmtOpenMP.h.
References Data, clang::OMPChildren::getRawStmt(), and hasAssociatedStmt().
|
inline |
Definition at line 593 of file StmtOpenMP.h.
References getRawStmt().
Referenced by getRawStmt(), and getStructuredBlock().
|
inline |
Definition at line 476 of file StmtOpenMP.h.
References clauses().
|
inlinestatic |
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).
Returns nullptr if no clause of this kind is associated with the directive.
Definition at line 464 of file StmtOpenMP.h.
Stmt * OMPExecutableDirective::getStructuredBlock | ( | ) |
Definition at line 69 of file StmtOpenMP.cpp.
References getRawStmt(), and isStandaloneDirective().
|
inline |
Returns the AST node representing OpenMP structured-block of this OpenMP executable directive, Prerequisite: Executable Directive must not be Standalone directive.
Definition at line 588 of file StmtOpenMP.h.
References getStructuredBlock().
Referenced by getStructuredBlock().
|
inline |
Returns true if directive has associated statement.
Definition at line 518 of file StmtOpenMP.h.
References Data, and clang::OMPChildren::hasAssociatedStmt().
Referenced by getAssociatedStmt(), getCapturedStmt(), getInnermostCapturedStmt(), getRawStmt(), and isStandaloneDirective().
|
inline |
Returns true if the current directive has one or more clauses of a specific kind.
Definition at line 483 of file StmtOpenMP.h.
bool OMPExecutableDirective::isStandaloneDirective | ( | ) | const |
Returns whether or not this is a Standalone directive.
Stand-alone directives are executable directives that have no associated user code.
Definition at line 58 of file StmtOpenMP.cpp.
References hasAssociatedStmt().
Referenced by getStructuredBlock().
|
inline |
Set ending location of directive.
Loc | New ending location of directive. |
Definition at line 502 of file StmtOpenMP.h.
References Loc.
|
inline |
Set starting location of directive kind.
Loc | New starting location of directive. |
Definition at line 497 of file StmtOpenMP.h.
References Loc.
|
inlinestatic |
Definition at line 401 of file StmtOpenMP.h.
|
friend |
Definition at line 267 of file StmtOpenMP.h.
|
friend |
Definition at line 268 of file StmtOpenMP.h.
|
protected |
Data, associated with the directive.
Definition at line 286 of file StmtOpenMP.h.
Referenced by children(), clauses(), createDirective(), createEmptyDirective(), getAssociatedStmt(), clang::OMPLoopDirective::getBody(), clang::OMPLoopDirective::getCalcLastIteration(), getCapturedStmt(), clang::OMPLoopDirective::getCombinedCond(), clang::OMPLoopDirective::getCombinedDistCond(), clang::OMPLoopDirective::getCombinedEnsureUpperBound(), clang::OMPLoopDirective::getCombinedInit(), clang::OMPLoopDirective::getCombinedLowerBoundVariable(), clang::OMPLoopDirective::getCombinedNextLowerBound(), clang::OMPLoopDirective::getCombinedNextUpperBound(), clang::OMPLoopDirective::getCombinedParForInDistCond(), clang::OMPLoopDirective::getCombinedUpperBoundVariable(), clang::OMPLoopDirective::getCond(), clang::OMPAtomicDirective::getCondExpr(), clang::OMPAtomicDirective::getD(), clang::OMPLoopDirective::getDistInc(), clang::OMPLoopDirective::getEnsureUpperBound(), clang::OMPAtomicDirective::getExpr(), clang::OMPLoopDirective::getInc(), clang::OMPLoopDirective::getInit(), getInnermostCapturedStmt(), clang::OMPLoopDirective::getIsLastIterVariable(), clang::OMPLoopDirective::getIterationVariable(), clang::OMPLoopDirective::getLastIteration(), clang::OMPLoopDirective::getLowerBoundVariable(), clang::OMPLoopDirective::getNextLowerBound(), clang::OMPLoopDirective::getNextUpperBound(), getNumClauses(), clang::OMPLoopDirective::getNumIterations(), clang::OMPLoopDirective::getPreCond(), clang::OMPLoopDirective::getPreInits(), clang::OMPLoopDirective::getPrevEnsureUpperBound(), clang::OMPLoopDirective::getPrevLowerBoundVariable(), clang::OMPLoopDirective::getPrevUpperBoundVariable(), clang::OMPAtomicDirective::getR(), getRawStmt(), clang::OMPTaskgroupDirective::getReductionRef(), clang::OMPLoopDirective::getStrideVariable(), clang::OMPParallelDirective::getTaskReductionRefExpr(), clang::OMPSectionsDirective::getTaskReductionRefExpr(), clang::OMPParallelMasterDirective::getTaskReductionRefExpr(), clang::OMPParallelMaskedDirective::getTaskReductionRefExpr(), clang::OMPParallelSectionsDirective::getTaskReductionRefExpr(), clang::OMPTargetParallelDirective::getTaskReductionRefExpr(), clang::OMPAtomicDirective::getUpdateExpr(), clang::OMPLoopDirective::getUpperBoundVariable(), clang::OMPAtomicDirective::getV(), clang::OMPAtomicDirective::getX(), hasAssociatedStmt(), clang::OMPLoopDirective::setCalcLastIteration(), clang::OMPLoopDirective::setCombinedCond(), clang::OMPLoopDirective::setCombinedDistCond(), clang::OMPLoopDirective::setCombinedEnsureUpperBound(), clang::OMPLoopDirective::setCombinedInit(), clang::OMPLoopDirective::setCombinedLowerBoundVariable(), clang::OMPLoopDirective::setCombinedNextLowerBound(), clang::OMPLoopDirective::setCombinedNextUpperBound(), clang::OMPLoopDirective::setCombinedParForInDistCond(), clang::OMPLoopDirective::setCombinedUpperBoundVariable(), clang::OMPLoopDirective::setCond(), clang::OMPLoopDirective::setDistInc(), clang::OMPLoopDirective::setEnsureUpperBound(), clang::OMPLoopDirective::setInc(), clang::OMPLoopDirective::setInit(), clang::OMPLoopDirective::setIsLastIterVariable(), clang::OMPLoopDirective::setIterationVariable(), clang::OMPLoopDirective::setLastIteration(), clang::OMPLoopDirective::setLowerBoundVariable(), clang::OMPLoopDirective::setNextLowerBound(), clang::OMPLoopDirective::setNextUpperBound(), clang::OMPLoopDirective::setNumIterations(), clang::OMPLoopDirective::setPreCond(), clang::OMPLoopDirective::setPreInits(), clang::OMPLoopDirective::setPrevEnsureUpperBound(), clang::OMPLoopDirective::setPrevLowerBoundVariable(), clang::OMPLoopDirective::setPrevUpperBoundVariable(), clang::OMPLoopDirective::setStrideVariable(), and clang::OMPLoopDirective::setUpperBoundVariable().