clang  6.0.0svn
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::OMPInReductionClause Class Referencefinal

This represents clause 'in_reduction' in the '#pragma omp task' directives. More...

#include "clang/AST/OpenMPClause.h"

Inheritance diagram for clang::OMPInReductionClause:
Inheritance graph
[legend]
Collaboration diagram for clang::OMPInReductionClause:
Collaboration graph
[legend]

Public Types

typedef MutableArrayRef< Expr * >::iterator helper_expr_iterator
 
typedef ArrayRef< const Expr * >::iterator helper_expr_const_iterator
 
typedef llvm::iterator_range< helper_expr_iteratorhelper_expr_range
 
typedef llvm::iterator_range< helper_expr_const_iteratorhelper_expr_const_range
 
- Public Types inherited from clang::OMPVarListClause< OMPInReductionClause >
typedef MutableArrayRef< Expr *>::iterator varlist_iterator
 
typedef ArrayRef< const Expr *>::iterator varlist_const_iterator
 
typedef llvm::iterator_range< varlist_iteratorvarlist_range
 
typedef llvm::iterator_range< varlist_const_iteratorvarlist_const_range
 
- Public Types inherited from clang::OMPClause
typedef StmtIterator child_iterator
 
typedef ConstStmtIterator const_child_iterator
 
typedef llvm::iterator_range< child_iteratorchild_range
 
typedef llvm::iterator_range< const_child_iteratorconst_child_range
 

Public Member Functions

SourceLocation getColonLoc () const
 Gets location of ':' symbol in clause. More...
 
const DeclarationNameInfogetNameInfo () 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 ()
 
helper_expr_const_range taskgroup_descriptors () const
 
helper_expr_range taskgroup_descriptors ()
 
child_range children ()
 
- Public Member Functions inherited from clang::OMPVarListClause< OMPInReductionClause >
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...
 
- Public Member Functions inherited from clang::OMPClause
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
 
- Public Member Functions inherited from clang::OMPClauseWithPostUpdate
const ExprgetPostUpdateExpr () const
 Get post-update expression for the clause. More...
 
ExprgetPostUpdateExpr ()
 Get post-update expression for the clause. More...
 
- Public Member Functions inherited from clang::OMPClauseWithPreInit
const StmtgetPreInitStmt () const
 Get pre-initialization statement for the clause. More...
 
StmtgetPreInitStmt ()
 Get pre-initialization statement for the clause. More...
 
OpenMPDirectiveKind getCaptureRegion ()
 Get capture region for the stmt in the clause. More...
 

Static Public Member Functions

static OMPInReductionClauseCreate (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, ArrayRef< Expr *> TaskgroupDescriptors, Stmt *PreInit, Expr *PostUpdate)
 Creates clause with a list of variables VL. More...
 
static OMPInReductionClauseCreateEmpty (const ASTContext &C, unsigned N)
 Creates an empty clause with the place for N variables. More...
 
static bool classof (const OMPClause *T)
 
- Static Public Member Functions inherited from clang::OMPClause
static bool classof (const OMPClause *)
 
- Static Public Member Functions inherited from clang::OMPClauseWithPostUpdate
static OMPClauseWithPostUpdateget (OMPClause *C)
 
static const OMPClauseWithPostUpdateget (const OMPClause *C)
 
- Static Public Member Functions inherited from clang::OMPClauseWithPreInit
static OMPClauseWithPreInitget (OMPClause *C)
 
static const OMPClauseWithPreInitget (const OMPClause *C)
 

Friends

class OMPClauseReader
 

Additional Inherited Members

- Protected Member Functions inherited from clang::OMPVarListClause< OMPInReductionClause >
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...
 
- Protected Member Functions inherited from clang::OMPClause
 OMPClause (OpenMPClauseKind K, SourceLocation StartLoc, SourceLocation EndLoc)
 
- Protected Member Functions inherited from clang::OMPClauseWithPostUpdate
void setPostUpdateExpr (Expr *S)
 Set pre-initialization statement for the clause. More...
 
 OMPClauseWithPostUpdate (const OMPClause *This)
 
- Protected Member Functions inherited from clang::OMPClauseWithPreInit
void setPreInitStmt (Stmt *S, OpenMPDirectiveKind ThisRegion=OMPD_unknown)
 Set pre-initialization statement for the clause. More...
 
 OMPClauseWithPreInit (const OMPClause *This)
 

Detailed Description

This represents clause 'in_reduction' in the '#pragma omp task' directives.

#pragma omp task in_reduction(+:a,b)

In this example directive '#pragma omp task' has clause 'in_reduction' with operator '+' and the variables 'a' and 'b'.

Definition at line 2112 of file OpenMPClause.h.

Member Typedef Documentation

◆ helper_expr_const_iterator

Definition at line 2286 of file OpenMPClause.h.

◆ helper_expr_const_range

Definition at line 2289 of file OpenMPClause.h.

◆ helper_expr_iterator

Definition at line 2285 of file OpenMPClause.h.

◆ helper_expr_range

Definition at line 2287 of file OpenMPClause.h.

Member Function Documentation

