class OMPLastprivateClause

Declaration

class OMPLastprivateClause : public OMPVarListClause,
                             public OMPClauseWithPostUpdate,
                             private TrailingObjects { /* full declaration omitted */ };

Description

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

Declared at: clang/include/clang/AST/OpenMPClause.h:2728

Inherits from: OMPVarListClause, OMPClauseWithPostUpdate, TrailingObjects

Member Variables

private clang::OpenMPLastprivateModifier LPKind
Optional lastprivate kind, e.g. 'conditional', if specified by user.
private clang::SourceLocation LPKindLoc
Optional location of the lasptrivate kind, if specified by user.
private clang::SourceLocation ColonLoc
Optional colon location, if specified by user.

Method Overview

  • public static clang::OMPLastprivateClause * Create(const clang::ASTContext & C, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc, ArrayRef<clang::Expr *> VL, ArrayRef<clang::Expr *> SrcExprs, ArrayRef<clang::Expr *> DstExprs, ArrayRef<clang::Expr *> AssignmentOps, clang::OpenMPLastprivateModifier LPKind, clang::SourceLocation LPKindLoc, clang::SourceLocation ColonLoc, clang::Stmt * PreInit, clang::Expr * PostUpdate)
  • public static clang::OMPLastprivateClause * CreateEmpty(const clang::ASTContext & C, unsigned int N)
  • private OMPLastprivateClause(unsigned int N)
  • private OMPLastprivateClause(clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc, clang::OpenMPLastprivateModifier LPKind, clang::SourceLocation LPKindLoc, clang::SourceLocation ColonLoc, unsigned int N)
  • public clang::OMPLastprivateClause::helper_expr_range assignment_ops()
  • public clang::OMPLastprivateClause::helper_expr_const_range assignment_ops() const
  • public clang::OMPClause::const_child_range children() const
  • public clang::OMPClause::child_range children()
  • public static bool classof(const clang::OMPClause * T)
  • public clang::OMPLastprivateClause::helper_expr_range destination_exprs()
  • public clang::OMPLastprivateClause::helper_expr_const_range destination_exprs() const
  • private MutableArrayRef<clang::Expr *> getAssignmentOps()
  • private ArrayRef<const clang::Expr *> getAssignmentOps() const
  • public clang::SourceLocation getColonLoc() const
  • private MutableArrayRef<clang::Expr *> getDestinationExprs()
  • private ArrayRef<const clang::Expr *> getDestinationExprs() const
  • public clang::OpenMPLastprivateModifier getKind() const
  • public clang::SourceLocation getKindLoc() const
  • private ArrayRef<const clang::Expr *> getPrivateCopies() const
  • private MutableArrayRef<clang::Expr *> getPrivateCopies()
  • private MutableArrayRef<clang::Expr *> getSourceExprs()
  • private ArrayRef<const clang::Expr *> getSourceExprs() const
  • public clang::OMPLastprivateClause::helper_expr_const_range private_copies() const
  • public clang::OMPLastprivateClause::helper_expr_range private_copies()
  • private void setAssignmentOps(ArrayRef<clang::Expr *> AssignmentOps)
  • private void setColonLoc(clang::SourceLocation Loc)
  • private void setDestinationExprs(ArrayRef<clang::Expr *> DstExprs)
  • private void setKind(clang::OpenMPLastprivateModifier Kind)
  • private void setKindLoc(clang::SourceLocation Loc)
  • public void setPrivateCopies(ArrayRef<clang::Expr *> PrivateCopies)
  • private void setSourceExprs(ArrayRef<clang::Expr *> SrcExprs)
  • public clang::OMPLastprivateClause::helper_expr_range source_exprs()
  • public clang::OMPLastprivateClause::helper_expr_const_range source_exprs() const
  • public clang::OMPClause::child_range used_children()
  • public clang::OMPClause::const_child_range used_children() const

Inherited from OMPClauseWithPostUpdate:

Inherited from OMPClauseWithPreInit:

Methods

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

Description

Creates clause with a list of variables \a VL. Required for proper codegen of final assignment performed by the lastprivate clause.

