clang 22.0.0git
|
This file defines OpenMP AST classes for executable directives and clauses. More...
#include "clang/AST/ASTContext.h"
#include "clang/AST/Expr.h"
#include "clang/AST/OpenMPClause.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtCXX.h"
#include "clang/Basic/OpenMPKinds.h"
#include "clang/Basic/SourceLocation.h"
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 | |
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.
|
static |
Definition at line 3155 of file StmtOpenMP.h.
|
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. |
Exprs | Associated expressions or statements. |
|
static |
Creates an empty directive with the place for NumClauses clauses.
C | AST context. |
NumClauses | Number of clauses. |
Expr * getCondExpr | ( | ) |
Get the 'cond' part of the source atomic expression.
Definition at line 3148 of file StmtOpenMP.h.
Expr * getD | ( | ) |
Get 'd' part of the associated expression/statement.
Definition at line 3141 of file StmtOpenMP.h.
const Expr * getExpr | ( | ) |
Get 'expr' part of the associated expression/statement.
Definition at line 3134 of file StmtOpenMP.h.
Referenced by clang::Sema::canThrow(), CheckICE(), ClassifyInternal(), clang::ParenListExpr::getExpr(), clang::ento::SMTConv::getRangeExpr(), clang::ShuffleVectorExpr::getShuffleMaskIdx(), clang::ExplicitSpecifier::isEquivalent(), and clang::Expr::isUnusedResultAWarning().
const Expr * getR | ( | ) |
Get 'r' part of the associated expression/statement.
Definition at line 3127 of file StmtOpenMP.h.
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.
const Expr * getV | ( | ) |
Get 'v' part of the associated expression/statement.
Definition at line 3120 of file StmtOpenMP.h.
const Expr * getX | ( | ) |
Get 'x' part of the associated expression/statement.
Definition at line 3092 of file StmtOpenMP.h.
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.
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.
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.