clang
10.0.0git
|
This represents '#pragma omp atomic' directive. More...
#include "clang/AST/StmtOpenMP.h"
Public Member Functions | |
Expr * | getX () |
Get 'x' part of the associated expression/statement. More... | |
const Expr * | getX () const |
Expr * | getUpdateExpr () |
Get helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. More... | |
const Expr * | getUpdateExpr () const |
bool | isXLHSInRHSPart () const |
Return true if helper update expression has form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' and false if it has form 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. More... | |
bool | isPostfixUpdate () const |
Return true if 'v' expression must be updated to original value of 'x', false if 'v' must be updated to the new value of 'x'. More... | |
Expr * | getV () |
Get 'v' part of the associated expression/statement. More... | |
const Expr * | getV () const |
Expr * | getExpr () |
Get 'expr' part of the associated expression/statement. More... | |
const Expr * | getExpr () const |
![]() | |
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 | getBeginLoc () const |
Returns starting location of directive kind. More... | |
SourceLocation | getEndLoc () const |
Returns ending location of directive. More... | |
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 () |
const_child_range | children () const |
ArrayRef< OMPClause * > | clauses () |
ArrayRef< OMPClause * > | clauses () const |
bool | isStandaloneDirective () const |
Returns whether or not this is a Standalone directive. More... | |
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. More... | |
Stmt * | getStructuredBlock () |
![]() | |
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 |
bool | isOMPStructuredBlock () const |
void | setIsOMPStructuredBlock (bool IsOMPStructuredBlock) |
SourceRange | getSourceRange () const LLVM_READONLY |
SourceLocation tokens are not useful in isolation - they are low level value objects created/interpreted by SourceManager. More... | |
SourceLocation | getBeginLoc () 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 |
int64_t | getID (const ASTContext &Context) 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, StringRef NewlineSymbol="\, const ASTContext *Context=nullptr) const |
void | printJson (raw_ostream &Out, PrinterHelper *Helper, const PrintingPolicy &Policy, bool AddQuotes) const |
Pretty-prints in JSON format. More... | |
void | viewAST () const |
viewAST - Visualize an AST rooted at this Stmt* using GraphViz. More... | |
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 | |
static OMPAtomicDirective * | Create (const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef< OMPClause *> Clauses, Stmt *AssociatedStmt, Expr *X, Expr *V, Expr *E, Expr *UE, bool IsXLHSInRHSPart, bool IsPostfixUpdate) |
Creates directive with a list of Clauses and 'x', 'v' and 'expr' parts of the atomic construct (see Section 2.12.6, atomic Construct, for detailed description of 'x', 'v' and 'expr'). More... | |
static OMPAtomicDirective * | CreateEmpty (const ASTContext &C, unsigned NumClauses, EmptyShell) |
Creates an empty directive with the place for NumClauses clauses. More... | |
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) |
static bool | classof (const Stmt *S) |
![]() | |
static void | addStmtClass (const StmtClass s) |
static void | EnableStatistics () |
static void | PrintStats () |
Friends | |
class | ASTStmtReader |
This represents '#pragma omp atomic' directive.
In this example directive '#pragma omp atomic' has clause 'capture'.
Definition at line 2379 of file StmtOpenMP.h.
Definition at line 2501 of file StmtOpenMP.h.
References clang::Stmt::getStmtClass().
|
static |
Creates directive with a list of Clauses and 'x', 'v' and 'expr' parts of the atomic construct (see Section 2.12.6, atomic Construct, for detailed description of 'x', 'v' and 'expr').
C | AST context. |
StartLoc | Starting location of the directive kind. |
EndLoc | Ending Location of the directive. |
Clauses | List of clauses. |
AssociatedStmt | Statement, associated with the directive. |
X | 'x' part of the associated expression/statement. |
V | 'v' part of the associated expression/statement. |
E | 'expr' part of the associated expression/statement. |
UE | Helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. |
IsXLHSInRHSPart | true if UE has the first form and false if the second. |
IsPostfixUpdate | true if original value of 'x' must be stored in 'v', not an updated one. |
Definition at line 788 of file StmtOpenMP.cpp.
References clang::ASTContext::Allocate(), clang::OMPExecutableDirective::setAssociatedStmt(), and clang::OMPExecutableDirective::setClauses().
|
static |
Creates an empty directive with the place for NumClauses clauses.
C | AST context. |
NumClauses | Number of clauses. |
Definition at line 809 of file StmtOpenMP.cpp.
References clang::ASTContext::Allocate().
|
inline |
Get 'expr' part of the associated expression/statement.
Definition at line 2496 of file StmtOpenMP.h.
References clang::Stmt::child_begin().
|
inline |
Definition at line 2497 of file StmtOpenMP.h.
References clang::Stmt::child_begin().
|
inline |
Get helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'.
Definition at line 2477 of file StmtOpenMP.h.
References clang::Stmt::child_begin().
|
inline |
Definition at line 2480 of file StmtOpenMP.h.
References clang::Stmt::child_begin().
|
inline |
Get 'v' part of the associated expression/statement.
Definition at line 2491 of file StmtOpenMP.h.
References clang::Stmt::child_begin().
|
inline |
Definition at line 2492 of file StmtOpenMP.h.
References clang::Stmt::child_begin().
|
inline |
Get 'x' part of the associated expression/statement.
Definition at line 2470 of file StmtOpenMP.h.
References clang::Stmt::child_begin().
|
inline |
Definition at line 2471 of file StmtOpenMP.h.
References clang::Stmt::child_begin().
|
inline |
Return true if 'v' expression must be updated to original value of 'x', false if 'v' must be updated to the new value of 'x'.
Definition at line 2489 of file StmtOpenMP.h.
|
inline |
Return true if helper update expression has form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' and false if it has form 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'.
Definition at line 2486 of file StmtOpenMP.h.
|
friend |
Definition at line 2380 of file StmtOpenMP.h.