clang 22.0.0git
StmtOpenMP.h File Reference

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

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.

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

Exprclang::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).

Detailed Description

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

Definition in file StmtOpenMP.h.

Function Documentation

◆ classof()

bool classof ( const Stmt * T)
static

Definition at line 3155 of file StmtOpenMP.h.

◆ 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
CAST context.
StartLocStarting location of the directive kind.
EndLocEnding Location of the directive.
ClausesList of clauses.
AssociatedStmtStatement, associated with the directive.
ExprsAssociated expressions or statements.

◆ CreateEmpty()

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

Creates an empty directive with the place for NumClauses clauses.

Parameters
CAST context.
NumClausesNumber of clauses.

◆ getCondExpr()

Expr * getCondExpr ( )

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

Definition at line 3148 of file StmtOpenMP.h.

◆ getD()

Expr * getD ( )

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

Definition at line 3141 of file StmtOpenMP.h.

◆ getExpr()

◆ getR()

const Expr * getR ( )

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

Definition at line 3127 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 3101 of file StmtOpenMP.h.

◆ getV()

const Expr * getV ( )

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

Definition at line 3120 of file StmtOpenMP.h.

◆ getX()

const Expr * getX ( )

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

Definition at line 3092 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 3118 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 3115 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 3112 of file StmtOpenMP.h.