Declared at: clang/include/clang/AST/OpenMPClause.h:2869

Parameters

const clang::ASTContext& C
AST context.
clang::SourceLocation StartLoc
Starting location of the clause.
clang::SourceLocation LParenLoc
Location of '('.
clang::SourceLocation EndLoc
Ending location of the clause.
ArrayRef<clang::Expr*> VL
List of references to the variables.
ArrayRef<clang::Expr*> SrcExprs
List of helper expressions for proper generation of assignment operation required for lastprivate clause. This list represents private variables (for arrays, single array element).
ArrayRef<clang::Expr*> DstExprs
List of helper expressions for proper generation of assignment operation required for lastprivate clause. This list represents original variables (for arrays, single array element).
ArrayRef<clang::Expr*> AssignmentOps
List of helper expressions that represents assignment operation:
clang::OpenMPLastprivateModifier LPKind
Lastprivate kind, e.g. 'conditional'.
clang::SourceLocation LPKindLoc
Location of the lastprivate kind.
clang::SourceLocation ColonLoc
Location of the ':' symbol if lastprivate kind is used.
clang::Stmt* PreInit
Statement that must be executed before entering the OpenMP region with this clause.
clang::Expr* PostUpdate
Expression that must be executed after exit from the OpenMP region with this clause.

static clang::OMPLastprivateClause* CreateEmpty(
    const clang::ASTContext& C,
    unsigned int N)

Description

Creates an empty clause with the place for \a N variables.

Declared at: clang/include/clang/AST/OpenMPClause.h:2879

Parameters

const clang::ASTContext& C
AST context.
unsigned int N
The number of variables.

OMPLastprivateClause(unsigned int N)

Description

Build an empty clause.

Declared at: clang/include/clang/AST/OpenMPClause.h:2777

Parameters

unsigned int N
Number of variables.

OMPLastprivateClause(
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc,
    clang::OpenMPLastprivateModifier LPKind,
    clang::SourceLocation LPKindLoc,
    clang::SourceLocation ColonLoc,
    unsigned int N)

Description

Build clause with number of variables \a N.

Declared at: clang/include/clang/AST/OpenMPClause.h:2765

Parameters

clang::SourceLocation StartLoc
Starting location of the clause.
clang::SourceLocation LParenLoc
Location of '('.
clang::SourceLocation EndLoc
Ending location of the clause.
clang::OpenMPLastprivateModifier LPKind
clang::SourceLocation LPKindLoc
clang::SourceLocation ColonLoc
unsigned int N
Number of the variables in the clause.

clang::OMPLastprivateClause::helper_expr_range
assignment_ops()

Declared at: clang/include/clang/AST/OpenMPClause.h:2932

clang::OMPLastprivateClause::
    helper_expr_const_range
    assignment_ops() const

Declared at: clang/include/clang/AST/OpenMPClause.h:2927

clang::OMPClause::const_child_range children()
    const

Declared at: clang/include/clang/AST/OpenMPClause.h:2942

clang::OMPClause::child_range children()

Declared at: clang/include/clang/AST/OpenMPClause.h:2937

static bool classof(const clang::OMPClause* T)

Declared at: clang/include/clang/AST/OpenMPClause.h:2954

Parameters

const clang::OMPClause* T

clang::OMPLastprivateClause::helper_expr_range
destination_exprs()

Declared at: clang/include/clang/AST/OpenMPClause.h:2922

clang::OMPLastprivateClause::
    helper_expr_const_range
    destination_exprs() const

Declared at: clang/include/clang/AST/OpenMPClause.h:2917

MutableArrayRef<clang::Expr*> getAssignmentOps()

Description

Get the list of helper assignment expressions.

Declared at: clang/include/clang/AST/OpenMPClause.h:2826

ArrayRef<const clang::Expr*> getAssignmentOps()
    const

Declared at: clang/include/clang/AST/OpenMPClause.h:2829

clang::SourceLocation getColonLoc() const

Description

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

Declared at: clang/include/clang/AST/OpenMPClause.h:2886

MutableArrayRef<clang::Expr*>
getDestinationExprs()

Description

