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"
#include "llvm/Support/Casting.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 | 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.
|
static |
Definition at line 3186 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 3179 of file StmtOpenMP.h.
Expr * getD | ( | ) |
Get 'd' part of the associated expression/statement.
Definition at line 3172 of file StmtOpenMP.h.
const Expr * getExpr | ( | ) |
Get 'expr' part of the associated expression/statement.
Definition at line 3165 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 3158 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 3132 of file StmtOpenMP.h.
const Expr * getV | ( | ) |
Get 'v' part of the associated expression/statement.
Definition at line 3151 of file StmtOpenMP.h.
const Expr * getX | ( | ) |
Get 'x' part of the associated expression/statement.
Definition at line 3123 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 3149 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 3146 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 3143 of file StmtOpenMP.h.