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

Public Member Functions

DeclarationNameInfo

getDirectiveName () const

Return name of the directive.

- Public Member Functions inherited from clang::OMPExecutableDirective

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 OMPCriticalDirective *

Create (const ASTContext &C, const DeclarationNameInfo &Name, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef< OMPClause * > Clauses, Stmt *AssociatedStmt)

Creates directive.

static OMPCriticalDirective *

CreateEmpty (const ASTContext &C, unsigned NumClauses, EmptyShell)

Creates an empty directive.

static bool

classof (const Stmt *T)

- Static Public Member Functions inherited from clang::OMPExecutableDirective

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)

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 >

- Protected Member Functions inherited from clang::OMPExecutableDirective

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 inherited from clang::OMPExecutableDirective

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 inherited from clang::OMPExecutableDirective

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

};

This represents '#pragma omp critical' directive.

Definition at line 2076 of file StmtOpenMP.h.