clang: include/clang/AST/StmtOpenMP.h File Reference (original) (raw)

This file defines OpenMP AST classes for executable directives and clauses. More...

Go to the source code of this file.

Classes
class OMPTargetDirective
This represents '#pragma omp target' directive. More...
class OMPTargetDataDirective
This represents '#pragma omp target data' directive. More...
class OMPTargetEnterDataDirective
This represents '#pragma omp target enter data' directive. More...
class OMPTargetExitDataDirective
This represents '#pragma omp target exit data' directive. More...
class OMPTargetParallelDirective
This represents '#pragma omp target parallel' directive. More...
class OMPTargetParallelForDirective
This represents '#pragma omp target parallel for' directive. More...
class OMPTeamsDirective
This represents '#pragma omp teams' directive. More...
class OMPCancellationPointDirective
This represents '#pragma omp cancellation point' directive. More...
class OMPCancelDirective
This represents '#pragma omp cancel' directive. More...
class OMPTaskLoopDirective
This represents '#pragma omp taskloop' directive. More...
class OMPTaskLoopSimdDirective
This represents '#pragma omp taskloop simd' directive. More...
class OMPMasterTaskLoopDirective
This represents '#pragma omp master taskloop' directive. More...
class OMPMaskedTaskLoopDirective
This represents '#pragma omp masked taskloop' directive. More...
class OMPMasterTaskLoopSimdDirective
This represents '#pragma omp master taskloop simd' directive. More...
class OMPMaskedTaskLoopSimdDirective
This represents '#pragma omp masked taskloop simd' directive. More...
class OMPParallelMasterTaskLoopDirective
This represents '#pragma omp parallel master taskloop' directive. More...
class OMPParallelMaskedTaskLoopDirective
This represents '#pragma omp parallel masked taskloop' directive. More...
class OMPParallelMasterTaskLoopSimdDirective
This represents '#pragma omp parallel master taskloop simd' directive. More...
class OMPParallelMaskedTaskLoopSimdDirective
This represents '#pragma omp parallel masked taskloop simd' directive. More...
class OMPDistributeDirective
This represents '#pragma omp distribute' directive. More...
class OMPTargetUpdateDirective
This represents '#pragma omp target update' directive. More...
class OMPDistributeParallelForDirective
This represents '#pragma omp distribute parallel for' composite directive. More...
class OMPDistributeParallelForSimdDirective
This represents '#pragma omp distribute parallel for simd' composite directive. More...
class OMPDistributeSimdDirective
This represents '#pragma omp distribute simd' composite directive. More...
class OMPTargetParallelForSimdDirective
This represents '#pragma omp target parallel for simd' directive. More...
class OMPTargetSimdDirective
This represents '#pragma omp target simd' directive. More...
class OMPTeamsDistributeDirective
This represents '#pragma omp teams distribute' directive. More...
class OMPTeamsDistributeSimdDirective
This represents '#pragma omp teams distribute simd' combined directive. More...
class OMPTeamsDistributeParallelForSimdDirective
This represents '#pragma omp teams distribute parallel for simd' composite directive. More...
class OMPTeamsDistributeParallelForDirective
This represents '#pragma omp teams distribute parallel for' composite directive. More...
class OMPTargetTeamsDirective
This represents '#pragma omp target teams' directive. More...
class OMPTargetTeamsDistributeDirective
This represents '#pragma omp target teams distribute' combined directive. More...
class OMPTargetTeamsDistributeParallelForDirective
This represents '#pragma omp target teams distribute parallel for' combined directive. More...
class OMPTargetTeamsDistributeParallelForSimdDirective
This represents '#pragma omp target teams distribute parallel for simd' combined directive. More...
class OMPTargetTeamsDistributeSimdDirective
This represents '#pragma omp target teams distribute simd' combined directive. More...
class OMPTileDirective
This represents the '#pragma omp tile' loop transformation directive. More...
class OMPStripeDirective
This represents the '#pragma omp stripe' loop transformation directive. More...
class OMPUnrollDirective
This represents the '#pragma omp unroll' loop transformation directive. More...
class OMPReverseDirective
Represents the '#pragma omp reverse' loop transformation directive. More...
class OMPInterchangeDirective
Represents the '#pragma omp interchange' loop transformation directive. More...
class OMPCanonicalLoopSequenceTransformationDirective
The base class for all transformation directives of canonical loop sequences (currently only 'fuse') More...
class OMPFuseDirective
Represents the '#pragma omp fuse' loop transformation directive. More...
class OMPScanDirective
This represents '#pragma omp scan' directive. More...
class OMPInteropDirective
This represents '#pragma omp interop' directive. More...
class OMPDispatchDirective
This represents '#pragma omp dispatch' directive. More...
class OMPMaskedDirective
This represents '#pragma omp masked' directive. More...
class OMPMetaDirective
This represents '#pragma omp metadirective' directive. More...
class OMPGenericLoopDirective
This represents '#pragma omp loop' directive. More...
class OMPTeamsGenericLoopDirective
This represents '#pragma omp teams loop' directive. More...
class OMPTargetTeamsGenericLoopDirective
This represents '#pragma omp target teams loop' directive. More...
class OMPParallelGenericLoopDirective
This represents '#pragma omp parallel loop' directive. More...
class OMPTargetParallelGenericLoopDirective
This represents '#pragma omp target parallel loop' directive. More...
class OMPErrorDirective
This represents '#pragma omp error' directive. More...
class OMPAssumeDirective
struct llvm::CastInfo< clang::OMPLoopTransformationDirective, clang::Stmt * >
struct llvm::CastInfo< clang::OMPLoopTransformationDirective, const clang::Stmt * >
Namespaces
namespace clang
The JSON file list parser is used to communicate input to InstallAPI.
namespace llvm
Diagnostic wrappers for TextAPI types for error reporting.
Functions
static OMPAtomicDirective * Create (const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef< OMPClause * > Clauses, Stmt *AssociatedStmt, Expressions Exprs)
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').
static OMPAtomicDirective * CreateEmpty (const ASTContext &C, unsigned NumClauses, EmptyShell)
Creates an empty directive with the place for NumClauses clauses.
Expr * getX ()
Get 'x' part of the associated expression/statement.
Expr * getUpdateExpr ()
Get helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'.
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)'.
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'.
bool isFailOnly () const
Return true if 'v' is updated only when the condition is evaluated false (compare capture only).
Expr * getV ()
Get 'v' part of the associated expression/statement.
Expr * getR ()
Get 'r' part of the associated expression/statement.
Expr * getExpr ()
Get 'expr' part of the associated expression/statement.
Expr * getD ()
Get 'd' part of the associated expression/statement.
Expr * getCondExpr ()
Get the 'cond' part of the source atomic expression.
static bool classof (const Stmt *T)
Variables
Expr * clang::Cond = nullptr
};
bool clang::IsXLHSInRHSPart
True if UE has the first form and false if the second.
bool clang::IsPostfixUpdate
True if original value of 'x' must be stored in 'v', not an updated one.
bool clang::IsFailOnly
True if 'v' is updated only when the condition is false (compare capture only).

This file defines OpenMP AST classes for executable directives and clauses.

Definition in file StmtOpenMP.h.

classof()

bool classof ( const Stmt * T) static

Create()

OMPAtomicDirective * Create ( const ASTContext & C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef< OMPClause * > Clauses, Stmt * AssociatedStmt, Expressions Exprs ) 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').

Parameters

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.
Exprs Associated expressions or statements.

CreateEmpty()

OMPAtomicDirective * CreateEmpty ( const ASTContext & C, unsigned NumClauses, EmptyShell ) static

Creates an empty directive with the place for NumClauses clauses.

Parameters

C AST context.
NumClauses Number of clauses.

getCondExpr()

Get the 'cond' part of the source atomic expression.

Definition at line 3179 of file StmtOpenMP.h.

getD()

Get 'd' part of the associated expression/statement.

Definition at line 3172 of file StmtOpenMP.h.

getExpr()

getR()

Get 'r' part of the associated expression/statement.

Definition at line 3158 of file StmtOpenMP.h.

getUpdateExpr()

const Expr * getUpdateExpr ( )

Get helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'.

Definition at line 3132 of file StmtOpenMP.h.

getV()

Get 'v' part of the associated expression/statement.

Definition at line 3151 of file StmtOpenMP.h.

getX()

Get 'x' part of the associated expression/statement.

Definition at line 3123 of file StmtOpenMP.h.

isFailOnly()

bool isFailOnly ( ) const

Return true if 'v' is updated only when the condition is evaluated false (compare capture only).

Definition at line 3149 of file StmtOpenMP.h.

isPostfixUpdate()

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'.

Definition at line 3146 of file StmtOpenMP.h.

isXLHSInRHSPart()

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

Definition at line 3143 of file StmtOpenMP.h.