clang: clang::OMPExecutableDirective Class Reference (original) (raw)

This is a basic class for representing single OpenMP executable directive. More...

#include "[clang/AST/StmtOpenMP.h](StmtOpenMP%5F8h%5Fsource.html)"

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
llvm::iterator_range< specific_clause_iterator< SpecificClause > > getClausesOfKind () const
template
const SpecificClause * getSingleClause () const
template
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
static llvm::iterator_range< specific_clause_iterator< SpecificClause > > getClausesOfKind (ArrayRef< OMPClause * > Clauses)
template
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)
Protected Attributes
OMPChildren * Data = nullptr
Data, associated with the directive.
- Protected Attributes inherited from clang::Stmt
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
};
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 { NumExprBits = NumStmtBits + 5 + llvm::BitWidth }
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.

Build instance of directive of class K.

Parameters

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.

children() [1/2]

child_range clang::OMPExecutableDirective::children ( ) inline

children() [2/2]

classof()

static bool clang::OMPExecutableDirective::classof ( const Stmt * S) inlinestatic

clauses()

createDirective()

template<typename T , typename... Params>

createEmptyDirective() [1/2]

template<typename T , typename... Params>

static T * clang::OMPExecutableDirective::createEmptyDirective ( const ASTContext & C, unsigned NumClauses, bool HasAssociatedStmt, unsigned NumChildren, Params &&... P ) inlinestaticprotected

createEmptyDirective() [2/2]

template<typename T >

static T * clang::OMPExecutableDirective::createEmptyDirective ( const ASTContext & C, unsigned NumClauses, bool HasAssociatedStmt = false, unsigned NumChildren = 0 ) inlinestaticprotected

getAssociatedStmt() [1/2]

Stmt * clang::OMPExecutableDirective::getAssociatedStmt ( ) inline

getAssociatedStmt() [2/2]

const Stmt * clang::OMPExecutableDirective::getAssociatedStmt ( ) const inline

getBeginLoc()

SourceLocation clang::OMPExecutableDirective::getBeginLoc ( ) const inline

Returns starting location of directive kind.

Definition at line 489 of file StmtOpenMP.h.

getCapturedStmt()

getClause()

getClausesOfKind() [1/2]

template

llvm::iterator_range< specific_clause_iterator< SpecificClause > > clang::OMPExecutableDirective::getClausesOfKind ( ) const inline

getClausesOfKind() [2/2]

template

getDirectiveKind()

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().

getEndLoc()

SourceLocation clang::OMPExecutableDirective::getEndLoc ( ) const inline

Returns ending location of directive.

Definition at line 491 of file StmtOpenMP.h.

getInnermostCapturedStmt() [1/2]

CapturedStmt * clang::OMPExecutableDirective::getInnermostCapturedStmt ( ) inline

getInnermostCapturedStmt() [2/2]

const CapturedStmt * clang::OMPExecutableDirective::getInnermostCapturedStmt ( ) const inline

getNumClauses()

unsigned clang::OMPExecutableDirective::getNumClauses ( ) const inline

getRawStmt() [1/2]

Stmt * clang::OMPExecutableDirective::getRawStmt ( ) inline

getRawStmt() [2/2]

const Stmt * clang::OMPExecutableDirective::getRawStmt ( ) const inline

getSingleClause() [1/2]

template

const SpecificClause * clang::OMPExecutableDirective::getSingleClause ( ) const inline

getSingleClause() [2/2]

template

static const SpecificClause * clang::OMPExecutableDirective::getSingleClause ( ArrayRef< OMPClause * > 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.

getStructuredBlock() [1/2]

Stmt * OMPExecutableDirective::getStructuredBlock ( )

getStructuredBlock() [2/2]

const Stmt * clang::OMPExecutableDirective::getStructuredBlock ( ) const 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().

hasAssociatedStmt()

bool clang::OMPExecutableDirective::hasAssociatedStmt ( ) const inline

hasClausesOfKind()

template

bool clang::OMPExecutableDirective::hasClausesOfKind ( ) const inline

Returns true if the current directive has one or more clauses of a specific kind.

Definition at line 483 of file StmtOpenMP.h.

isStandaloneDirective()

bool OMPExecutableDirective::isStandaloneDirective ( ) const

setLocEnd()

void clang::OMPExecutableDirective::setLocEnd ( SourceLocation Loc) inline

Set ending location of directive.

Parameters

Loc New ending location of directive.

Definition at line 502 of file StmtOpenMP.h.

References Loc.

setLocStart()

void clang::OMPExecutableDirective::setLocStart ( SourceLocation Loc) inline

Set starting location of directive kind.

Parameters

Loc New starting location of directive.

Definition at line 497 of file StmtOpenMP.h.

References Loc.

used_clauses_children()

ASTStmtReader

ASTStmtWriter

Data

OMPChildren* clang::OMPExecutableDirective::Data = nullptr 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().


The documentation for this class was generated from the following files: