clang 22.0.0git
clang::OMPLastprivateClause Class Referencefinal

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

#include "clang/AST/OpenMPClause.h"

Inheritance diagram for clang::OMPLastprivateClause:
[legend]

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
Public Types inherited from clang::OMPVarListClause< OMPLastprivateClause >
using varlist_iterator
using varlist_const_iterator
using varlist_range
using varlist_const_range
Public Types inherited from clang::OMPClause
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

OpenMPLastprivateModifier getKind () const
 Lastprivate kind.
SourceLocation getKindLoc () const
 Returns the location of the lastprivate kind.
SourceLocation getColonLoc () const
 Returns the location of the ':' symbol, if any.
void setPrivateCopies (ArrayRef< Expr * > PrivateCopies)
 Set list of helper expressions, required for generation of private copies of original lastprivate variables.
helper_expr_const_range private_copies () const
helper_expr_range private_copies ()
helper_expr_const_range source_exprs () const
helper_expr_range source_exprs ()
helper_expr_const_range destination_exprs () const
helper_expr_range destination_exprs ()
helper_expr_const_range assignment_ops () const
helper_expr_range assignment_ops ()
child_range children ()
const_child_range children () const
child_range used_children ()
const_child_range used_children () const
Public Member Functions inherited from clang::OMPVarListClause< OMPLastprivateClause >
unsigned varlist_size () const
bool varlist_empty () const
varlist_range varlist ()
varlist_iterator varlist_begin ()
varlist_iterator varlist_end ()
void setLParenLoc (SourceLocation Loc)
 Sets the location of '('.
SourceLocation getLParenLoc () const
 Returns the location of '('.
Public Member Functions inherited from clang::OMPClause
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
Public Member Functions inherited from clang::OMPClauseWithPostUpdate
const ExprgetPostUpdateExpr () const
 Get post-update expression for the clause.
ExprgetPostUpdateExpr ()
 Get post-update expression for the clause.
Public Member Functions inherited from clang::OMPClauseWithPreInit
const StmtgetPreInitStmt () const
 Get pre-initialization statement for the clause.
StmtgetPreInitStmt ()
 Get pre-initialization statement for the clause.
OpenMPDirectiveKind getCaptureRegion () const
 Get capture region for the stmt in the clause.

Static Public Member Functions

static OMPLastprivateClauseCreate (const ASTContext &C, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc, ArrayRef< Expr * > VL, ArrayRef< Expr * > SrcExprs, ArrayRef< Expr * > DstExprs, ArrayRef< Expr * > AssignmentOps, OpenMPLastprivateModifier LPKind, SourceLocation LPKindLoc, SourceLocation ColonLoc, Stmt *PreInit, Expr *PostUpdate)
 Creates clause with a list of variables VL.
static OMPLastprivateClauseCreateEmpty (const ASTContext &C, unsigned N)
 Creates an empty clause with the place for N variables.
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< OMPLastprivateClause >
 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.
Protected Member Functions inherited from clang::OMPClause
 OMPClause (OpenMPClauseKind K, SourceLocation StartLoc, SourceLocation EndLoc)
Protected Member Functions inherited from clang::OMPClauseWithPostUpdate
 OMPClauseWithPostUpdate (const OMPClause *This)
void setPostUpdateExpr (Expr *S)
 Set pre-initialization statement for the clause.
Protected Member Functions inherited from clang::OMPClauseWithPreInit
 OMPClauseWithPreInit (const OMPClause *This)
void setPreInitStmt (Stmt *S, OpenMPDirectiveKind ThisRegion=llvm::omp::OMPD_unknown)
 Set pre-initialization statement for the clause.

Detailed Description

This represents clause 'lastprivate' in the '#pragma omp ...' directives.

#pragma omp simd lastprivate(a,b)

In this example directive '#pragma omp simd' has clause 'lastprivate' with the variables 'a' and 'b'.

Definition at line 3391 of file OpenMPClause.h.

Member Typedef Documentation

◆ helper_expr_const_iterator

Definition at line 3552 of file OpenMPClause.h.

◆ helper_expr_const_range

Initial value:
llvm::iterator_range<helper_expr_const_iterator>

Definition at line 3554 of file OpenMPClause.h.

◆ helper_expr_iterator

◆ helper_expr_range

Definition at line 3553 of file OpenMPClause.h.

Member Function Documentation

◆ assignment_ops() [1/2]

helper_expr_range clang::OMPLastprivateClause::assignment_ops ( )
inline

Definition at line 3595 of file OpenMPClause.h.

◆ assignment_ops() [2/2]

helper_expr_const_range clang::OMPLastprivateClause::assignment_ops ( ) const
inline

Definition at line 3590 of file OpenMPClause.h.

◆ children() [1/2]

child_range clang::OMPLastprivateClause::children ( )
inline

◆ children() [2/2]

const_child_range clang::OMPLastprivateClause::children ( ) const
inline

Definition at line 3605 of file OpenMPClause.h.

References Children, and children().

◆ classof()

bool clang::OMPLastprivateClause::classof ( const OMPClause * T)
inlinestatic

Definition at line 3617 of file OpenMPClause.h.

References clang::T.

◆ Create()

OMPLastprivateClause * OMPLastprivateClause::Create ( const ASTContext & C,
SourceLocation StartLoc,
SourceLocation LParenLoc,
SourceLocation EndLoc,
ArrayRef< Expr * > VL,
ArrayRef< Expr * > SrcExprs,
ArrayRef< Expr * > DstExprs,
ArrayRef< Expr * > AssignmentOps,
OpenMPLastprivateModifier LPKind,
SourceLocation LPKindLoc,
SourceLocation ColonLoc,
Stmt * PreInit,
Expr * PostUpdate )
static

Creates clause with a list of variables VL.

Parameters
CAST context.
StartLocStarting location of the clause.
LParenLocLocation of '('.
EndLocEnding location of the clause.
VLList of references to the variables.
SrcExprsList of helper expressions for proper generation of assignment operation required for lastprivate clause. This list represents private variables (for arrays, single array element).
DstExprsList of helper expressions for proper generation of assignment operation required for lastprivate clause. This list represents original variables (for arrays, single array element).
AssignmentOpsList of helper expressions that represents assignment operation:
DstExprs = SrcExprs;
Required for proper codegen of final assignment performed by the lastprivate clause.
LPKindLastprivate kind, e.g. 'conditional'.
LPKindLocLocation of the lastprivate kind.
ColonLocLocation of the ':' symbol if lastprivate kind is used.
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 516 of file OpenMPClause.cpp.

References clang::C.

Referenced by clang::SemaOpenMP::ActOnOpenMPLastprivateClause().

◆ CreateEmpty()

OMPLastprivateClause * OMPLastprivateClause::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 534 of file OpenMPClause.cpp.

References clang::C.

Referenced by clang::OMPClauseReader::readClause().

◆ destination_exprs() [1/2]

helper_expr_range clang::OMPLastprivateClause::destination_exprs ( )
inline

Definition at line 3585 of file OpenMPClause.h.

◆ destination_exprs() [2/2]

helper_expr_const_range clang::OMPLastprivateClause::destination_exprs ( ) const
inline

Definition at line 3580 of file OpenMPClause.h.

◆ getColonLoc()

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

Returns the location of the ':' symbol, if any.

Definition at line 3549 of file OpenMPClause.h.

◆ getKind()

OpenMPLastprivateModifier clang::OMPLastprivateClause::getKind ( ) const
inline

Lastprivate kind.

Definition at line 3545 of file OpenMPClause.h.

◆ getKindLoc()

SourceLocation clang::OMPLastprivateClause::getKindLoc ( ) const
inline

Returns the location of the lastprivate kind.

Definition at line 3547 of file OpenMPClause.h.

◆ private_copies() [1/2]

helper_expr_range clang::OMPLastprivateClause::private_copies ( )
inline

Definition at line 3566 of file OpenMPClause.h.

◆ private_copies() [2/2]

helper_expr_const_range clang::OMPLastprivateClause::private_copies ( ) const
inline

Definition at line 3561 of file OpenMPClause.h.

◆ setPrivateCopies()

void OMPLastprivateClause::setPrivateCopies ( ArrayRef< Expr * > PrivateCopies)

Set list of helper expressions, required for generation of private copies of original lastprivate variables.

Definition at line 489 of file OpenMPClause.cpp.

References clang::OMPVarListClause< OMPLastprivateClause >::varlist_end(), and clang::OMPVarListClause< OMPLastprivateClause >::varlist_size().

◆ source_exprs() [1/2]

helper_expr_range clang::OMPLastprivateClause::source_exprs ( )
inline

Definition at line 3576 of file OpenMPClause.h.

◆ source_exprs() [2/2]

helper_expr_const_range clang::OMPLastprivateClause::source_exprs ( ) const
inline

Definition at line 3571 of file OpenMPClause.h.

◆ used_children() [1/2]

child_range clang::OMPLastprivateClause::used_children ( )
inline

Definition at line 3610 of file OpenMPClause.h.

◆ used_children() [2/2]

const_child_range clang::OMPLastprivateClause::used_children ( ) const
inline

Definition at line 3613 of file OpenMPClause.h.

◆ OMPClauseReader

friend class OMPClauseReader
friend

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