Get the list of helper destination expressions.

Declared at: clang/include/clang/AST/OpenMPClause.h:2813

ArrayRef<const clang::Expr*> getDestinationExprs()
    const

Declared at: clang/include/clang/AST/OpenMPClause.h:2816

clang::OpenMPLastprivateModifier getKind() const

Description

Lastprivate kind.

Declared at: clang/include/clang/AST/OpenMPClause.h:2882

clang::SourceLocation getKindLoc() const

Description

Returns the location of the lastprivate kind.

Declared at: clang/include/clang/AST/OpenMPClause.h:2884

ArrayRef<const clang::Expr*> getPrivateCopies()
    const

Declared at: clang/include/clang/AST/OpenMPClause.h:2788

MutableArrayRef<clang::Expr*> getPrivateCopies()

Description

Get the list of helper expressions for initialization of private copies for lastprivate variables.

Declared at: clang/include/clang/AST/OpenMPClause.h:2785

MutableArrayRef<clang::Expr*> getSourceExprs()

Description

Get the list of helper source expressions.

Declared at: clang/include/clang/AST/OpenMPClause.h:2799

ArrayRef<const clang::Expr*> getSourceExprs()
    const

Declared at: clang/include/clang/AST/OpenMPClause.h:2802

clang::OMPLastprivateClause::
    helper_expr_const_range
    private_copies() const

Declared at: clang/include/clang/AST/OpenMPClause.h:2898

clang::OMPLastprivateClause::helper_expr_range
private_copies()

Declared at: clang/include/clang/AST/OpenMPClause.h:2903

void setAssignmentOps(
    ArrayRef<clang::Expr*> AssignmentOps)

Description

Set list of helper assignment expressions, required for proper codegen of the clause. These expressions are assignment expressions that assign private copy of the variable to original variable.

Declared at: clang/include/clang/AST/OpenMPClause.h:2823

Parameters

ArrayRef<clang::Expr*> AssignmentOps

void setColonLoc(clang::SourceLocation Loc)

Description

Sets colon symbol location.

Declared at: clang/include/clang/AST/OpenMPClause.h:2838

Parameters

clang::SourceLocation Loc

void setDestinationExprs(
    ArrayRef<clang::Expr*> DstExprs)

Description

Set list of helper expressions, required for proper codegen of the clause. These expressions represent original variables (for arrays, single array element) in the final assignment statement performed by the lastprivate clause.

Declared at: clang/include/clang/AST/OpenMPClause.h:2810

Parameters

ArrayRef<clang::Expr*> DstExprs

void setKind(
    clang::OpenMPLastprivateModifier Kind)

Description

Sets lastprivate kind.

Declared at: clang/include/clang/AST/OpenMPClause.h:2834

Parameters

clang::OpenMPLastprivateModifier Kind

void setKindLoc(clang::SourceLocation Loc)

Description

Sets location of the lastprivate kind.

Declared at: clang/include/clang/AST/OpenMPClause.h:2836

Parameters

clang::SourceLocation Loc

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

Description

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

Declared at: clang/include/clang/AST/OpenMPClause.h:2896

Parameters

ArrayRef<clang::Expr*> PrivateCopies

void setSourceExprs(
    ArrayRef<clang::Expr*> SrcExprs)

Description

Set list of helper expressions, required for proper codegen of the clause. These expressions represent private variables (for arrays, single array element) in the final assignment statement performed by the lastprivate clause.

Declared at: clang/include/clang/AST/OpenMPClause.h:2796

Parameters

ArrayRef<clang::Expr*> SrcExprs

clang::OMPLastprivateClause::helper_expr_range
source_exprs()

Declared at: clang/include/clang/AST/OpenMPClause.h:2913

clang::OMPLastprivateClause::
    helper_expr_const_range
    source_exprs() const

Declared at: clang/include/clang/AST/OpenMPClause.h:2908

clang::OMPClause::child_range used_children()

Declared at: clang/include/clang/AST/OpenMPClause.h:2947

clang::OMPClause::const_child_range
used_children() const

Declared at: clang/include/clang/AST/OpenMPClause.h:2950