◆ children()

child_range clang::OMPInReductionClause::children ( )
inline

Definition at line 2326 of file OpenMPClause.h.

◆ classof()

static bool clang::OMPInReductionClause::classof ( const OMPClause T)
inlinestatic

Definition at line 2331 of file OpenMPClause.h.

References clang::OMPClause::getClauseKind().

◆ Create()

OMPInReductionClause * OMPInReductionClause::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,
ArrayRef< Expr *>  TaskgroupDescriptors,
Stmt PreInit,
Expr PostUpdate 
)
static

Creates clause with a list of variables VL.

Parameters
StartLocStarting location of the clause.
LParenLocLocation of '('.
ColonLocLocation of ':'.
EndLocEnding location of the clause.
VLThe variables in the clause.
QualifierLocThe nested-name qualifier with location information
NameInfoThe full name info for reduction identifier.
PrivatesList of helper expressions for proper generation of private copies.
LHSExprsList of helper expressions for proper generation of assignment operation required for copyprivate clause. This list represents LHSs of the reduction expressions.
RHSExprsList 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.
ReductionOpsList of helper expressions that represents reduction expressions:
LHSExprs binop RHSExprs;
operator binop(LHSExpr, RHSExpr);
<CutomReduction>(LHSExpr, RHSExpr);
Required for proper codegen of final reduction operation performed by the reduction clause.
TaskgroupDescriptorsList of helper taskgroup descriptors for corresponding items in parent taskgroup task_reduction clause.
PreInitStatement that must be executed before entering the OpenMP region with this clause.
PostUpdateExpression that must be executed after exit from the OpenMP region with this clause.

Definition at line 606 of file OpenMPClause.cpp.

References clang::ASTContext::Allocate(), clang::OMPClauseWithPostUpdate::setPostUpdateExpr(), clang::OMPClauseWithPreInit::setPreInitStmt(), and clang::OMPVarListClause< T >::setVarRefs().

Referenced by clang::Sema::ActOnOpenMPInReductionClause().

◆ CreateEmpty()

OMPInReductionClause * OMPInReductionClause::CreateEmpty ( const ASTContext C,
unsigned  N 
)
static

Creates an empty clause with the place for N variables.

Parameters
CAST context.
NThe number of variables.

Definition at line 627 of file OpenMPClause.cpp.

References clang::ASTContext::Allocate().

◆ getColonLoc()

SourceLocation clang::OMPInReductionClause::getColonLoc ( ) const
inline

Gets location of ':' symbol in clause.

Definition at line 2279 of file OpenMPClause.h.

References ColonLoc.

Referenced by clang::OMPClauseWriter::VisitOMPClauseWithPostUpdate().

◆ getNameInfo()

const DeclarationNameInfo& clang::OMPInReductionClause::getNameInfo ( ) const
inline

Gets the name info for specified reduction identifier.

Definition at line 2281 of file OpenMPClause.h.

Referenced by clang::OMPClauseWriter::VisitOMPClauseWithPostUpdate().

◆ getQualifierLoc()

NestedNameSpecifierLoc clang::OMPInReductionClause::getQualifierLoc ( ) const
inline

Gets the nested name specifier.

Definition at line 2283 of file OpenMPClause.h.

Referenced by clang::OMPClauseWriter::VisitOMPClauseWithPostUpdate().

◆ lhs_exprs() [1/2]

helper_expr_const_range clang::OMPInReductionClause::lhs_exprs ( ) const
inline

◆ lhs_exprs() [2/2]

helper_expr_range clang::OMPInReductionClause::lhs_exprs ( )
inline

Definition at line 2300 of file OpenMPClause.h.

◆ privates() [1/2]

helper_expr_const_range clang::OMPInReductionClause::privates ( ) const
inline

◆ privates() [2/2]

helper_expr_range clang::OMPInReductionClause::privates ( )
inline

Definition at line 2294 of file OpenMPClause.h.

References clang::getPrivates().

◆ reduction_ops() [1/2]

helper_expr_const_range clang::OMPInReductionClause::reduction_ops ( ) const
inline

◆ reduction_ops() [2/2]

helper_expr_range clang::OMPInReductionClause::reduction_ops ( )
inline

Definition at line 2313 of file OpenMPClause.h.

◆ rhs_exprs() [1/2]

helper_expr_const_range clang::OMPInReductionClause::rhs_exprs ( ) const
inline

◆ rhs_exprs() [2/2]

helper_expr_range clang::OMPInReductionClause::rhs_exprs ( )
inline

Definition at line 2306 of file OpenMPClause.h.

◆ taskgroup_descriptors() [1/2]

helper_expr_const_range clang::OMPInReductionClause::taskgroup_descriptors ( ) const
inline

◆ taskgroup_descriptors() [2/2]

helper_expr_range clang::OMPInReductionClause::taskgroup_descriptors ( )
inline

Definition at line 2321 of file OpenMPClause.h.

Friends And Related Function Documentation

◆ OMPClauseReader

friend class OMPClauseReader
friend

Definition at line 2118 of file OpenMPClause.h.


The documentation for this class was generated from the following files: