clang
3.9.0
|
This represents clause 'reduction' in the '#pragma omp ...' directives. More...
#include <OpenMPClause.h>
Public Types | |
typedef MutableArrayRef< Expr * > ::iterator | helper_expr_iterator |
typedef ArrayRef< const Expr * > ::iterator | helper_expr_const_iterator |
typedef llvm::iterator_range < helper_expr_iterator > | helper_expr_range |
typedef llvm::iterator_range < helper_expr_const_iterator > | helper_expr_const_range |
![]() | |
typedef MutableArrayRef< Expr * > ::iterator | varlist_iterator |
typedef ArrayRef< const Expr * > ::iterator | varlist_const_iterator |
typedef llvm::iterator_range < varlist_iterator > | varlist_range |
typedef llvm::iterator_range < varlist_const_iterator > | varlist_const_range |
![]() | |
typedef StmtIterator | child_iterator |
typedef ConstStmtIterator | const_child_iterator |
typedef llvm::iterator_range < child_iterator > | child_range |
typedef llvm::iterator_range < const_child_iterator > | const_child_range |
Public Member Functions | |
SourceLocation | getColonLoc () const |
Gets location of ':' symbol in clause. More... | |
const DeclarationNameInfo & | getNameInfo () const |
Gets the name info for specified reduction identifier. More... | |
NestedNameSpecifierLoc | getQualifierLoc () const |
Gets the nested name specifier. More... | |
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 () |
child_range | children () |
![]() | |
ArrayRef< const Expr * > | getVarRefs () const |
Fetches list of all variables in the clause. More... | |
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 '('. More... | |
SourceLocation | getLParenLoc () const |
Returns the location of '('. More... | |
![]() | |
SourceLocation | getLocStart () const |
Returns the starting location of the clause. More... | |
SourceLocation | getLocEnd () const |
Returns the ending location of the clause. More... | |
void | setLocStart (SourceLocation Loc) |
Sets the starting location of the clause. More... | |
void | setLocEnd (SourceLocation Loc) |
Sets the ending location of the clause. More... | |
OpenMPClauseKind | getClauseKind () const |
Returns kind of OpenMP clause (private, shared, reduction, etc.). More... | |
bool | isImplicit () const |
child_range | children () |
const_child_range | children () const |
![]() | |
const Expr * | getPostUpdateExpr () const |
Get post-update expression for the clause. More... | |
Expr * | getPostUpdateExpr () |
Get post-update expression for the clause. More... | |
![]() | |
const Stmt * | getPreInitStmt () const |
Get pre-initialization statement for the clause. More... | |
Stmt * | getPreInitStmt () |
Get pre-initialization statement for the clause. More... | |
Static Public Member Functions | |
static OMPReductionClause * | Create (const ASTContext &C, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc, ArrayRef< Expr * > VL, NestedNameSpecifierLoc QualifierLoc, const DeclarationNameInfo &NameInfo, ArrayRef< Expr * > Privates, ArrayRef< Expr * > LHSExprs, ArrayRef< Expr * > RHSExprs, ArrayRef< Expr * > ReductionOps, Stmt *PreInit, Expr *PostUpdate) |
Creates clause with a list of variables VL. More... | |
static OMPReductionClause * | CreateEmpty (const ASTContext &C, unsigned N) |
Creates an empty clause with the place for N variables. More... | |
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 | |
![]() | |
MutableArrayRef< Expr * > | getVarRefs () |
Fetches list of variables associated with this clause. More... | |
void | setVarRefs (ArrayRef< Expr * > VL) |
Sets the list of variables for this clause. More... | |
OMPVarListClause (OpenMPClauseKind K, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc, unsigned N) | |
Build a clause with N variables. More... | |
![]() | |
OMPClause (OpenMPClauseKind K, SourceLocation StartLoc, SourceLocation EndLoc) | |
![]() | |
void | setPostUpdateExpr (Expr *S) |
Set pre-initialization statement for the clause. More... | |
OMPClauseWithPostUpdate (const OMPClause *This) | |
![]() | |
void | setPreInitStmt (Stmt *S) |
Set pre-initialization statement for the clause. More... | |
OMPClauseWithPreInit (const OMPClause *This) | |
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 1666 of file OpenMPClause.h.
typedef ArrayRef<const Expr *>::iterator clang::OMPReductionClause::helper_expr_const_iterator |
Definition at line 1827 of file OpenMPClause.h.
typedef llvm::iterator_range<helper_expr_const_iterator> clang::OMPReductionClause::helper_expr_const_range |
Definition at line 1830 of file OpenMPClause.h.
Definition at line 1826 of file OpenMPClause.h.
typedef llvm::iterator_range<helper_expr_iterator> clang::OMPReductionClause::helper_expr_range |
Definition at line 1828 of file OpenMPClause.h.
|
inline |
Definition at line 1859 of file OpenMPClause.h.
References clang::OMPVarListClause< OMPReductionClause >::varlist_begin(), and clang::OMPVarListClause< OMPReductionClause >::varlist_end().
Definition at line 1864 of file OpenMPClause.h.
References clang::OMPClause::getClauseKind().
|
static |
Creates clause with a list of variables VL.
StartLoc | Starting location of the clause. |
LParenLoc | Location of '('. |
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);
|
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 478 of file OpenMPClause.cpp.
References clang::ASTContext::Allocate(), clang::OMPClauseWithPostUpdate::setPostUpdateExpr(), clang::OMPClauseWithPreInit::setPreInitStmt(), 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. |
Definition at line 498 of file OpenMPClause.cpp.
References clang::ASTContext::Allocate().
Referenced by clang::OMPClauseReader::readClause().
|
inline |
Gets location of ':' symbol in clause.
Definition at line 1820 of file OpenMPClause.h.
References ColonLoc.
|
inline |
Gets the name info for specified reduction identifier.
Definition at line 1822 of file OpenMPClause.h.
|
inline |
Gets the nested name specifier.
Definition at line 1824 of file OpenMPClause.h.
|
inline |
Definition at line 1838 of file OpenMPClause.h.
References clang::begin(), and clang::end().
|
inline |
Definition at line 1841 of file OpenMPClause.h.
References clang::begin(), and clang::end().
|
inline |
Definition at line 1832 of file OpenMPClause.h.
References clang::begin(), clang::end(), and clang::getPrivates().
|
inline |
Definition at line 1835 of file OpenMPClause.h.
References clang::begin(), clang::end(), and clang::getPrivates().
|
inline |
Definition at line 1850 of file OpenMPClause.h.
References clang::begin(), and clang::end().
|
inline |
Definition at line 1854 of file OpenMPClause.h.
References clang::begin(), and clang::end().
|
inline |
Definition at line 1844 of file OpenMPClause.h.
References clang::begin(), and clang::end().
|
inline |
Definition at line 1847 of file OpenMPClause.h.
References clang::begin(), and clang::end().
|
friend |
Definition at line 1672 of file OpenMPClause.h.