clang
7.0.0
|
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... | |
Public Member Functions | |
template<typename SpecificClause > | |
llvm::iterator_range< specific_clause_iterator< SpecificClause > > | getClausesOfKind () const |
template<typename SpecificClause > | |
const SpecificClause * | getSingleClause () const |
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). More... | |
template<typename SpecificClause > | |
bool | hasClausesOfKind () const |
Returns true if the current directive has one or more clauses of a specific kind. More... | |
SourceLocation | getLocStart () const LLVM_READONLY |
Returns starting location of directive kind. More... | |
SourceLocation | getBeginLoc () const |
SourceLocation | getLocEnd () const LLVM_READONLY |
Returns ending location of directive. More... | |
SourceLocation | getEndLoc () const |
void | setLocStart (SourceLocation Loc) |
Set starting location of directive kind. More... | |
void | setLocEnd (SourceLocation Loc) |
Set ending location of directive. More... | |
unsigned | getNumClauses () const |
Get number of clauses. More... | |
OMPClause * | getClause (unsigned i) const |
Returns specified clause. More... | |
bool | hasAssociatedStmt () const |
Returns true if directive has associated statement. More... | |
const Stmt * | getAssociatedStmt () const |
Returns statement associated with the directive. More... | |
Stmt * | getAssociatedStmt () |
const CapturedStmt * | getCapturedStmt (OpenMPDirectiveKind RegionKind) const |
Returns the captured statement associated with the component region within the (combined) directive. More... | |
CapturedStmt * | getInnermostCapturedStmt () |
Get innermost captured statement for the construct. More... | |
const CapturedStmt * | getInnermostCapturedStmt () const |
OpenMPDirectiveKind | getDirectiveKind () const |
child_range | children () |
ArrayRef< OMPClause * > | clauses () |
ArrayRef< OMPClause * > | clauses () const |
![]() | |
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 (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. More... | |
SourceLocation | getLocStart () const LLVM_READONLY |
SourceLocation | getBeginLoc () const LLVM_READONLY |
SourceLocation | getLocEnd () const LLVM_READONLY |
SourceLocation | getEndLoc () const LLVM_READONLY |
void | dump () const |
Dumps the specified AST fragment and all subtrees to llvm::errs() . More... | |
void | dump (SourceManager &SM) const |
void | dump (raw_ostream &OS, SourceManager &SM) const |
void | dump (raw_ostream &OS) const |
void | dumpColor () const |
dumpColor - same as dump(), but forces color highlighting. More... | |
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. More... | |
void | printPretty (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0, const ASTContext *Context=nullptr) const |
void | viewAST () const |
viewAST - Visualize an AST rooted at this Stmt* using GraphViz. More... | |
Stmt * | IgnoreImplicit () |
Skip past any implicit AST nodes which might surround this statement, such as ExprWithCleanups or ImplicitCastExpr nodes. More... | |
const Stmt * | IgnoreImplicit () const |
Stmt * | IgnoreContainers (bool IgnoreCaptured=false) |
Skip no-op (attributed, compound) container stmts and skip captured stmt at the top, if IgnoreCaptured is true. More... | |
const Stmt * | IgnoreContainers (bool IgnoreCaptured=false) const |
const Stmt * | stripLabelLikeStatements () const |
Strip off all label-like statements. More... | |
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) const |
Produce a unique representation of the given statement. More... | |
void | ProcessODRHash (llvm::FoldingSetNodeID &ID, ODRHash &Hash) const |
Calculate a unique representation for a statement that is stable across compiler invocations. More... | |
Static Public Member Functions | |
template<typename SpecificClause > | |
static llvm::iterator_range< specific_clause_iterator< SpecificClause > > | getClausesOfKind (ArrayRef< OMPClause *> Clauses) |
static bool | classof (const Stmt *S) |
![]() | |
static void | addStmtClass (const StmtClass s) |
static void | EnableStatistics () |
static void | PrintStats () |
Protected Member Functions | |
template<typename T > | |
OMPExecutableDirective (const T *, StmtClass SC, OpenMPDirectiveKind K, SourceLocation StartLoc, SourceLocation EndLoc, unsigned NumClauses, unsigned NumChildren) | |
Build instance of directive of class K. More... | |
void | setClauses (ArrayRef< OMPClause *> Clauses) |
Sets the list of variables for this clause. More... | |
void | setAssociatedStmt (Stmt *S) |
Set the associated statement for the directive. More... | |
![]() | |
void * | operator new (size_t bytes) noexcept |
void | operator delete (void *data) noexcept |
Stmt (StmtClass SC, EmptyShell) | |
Construct an empty statement. More... | |
Friends | |
class | ASTStmtReader |
This is a basic class for representing single OpenMP executable directive.
Definition at line 33 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 67 of file StmtOpenMP.h.
References setClauses().
|
inline |
Do not mark all the special expression/statements as children, except for the associated statement.
Definition at line 253 of file StmtOpenMP.h.
References hasAssociatedStmt().
Definition at line 248 of file StmtOpenMP.h.
Definition at line 262 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective(), getClause(), getClausesOfKind(), and clang::TreeTransform< Derived >::TransformOMPExecutableDirective().
Definition at line 264 of file StmtOpenMP.h.
|
inline |
Returns statement associated with the directive.
Definition at line 198 of file StmtOpenMP.h.
References clang::Stmt::child_begin(), and hasAssociatedStmt().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective(), clang::CodeGen::CodeGenFunction::EmitSimpleOMPExecutableDirective(), getCapturedStmt(), and getInnermostCapturedStmt().
|
inline |
Definition at line 202 of file StmtOpenMP.h.
References clang::Stmt::child_begin(), and hasAssociatedStmt().
|
inline |
Definition at line 169 of file StmtOpenMP.h.
Referenced by getLocStart().
|
inline |
Returns the captured statement associated with the component region within the (combined) directive.
Definition at line 211 of file StmtOpenMP.h.
References getAssociatedStmt(), getDirectiveKind(), and clang::getOpenMPCaptureRegions().
Referenced by emitCommonOMPParallelDirective(), emitCommonOMPTeamsDirective(), emitNumTeamsForTargetDirective(), emitNumThreadsForTargetDirective(), emitOffloadingArraysArgument(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTaskBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective(), emitParallelOrTeamsOutlinedFunction(), emitPrivatesInit(), clang::CodeGen::CGOpenMPRuntime::emitTargetOutlinedFunctionHelper(), emitTargetParallelRegion(), emitTargetRegion(), and emitTargetTeamsRegion().
|
inline |
Returns specified clause.
i | Number of clause. |
Definition at line 192 of file StmtOpenMP.h.
References clauses().
|
inlinestatic |
Definition at line 130 of file StmtOpenMP.h.
Referenced by emitAlignedClause(), emitCommonOMPParallelDirective(), emitCommonOMPTargetDirective(), clang::CodeGen::CodeGenFunction::EmitOMPCancelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPCopyinClause(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPLastprivateClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPLinearClause(), clang::CodeGen::CodeGenFunction::EmitOMPLinearClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPLinearClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPLoopBody(), clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPPrivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPSingleDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective(), emitPostUpdateForReductionClause(), clang::CodeGen::CodeGenFunction::EmitSimpleOMPExecutableDirective(), and hasParallelIfNumThreadsClause().
|
inline |
Definition at line 138 of file StmtOpenMP.h.
References clauses().
|
inline |
Definition at line 246 of file StmtOpenMP.h.
Referenced by emitCommonOMPTargetDirective(), emitEmptyOrdered(), emitNumTeamsForTargetDirective(), emitNumThreadsForTargetDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPLastprivateClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPLinearClause(), clang::CodeGen::CodeGenFunction::EmitOMPLoopBody(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), emitOMPSimdRegion(), clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), emitParallelOrTeamsOutlinedFunction(), emitPrivatesInit(), clang::CodeGen::CodeGenFunction::EmitSimpleOMPExecutableDirective(), getCapturedStmt(), clang::OMPLoopDirective::getCombinedCond(), clang::OMPLoopDirective::getCombinedEnsureUpperBound(), clang::OMPLoopDirective::getCombinedInit(), clang::OMPLoopDirective::getCombinedLowerBoundVariable(), clang::OMPLoopDirective::getCombinedNextLowerBound(), clang::OMPLoopDirective::getCombinedNextUpperBound(), clang::OMPLoopDirective::getCombinedUpperBoundVariable(), clang::OMPLoopDirective::getDistInc(), 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(), hasNestedSPMDDirective(), clang::CodeGen::markAsGlobalTarget(), clang::OMPLoopDirective::setCombinedCond(), clang::OMPLoopDirective::setCombinedEnsureUpperBound(), clang::OMPLoopDirective::setCombinedInit(), clang::OMPLoopDirective::setCombinedLowerBoundVariable(), clang::OMPLoopDirective::setCombinedNextLowerBound(), clang::OMPLoopDirective::setCombinedNextUpperBound(), 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(), clang::OMPLoopDirective::setUpperBoundVariable(), and supportsSPMDExecutionMode().
|
inline |
Definition at line 172 of file StmtOpenMP.h.
Referenced by getLocEnd().
|
inline |
Get innermost captured statement for the construct.
Definition at line 228 of file StmtOpenMP.h.
References getAssociatedStmt(), getDirectiveKind(), clang::getOpenMPCaptureRegions(), and hasAssociatedStmt().
Referenced by emitCommonOMPTargetDirective(), clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective(), clang::OMPLoopDirective::getBody(), getInnermostCapturedStmt(), and hasNestedSPMDDirective().
|
inline |
Definition at line 241 of file StmtOpenMP.h.
References getInnermostCapturedStmt().
|
inline |
Returns ending location of directive.
Definition at line 171 of file StmtOpenMP.h.
References getEndLoc().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal().
|
inline |
Returns starting location of directive kind.
Definition at line 168 of file StmtOpenMP.h.
References getBeginLoc().
Referenced by emitCommonOMPParallelDirective(), emitCommonOMPTeamsDirective(), emitEmptyOrdered(), clang::CodeGen::CodeGenFunction::EmitOMPBarrierDirective(), clang::CodeGen::CodeGenFunction::EmitOMPCancelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPCancellationPointDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::CodeGen::CodeGenFunction::EmitOMPFlushDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSectionsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskwaitDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskyieldDirective(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), emitParallelOrTeamsOutlinedFunction(), clang::CodeGen::CGOpenMPRuntime::emitTargetOutlinedFunctionHelper(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitTeamsOutlinedFunction(), and supportsSPMDExecutionMode().
|
inline |
|
inline |
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 148 of file StmtOpenMP.h.
Referenced by emitCommonOMPParallelDirective(), emitCommonOMPTargetDirective(), emitCommonOMPTeamsDirective(), emitNumTeamsForTargetDirective(), emitNumThreadsForTargetDirective(), clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::CodeGen::CodeGenFunction::EmitOMPFlushDirective(), clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPSectionsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetEnterDataDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetExitDataDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetUpdateDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), and emitSimdlenSafelenClause().
|
inline |
Returns true if directive has associated statement.
Definition at line 195 of file StmtOpenMP.h.
Referenced by children(), clang::CodeGen::CodeGenFunction::EmitSimpleOMPExecutableDirective(), getAssociatedStmt(), and getInnermostCapturedStmt().
|
inline |
Returns true if the current directive has one or more clauses of a specific kind.
Definition at line 162 of file StmtOpenMP.h.
Referenced by emitOffloadingArraysArgument(), clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective(), hasParallelIfNumThreadsClause(), and clang::CodeGen::markAsGlobalTarget().
|
inlineprotected |
Set the associated statement for the directive.
/param S Associated statement.
Definition at line 85 of file StmtOpenMP.h.
Referenced by clang::OMPParallelDirective::Create(), clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPSectionsDirective::Create(), clang::OMPSectionDirective::Create(), clang::OMPSingleDirective::Create(), clang::OMPMasterDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPParallelSectionsDirective::Create(), clang::OMPTaskDirective::Create(), clang::OMPTaskgroupDirective::Create(), clang::OMPOrderedDirective::Create(), clang::OMPTargetDirective::Create(), clang::OMPTargetDataDirective::Create(), clang::OMPTargetEnterDataDirective::Create(), clang::OMPTargetExitDataDirective::Create(), clang::OMPTargetParallelDirective::Create(), clang::OMPTargetParallelForDirective::Create(), clang::OMPTeamsDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), clang::OMPDistributeDirective::Create(), clang::OMPTargetUpdateDirective::Create(), clang::OMPDistributeParallelForDirective::Create(), clang::OMPDistributeParallelForSimdDirective::Create(), clang::OMPDistributeSimdDirective::Create(), clang::OMPTargetParallelForSimdDirective::Create(), clang::OMPTargetSimdDirective::Create(), clang::OMPTeamsDistributeDirective::Create(), clang::OMPTeamsDistributeSimdDirective::Create(), clang::OMPTeamsDistributeParallelForSimdDirective::Create(), clang::OMPTeamsDistributeParallelForDirective::Create(), clang::OMPTargetTeamsDirective::Create(), clang::OMPTargetTeamsDistributeDirective::Create(), clang::OMPTargetTeamsDistributeParallelForDirective::Create(), clang::OMPTargetTeamsDistributeParallelForSimdDirective::Create(), and clang::OMPTargetTeamsDistributeSimdDirective::Create().
Sets the list of variables for this clause.
Clauses | The list of clauses for the directive. |
Definition at line 20 of file StmtOpenMP.cpp.
References getNumClauses().
Referenced by clang::OMPParallelDirective::Create(), clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPSectionsDirective::Create(), clang::OMPSingleDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPParallelSectionsDirective::Create(), clang::OMPTaskDirective::Create(), clang::OMPTaskgroupDirective::Create(), clang::OMPFlushDirective::Create(), clang::OMPOrderedDirective::Create(), clang::OMPTargetDirective::Create(), clang::OMPTargetDataDirective::Create(), clang::OMPTargetEnterDataDirective::Create(), clang::OMPTargetExitDataDirective::Create(), clang::OMPTargetParallelDirective::Create(), clang::OMPTargetParallelForDirective::Create(), clang::OMPTeamsDirective::Create(), clang::OMPCancelDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), clang::OMPDistributeDirective::Create(), clang::OMPTargetUpdateDirective::Create(), clang::OMPDistributeParallelForDirective::Create(), clang::OMPDistributeParallelForSimdDirective::Create(), clang::OMPDistributeSimdDirective::Create(), clang::OMPTargetParallelForSimdDirective::Create(), clang::OMPTargetSimdDirective::Create(), clang::OMPTeamsDistributeDirective::Create(), clang::OMPTeamsDistributeSimdDirective::Create(), clang::OMPTeamsDistributeParallelForSimdDirective::Create(), clang::OMPTeamsDistributeParallelForDirective::Create(), clang::OMPTargetTeamsDirective::Create(), clang::OMPTargetTeamsDistributeDirective::Create(), clang::OMPTargetTeamsDistributeParallelForDirective::Create(), clang::OMPTargetTeamsDistributeParallelForSimdDirective::Create(), clang::OMPTargetTeamsDistributeSimdDirective::Create(), and OMPExecutableDirective().
|
inline |
Set ending location of directive.
Loc | New ending location of directive. |
Definition at line 183 of file StmtOpenMP.h.
|
inline |
Set starting location of directive kind.
Loc | New starting location of directive. |
Definition at line 178 of file StmtOpenMP.h.
|
friend |
Definition at line 34 of file StmtOpenMP.h.