clang
3.9.0
|
This file defines OpenMP AST classes for clauses. More...
#include "clang/AST/Expr.h"
#include "clang/AST/Stmt.h"
#include "clang/Basic/OpenMPKinds.h"
#include "clang/Basic/SourceLocation.h"
Go to the source code of this file.
Classes | |
class | clang::OMPClause |
This is a basic class for representing single OpenMP clause. More... | |
class | clang::OMPClauseWithPreInit |
Class that handles pre-initialization statement for some clauses, like 'shedule', 'firstprivate' etc. More... | |
class | clang::OMPClauseWithPostUpdate |
Class that handles post-update expression for some clauses, like 'lastprivate', 'reduction' etc. More... | |
class | clang::OMPVarListClause< T > |
This represents clauses with the list of variables like 'private', 'firstprivate', 'copyin', 'shared', or 'reduction' clauses in the '#pragma omp ...' directives. More... | |
class | clang::OMPIfClause |
This represents 'if' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPFinalClause |
This represents 'final' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPNumThreadsClause |
This represents 'num_threads' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPSafelenClause |
This represents 'safelen' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPSimdlenClause |
This represents 'simdlen' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPCollapseClause |
This represents 'collapse' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPDefaultClause |
This represents 'default' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPProcBindClause |
This represents 'proc_bind' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPScheduleClause |
This represents 'schedule' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPOrderedClause |
This represents 'ordered' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPNowaitClause |
This represents 'nowait' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPUntiedClause |
This represents 'untied' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPMergeableClause |
This represents 'mergeable' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPReadClause |
This represents 'read' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPWriteClause |
This represents 'write' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPUpdateClause |
This represents 'update' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPCaptureClause |
This represents 'capture' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPSeqCstClause |
This represents 'seq_cst' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPPrivateClause |
This represents clause 'private' in the '#pragma omp ...' directives. More... | |
class | clang::OMPFirstprivateClause |
This represents clause 'firstprivate' in the '#pragma omp ...' directives. More... | |
class | clang::OMPLastprivateClause |
This represents clause 'lastprivate' in the '#pragma omp ...' directives. More... | |
class | clang::OMPSharedClause |
This represents clause 'shared' in the '#pragma omp ...' directives. More... | |
class | clang::OMPReductionClause |
This represents clause 'reduction' in the '#pragma omp ...' directives. More... | |
class | clang::OMPLinearClause |
This represents clause 'linear' in the '#pragma omp ...' directives. More... | |
class | OMPAlignedClause |
This represents clause 'aligned' in the '#pragma omp ...' directives. More... | |
class | OMPCopyinClause |
This represents clause 'copyin' in the '#pragma omp ...' directives. More... | |
class | OMPCopyprivateClause |
This represents clause 'copyprivate' in the '#pragma omp ...' directives. More... | |
class | OMPFlushClause |
This represents implicit clause 'flush' for the '#pragma omp flush' directive. More... | |
class | OMPDependClause |
This represents implicit clause 'depend' for the '#pragma omp task' directive. More... | |
class | OMPDeviceClause |
This represents 'device' clause in the '#pragma omp ...' directive. More... | |
class | OMPThreadsClause |
This represents 'threads' clause in the '#pragma omp ...' directive. More... | |
class | OMPSIMDClause |
This represents 'simd' clause in the '#pragma omp ...' directive. More... | |
class | OMPClauseMappableExprCommon |
Struct that defines common infrastructure to handle mappable expressions used in OpenMP clauses. More... | |
class | OMPClauseMappableExprCommon::MappableComponent |
class | OMPMappableExprListClause< T > |
This represents clauses with a list of expressions that are mappable. More... | |
class | OMPMappableExprListClause< T >::const_component_lists_iterator |
Iterator that browse the components by lists. More... | |
class | OMPMapClause |
This represents clause 'map' in the '#pragma omp ...' directives. More... | |
class | OMPNumTeamsClause |
This represents 'num_teams' clause in the '#pragma omp ...' directive. More... | |
class | OMPThreadLimitClause |
This represents 'thread_limit' clause in the '#pragma omp ...' directive. More... | |
class | OMPPriorityClause |
This represents 'priority' clause in the '#pragma omp ...' directive. More... | |
class | OMPGrainsizeClause |
This represents 'grainsize' clause in the '#pragma omp ...' directive. More... | |
class | OMPNogroupClause |
This represents 'nogroup' clause in the '#pragma omp ...' directive. More... | |
class | OMPNumTasksClause |
This represents 'num_tasks' clause in the '#pragma omp ...' directive. More... | |
class | OMPHintClause |
This represents 'hint' clause in the '#pragma omp ...' directive. More... | |
class | OMPDistScheduleClause |
This represents 'dist_schedule' clause in the '#pragma omp ...' directive. More... | |
class | OMPDefaultmapClause |
This represents 'defaultmap' clause in the '#pragma omp ...' directive. More... | |
class | OMPToClause |
This represents clause 'to' in the '#pragma omp ...' directives. More... | |
class | OMPFromClause |
This represents clause 'from' in the '#pragma omp ...' directives. More... | |
class | OMPUseDevicePtrClause |
This represents clause 'use_device_ptr' in the '#pragma omp ...' directives. More... | |
class | OMPIsDevicePtrClause |
This represents clause 'is_device_ptr' in the '#pragma omp ...' directives. More... | |
Namespaces | |
clang | |
Dataflow Directional Tag Classes. | |
Typedefs | |
typedef MutableArrayRef< Expr * > ::iterator | clang::privates_iterator |
typedef ArrayRef< const Expr * > ::iterator | clang::privates_const_iterator |
typedef llvm::iterator_range < privates_iterator > | clang::privates_range |
typedef llvm::iterator_range < privates_const_iterator > | clang::privates_const_range |
typedef MutableArrayRef< Expr * > ::iterator | clang::inits_iterator |
typedef ArrayRef< const Expr * > ::iterator | clang::inits_const_iterator |
typedef llvm::iterator_range < inits_iterator > | clang::inits_range |
typedef llvm::iterator_range < inits_const_iterator > | clang::inits_const_range |
typedef MutableArrayRef< Expr * > ::iterator | clang::updates_iterator |
typedef ArrayRef< const Expr * > ::iterator | clang::updates_const_iterator |
typedef llvm::iterator_range < updates_iterator > | clang::updates_range |
typedef llvm::iterator_range < updates_const_iterator > | clang::updates_const_range |
typedef MutableArrayRef< Expr * > ::iterator | clang::finals_iterator |
typedef ArrayRef< const Expr * > ::iterator | clang::finals_const_iterator |
typedef llvm::iterator_range < finals_iterator > | clang::finals_range |
typedef llvm::iterator_range < finals_const_iterator > | clang::finals_const_range |
Functions | |
clang::OMPLinearClause OMPVarListClause, OMPClauseWithPostUpdate, llvm::TrailingObjects | clang::getPrivates () |
void | setStep (Expr *Step) |
Sets the linear step for clause. More... | |
void | setCalcStep (Expr *CalcStep) |
Sets the expression to calculate linear step for clause. More... | |
OMPLinearClause (SourceLocation StartLoc, SourceLocation LParenLoc, OpenMPLinearClauseKind Modifier, SourceLocation ModifierLoc, SourceLocation ColonLoc, SourceLocation EndLoc, unsigned NumVars) | |
Build 'linear' clause with given number of variables NumVars. More... | |
OMPLinearClause (unsigned NumVars) | |
Build an empty clause. More... | |
MutableArrayRef< Expr * > | clang::getInits () |
MutableArrayRef< Expr * > | clang::getUpdates () |
Sets the list of update expressions for linear variables. More... | |
MutableArrayRef< Expr * > | clang::getFinals () |
Sets the list of final update expressions for linear variables. More... | |
void | clang::setPrivates (ArrayRef< Expr * > PL) |
Sets the list of the copies of original linear variables. More... | |
void | clang::setInits (ArrayRef< Expr * > IL) |
Sets the list of the initial values for linear variables. More... | |
static OMPLinearClause * | clang::Create (const ASTContext &C, SourceLocation StartLoc, SourceLocation LParenLoc, OpenMPLinearClauseKind Modifier, SourceLocation ModifierLoc, SourceLocation ColonLoc, SourceLocation EndLoc, ArrayRef< Expr * > VL, ArrayRef< Expr * > PL, ArrayRef< Expr * > IL, Expr *Step, Expr *CalcStep, Stmt *PreInit, Expr *PostUpdate) |
Creates clause with a list of variables VL and a linear step Step. More... | |
static OMPLinearClause * | clang::CreateEmpty (const ASTContext &C, unsigned NumVars) |
Creates an empty clause with the place for NumVars variables. More... | |
void | clang::setModifier (OpenMPLinearClauseKind Kind) |
Set modifier. More... | |
OpenMPLinearClauseKind | clang::getModifier () const |
Return modifier. More... | |
void | clang::setModifierLoc (SourceLocation Loc) |
Set modifier location. More... | |
SourceLocation | clang::getModifierLoc () const |
Return modifier location. More... | |
void | clang::setColonLoc (SourceLocation Loc) |
Sets the location of ':'. More... | |
SourceLocation | clang::getColonLoc () const |
Returns the location of ':'. More... | |
Expr * | clang::getStep () |
Returns linear step. More... | |
Expr * | clang::getCalcStep () |
Returns expression to calculate linear step. More... | |
void | clang::setUpdates (ArrayRef< Expr * > UL) |
Sets the list of update expressions for linear variables. More... | |
void | clang::setFinals (ArrayRef< Expr * > FL) |
Sets the list of final update expressions for linear variables. More... | |
privates_range | clang::privates () |
inits_range | clang::inits () |
updates_range | clang::updates () |
finals_range | clang::finals () |
child_range | clang::children () |
static bool | clang::classof (const OMPClause *T) |
Variables | |
friend | TrailingObjects |
friend | OMPVarListClause |
OpenMPLinearClauseKind | Modifier |
Modifier of 'linear' clause. More... | |
SourceLocation | ModifierLoc |
Location of linear modifier if any. More... | |
SourceLocation | ColonLoc |
Location of ':'. More... | |
Privates [] | |
Gets the list of initial values for linear variables. More... | |
Inits [] | |
Updates [] | |
* | Finals [] |
Step | |
CalcStep | |
This file defines OpenMP AST classes for clauses.
There are clauses for executable directives, clauses for declarative directives and clauses which can be used in both kinds of directives.
Definition in file OpenMPClause.h.
getPrivates::OMPLinearClause | ( | SourceLocation | StartLoc, |
SourceLocation | LParenLoc, | ||
OpenMPLinearClauseKind | Modifier, | ||
SourceLocation | ModifierLoc, | ||
SourceLocation | ColonLoc, | ||
SourceLocation | EndLoc, | ||
unsigned | NumVars | ||
) |
Build 'linear' clause with given number of variables NumVars.
StartLoc | Starting location of the clause. |
LParenLoc | Location of '('. |
ColonLoc | Location of ':'. |
EndLoc | Ending location of the clause. |
NumVars | Number of variables. |
Definition at line 282 of file OpenMPClause.h.
|
explicit |
Build an empty clause.
NumVars | Number of variables. |
Definition at line 295 of file OpenMPClause.h.
void getPrivates::setCalcStep | ( | Expr * | CalcStep | ) |
Sets the expression to calculate linear step for clause.
Definition at line 272 of file OpenMPClause.h.
void getPrivates::setStep | ( | Expr * | Step | ) |
Sets the linear step for clause.
Definition at line 269 of file OpenMPClause.h.
CalcStep |
Definition at line 313 of file OpenMPClause.h.
Referenced by clang::Sema::ActOnOpenMPLinearClause(), and FinishOpenMPLinearClause().
SourceLocation ColonLoc |
Location of ':'.
Definition at line 266 of file OpenMPClause.h.
Referenced by clang::Sema::ActOnCaseStmt(), clang::Sema::ActOnConditionalOp(), clang::Sema::BuildCXXForRangeStmt(), BuildNonArrayForRange(), clang::CXXForRangeStmt::getColonLoc(), clang::OMPIfClause::getColonLoc(), clang::SwitchCase::getColonLoc(), clang::CaseStmt::getColonLoc(), clang::DefaultStmt::getColonLoc(), clang::OMPReductionClause::getColonLoc(), clang::getColonLoc(), OMPAlignedClause::getColonLoc(), OMPDependClause::getColonLoc(), clang::AbstractConditionalOperator::getColonLoc(), OMPMapClause::getColonLoc(), clang::SwitchCase::setColonLoc(), clang::CaseStmt::setColonLoc(), clang::DefaultStmt::setColonLoc(), clang::setColonLoc(), OMPAlignedClause::setColonLoc(), and clang::ASTNodeImporter::VisitAccessSpecDecl().
* Finals[] |
Definition at line 313 of file OpenMPClause.h.
Referenced by FinishOpenMPLinearClause().
Inits[] |
Definition at line 312 of file OpenMPClause.h.
Referenced by clang::Sema::ActOnOpenMPFirstprivateClause(), clang::Sema::ActOnOpenMPLinearClause(), clang::Sema::BuildCXXNew(), clang::Sema::CheckConstexprFunctionBody(), clang::CodeGen::CodeGenVTables::CreateVTableInitializer(), clang::Sema::DefineInheritingConstructor(), and clang::CodeGen::CodeGenModule::EmitConstantValue().
OpenMPLinearClauseKind Modifier |
Modifier of 'linear' clause.
Definition at line 262 of file OpenMPClause.h.
Referenced by clang::Sema::ActOnOpenMPSingleExprWithArgClause(), addMonoNonMonoModifier(), EmitCommonNeonSISDBuiltinExpr(), clang::Diagnostic::FormatDiagnostic(), OMPDefaultmapClause::getDefaultmapModifier(), clang::getModifier(), and clang::setModifier().
SourceLocation ModifierLoc |
Location of linear modifier if any.
Definition at line 264 of file OpenMPClause.h.
Referenced by OMPDefaultmapClause::getDefaultmapModifierLoc(), clang::getModifierLoc(), and clang::setModifierLoc().
friend OMPVarListClause |
Definition at line 259 of file OpenMPClause.h.
Privates[] |
Gets the list of initial values for linear variables.
There are NumVars expressions with initial values allocated after the varlist, they are followed by NumVars update expressions (used to update the linear variable's value on current iteration) and they are followed by NumVars final expressions (used to calculate the linear variable's value after the loop body). After these lists, there are 2 helper expressions - linear step and a helper to calculate it before the loop body (used when the linear step is not constant):
{ Vars[] /* in OMPVarListClause
Definition at line 312 of file OpenMPClause.h.
Referenced by clang::Sema::ActOnOpenMPLinearClause(), clang::Sema::ActOnOpenMPReductionClause(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), and clang::CodeGen::emitTaskInit().
Step |
Definition at line 313 of file OpenMPClause.h.
Referenced by clang::Sema::ActOnOpenMPDeclareSimdDirective(), clang::Sema::ActOnOpenMPLinearClause(), BuildCounterUpdate(), FinishOpenMPLinearClause(), clang::Sema::getDestructorName(), clang::InitializationSequence::Perform(), and clang::Sema::PerformMoveOrCopyInitialization().
friend TrailingObjects |
Definition at line 258 of file OpenMPClause.h.
Updates[] |
Definition at line 312 of file OpenMPClause.h.
Referenced by clang::ASTReader::FinishedDeserializing(), and FinishOpenMPLinearClause().