clang 18.0.0git
|
This represents clause 'reduction' in the '#pragma omp ...' directives. More...
#include "clang/AST/OpenMPClause.h"
Public Types | |
using | helper_expr_iterator = MutableArrayRef< Expr * >::iterator |
using | helper_expr_const_iterator = ArrayRef< const Expr * >::iterator |
using | helper_expr_range = llvm::iterator_range< helper_expr_iterator > |
using | helper_expr_const_range = llvm::iterator_range< helper_expr_const_iterator > |
![]() | |
using | varlist_iterator = MutableArrayRef< Expr * >::iterator |
using | varlist_const_iterator = ArrayRef< const Expr * >::iterator |
using | varlist_range = llvm::iterator_range< varlist_iterator > |
using | varlist_const_range = llvm::iterator_range< varlist_const_iterator > |
![]() | |
using | child_iterator = StmtIterator |
using | const_child_iterator = ConstStmtIterator |
using | child_range = llvm::iterator_range< child_iterator > |
using | const_child_range = llvm::iterator_range< const_child_iterator > |
Public Member Functions | |
OpenMPReductionClauseModifier | getModifier () const |
Returns modifier. | |
SourceLocation | getModifierLoc () const |
Returns modifier location. | |
SourceLocation | getColonLoc () const |
Gets location of ':' symbol in clause. | |
const DeclarationNameInfo & | getNameInfo () const |
Gets the name info for specified reduction identifier. | |
NestedNameSpecifierLoc | getQualifierLoc () const |
Gets the nested name specifier. | |
helper_expr_const_range | privates () const |
helper_expr_range | privates () |
helper_expr_const_range | lhs_exprs () const |
helper_expr_range | lhs_exprs () |
helper_expr_const_range | rhs_exprs () const |
helper_expr_range | rhs_exprs () |
helper_expr_const_range | reduction_ops () const |
helper_expr_range | reduction_ops () |
helper_expr_const_range | copy_ops () const |
helper_expr_range | copy_ops () |
helper_expr_const_range | copy_array_temps () const |
helper_expr_range | copy_array_temps () |
helper_expr_const_range | copy_array_elems () const |
helper_expr_range | copy_array_elems () |
child_range | children () |
const_child_range | children () const |
child_range | used_children () |
const_child_range | used_children () const |
![]() | |
ArrayRef< const Expr * > | getVarRefs () const |
Fetches list of all variables in the clause. | |
unsigned | varlist_size () const |
bool | varlist_empty () const |
varlist_range | varlists () |
varlist_const_range | varlists () const |
varlist_iterator | varlist_begin () |
varlist_const_iterator | varlist_begin () const |
varlist_iterator | varlist_end () |
varlist_const_iterator | varlist_end () const |
void | setLParenLoc (SourceLocation Loc) |
Sets the location of '('. | |
SourceLocation | getLParenLoc () const |
Returns the location of '('. | |
![]() | |
SourceLocation | getBeginLoc () const |
Returns the starting location of the clause. | |
SourceLocation | getEndLoc () const |
Returns the ending location of the clause. | |
void | setLocStart (SourceLocation Loc) |
Sets the starting location of the clause. | |
void | setLocEnd (SourceLocation Loc) |
Sets the ending location of the clause. | |
OpenMPClauseKind | getClauseKind () const |
Returns kind of OpenMP clause (private, shared, reduction, etc.). | |
bool | isImplicit () const |
child_range | children () |
const_child_range | children () const |
child_range | used_children () |
Get the iterator range for the expressions used in the clauses. | |
const_child_range | used_children () const |
![]() | |
const Expr * | getPostUpdateExpr () const |
Get post-update expression for the clause. | |
Expr * | getPostUpdateExpr () |
Get post-update expression for the clause. | |
![]() | |
const Stmt * | getPreInitStmt () const |
Get pre-initialization statement for the clause. | |
Stmt * | getPreInitStmt () |
Get pre-initialization statement for the clause. | |
OpenMPDirectiveKind | getCaptureRegion () const |
Get capture region for the stmt in the clause. | |
Static Public Member Functions | |
static OMPReductionClause * | Create (const ASTContext &C, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ModifierLoc, SourceLocation ColonLoc, SourceLocation EndLoc, OpenMPReductionClauseModifier Modifier, ArrayRef< Expr * > VL, NestedNameSpecifierLoc QualifierLoc, const DeclarationNameInfo &NameInfo, ArrayRef< Expr * > Privates, ArrayRef< Expr * > LHSExprs, ArrayRef< Expr * > RHSExprs, ArrayRef< Expr * > ReductionOps, ArrayRef< Expr * > CopyOps, ArrayRef< Expr * > CopyArrayTemps, ArrayRef< Expr * > CopyArrayElems, Stmt *PreInit, Expr *PostUpdate) |
Creates clause with a list of variables VL. | |
static OMPReductionClause * | CreateEmpty (const ASTContext &C, unsigned N, OpenMPReductionClauseModifier Modifier) |
Creates an empty clause with the place for N variables. | |
static bool | classof (const OMPClause *T) |
![]() | |
static bool | classof (const OMPClause *) |
![]() | |
static OMPClauseWithPostUpdate * | get (OMPClause *C) |
static const OMPClauseWithPostUpdate * | get (const OMPClause *C) |
![]() | |
static OMPClauseWithPreInit * | get (OMPClause *C) |
static const OMPClauseWithPreInit * | get (const OMPClause *C) |
Friends | |
class | OMPClauseReader |
Additional Inherited Members | |
![]() | |
OMPVarListClause (OpenMPClauseKind K, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc, unsigned N) | |
Build a clause with N variables. | |
MutableArrayRef< Expr * > | getVarRefs () |
Fetches list of variables associated with this clause. | |
void | setVarRefs (ArrayRef< Expr * > VL) |
Sets the list of variables for this clause. | |
![]() | |
OMPClause (OpenMPClauseKind K, SourceLocation StartLoc, SourceLocation EndLoc) | |
![]() | |
OMPClauseWithPostUpdate (const OMPClause *This) | |
void | setPostUpdateExpr (Expr *S) |
Set pre-initialization statement for the clause. | |
![]() | |
OMPClauseWithPreInit (const OMPClause *This) | |
void | setPreInitStmt (Stmt *S, OpenMPDirectiveKind ThisRegion=llvm::omp::OMPD_unknown) |
Set pre-initialization statement for the clause. | |
This represents clause 'reduction' in the '#pragma omp ...' directives.
In this example directive '#pragma omp parallel' has clause 'reduction' with operator '+' and the variables 'a' and 'b'.
Definition at line 3164 of file OpenMPClause.h.
using clang::OMPReductionClause::helper_expr_const_iterator = ArrayRef<const Expr *>::iterator |
Definition at line 3399 of file OpenMPClause.h.
using clang::OMPReductionClause::helper_expr_const_range = llvm::iterator_range<helper_expr_const_iterator> |
Definition at line 3401 of file OpenMPClause.h.
using clang::OMPReductionClause::helper_expr_iterator = MutableArrayRef<Expr *>::iterator |
Definition at line 3398 of file OpenMPClause.h.
using clang::OMPReductionClause::helper_expr_range = llvm::iterator_range<helper_expr_iterator> |
Definition at line 3400 of file OpenMPClause.h.
|
inline |
Definition at line 3468 of file OpenMPClause.h.
References clang::OMPVarListClause< OMPReductionClause >::varlist_begin(), and clang::OMPVarListClause< OMPReductionClause >::varlist_end().
Referenced by children().
|
inline |
Definition at line 3473 of file OpenMPClause.h.
References children().
Definition at line 3487 of file OpenMPClause.h.
References clang::OMPClause::getClauseKind().
|
inline |
Definition at line 3463 of file OpenMPClause.h.
|
inline |
Definition at line 3458 of file OpenMPClause.h.
|
inline |
Definition at line 3453 of file OpenMPClause.h.
|
inline |
Definition at line 3448 of file OpenMPClause.h.
|
inline |
Definition at line 3443 of file OpenMPClause.h.
|
inline |
Definition at line 3438 of file OpenMPClause.h.
|
static |
Creates clause with a list of variables VL.
StartLoc | Starting location of the clause. |
LParenLoc | Location of '('. |
ModifierLoc | Modifier location. |
ColonLoc | Location of ':'. |
EndLoc | Ending location of the clause. |
VL | The variables in the clause. |
QualifierLoc | The nested-name qualifier with location information |
NameInfo | The full name info for reduction identifier. |
Privates | List of helper expressions for proper generation of private copies. |
LHSExprs | List of helper expressions for proper generation of assignment operation required for copyprivate clause. This list represents LHSs of the reduction expressions. |
RHSExprs | List of helper expressions for proper generation of assignment operation required for copyprivate clause. This list represents RHSs of the reduction expressions. Also, variables in these expressions are used for proper initialization of reduction copies. |
ReductionOps | List of helper expressions that represents reduction expressions: LHSExprs binop RHSExprs;
operator binop(LHSExpr, RHSExpr);
<CutomReduction>(LHSExpr, RHSExpr);
|
CopyOps | List of copy operations for inscan reductions: TempExprs = LHSExprs;
|
CopyArrayTemps | Temp arrays for prefix sums. |
CopyArrayElems | Temp arrays for prefix sums. |
PreInit | Statement that must be executed before entering the OpenMP region with this clause. |
PostUpdate | Expression that must be executed after exit from the OpenMP region with this clause. |
Definition at line 793 of file OpenMPClause.cpp.
References clang::C, and clang::OMPVarListClause< T >::setVarRefs().
Referenced by clang::Sema::ActOnOpenMPReductionClause().
|
static |
Creates an empty clause with the place for N variables.
C | AST context. |
N | The number of variables. |
Modifier | Reduction modifier. |
Definition at line 830 of file OpenMPClause.cpp.
References clang::C.
Referenced by clang::OMPClauseReader::readClause().
|
inline |
Gets location of ':' symbol in clause.
Definition at line 3390 of file OpenMPClause.h.
|
inline |
Returns modifier.
Definition at line 3384 of file OpenMPClause.h.
|
inline |
Returns modifier location.
Definition at line 3387 of file OpenMPClause.h.
|
inline |
Gets the name info for specified reduction identifier.
Definition at line 3393 of file OpenMPClause.h.
|
inline |
Gets the nested name specifier.
Definition at line 3396 of file OpenMPClause.h.
|
inline |
Definition at line 3416 of file OpenMPClause.h.
|
inline |
Definition at line 3412 of file OpenMPClause.h.
|
inline |
Definition at line 3408 of file OpenMPClause.h.
|
inline |
Definition at line 3404 of file OpenMPClause.h.
|
inline |
Definition at line 3433 of file OpenMPClause.h.
|
inline |
Definition at line 3428 of file OpenMPClause.h.
|
inline |
Definition at line 3424 of file OpenMPClause.h.
|
inline |
Definition at line 3420 of file OpenMPClause.h.
|
inline |
Definition at line 3478 of file OpenMPClause.h.
References clang::OMPVarListClause< OMPReductionClause >::varlist_begin(), and clang::OMPVarListClause< OMPReductionClause >::varlist_end().
Referenced by used_children().
|
inline |
Definition at line 3482 of file OpenMPClause.h.
References used_children().
|
friend |
Definition at line 3168 of file OpenMPClause.h.