clang  6.0.0svn
Public Member Functions | Static Public Member Functions | Friends | List of all members
OMPMapClause Class Referencefinal

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

#include "clang/AST/OpenMPClause.h"

Inheritance diagram for OMPMapClause:
Inheritance graph
[legend]
Collaboration diagram for OMPMapClause:
Collaboration graph
[legend]

Public Member Functions

OpenMPMapClauseKind getMapType () const LLVM_READONLY
 Fetches mapping kind for the clause. More...
 
bool isImplicitMapType () const LLVM_READONLY
 Is this an implicit map type? We have to capture 'IsMapTypeImplicit' from the parser for more informative error messages. More...
 
OpenMPMapClauseKind getMapTypeModifier () const LLVM_READONLY
 Fetches the map type modifier for the clause. More...
 
SourceLocation getMapLoc () const LLVM_READONLY
 Fetches location of clause mapping kind. More...
 
SourceLocation getColonLoc () const
 Get colon location. More...
 
child_range children ()
 
- Public Member Functions inherited from OMPMappableExprListClause< OMPMapClause >
unsigned getUniqueDeclarationsNum () const
 Return the number of unique base declarations in this clause. More...
 
unsigned getTotalComponentListNum () const
 Return the number of lists derived from the clause expressions. More...
 
unsigned getTotalComponentsNum () const
 Return the total number of components in all lists derived from the clause. More...
 
const_component_lists_iterator component_lists_begin () const
 Iterators for all component lists. More...
 
const_component_lists_iterator component_lists_end () const
 
const_component_lists_range component_lists () const
 
const_component_lists_iterator decl_component_lists_begin (const ValueDecl *VD) const
 Iterators for component lists associated with the provided declaration. More...
 
const_component_lists_iterator decl_component_lists_end () const
 
const_component_lists_range decl_component_lists (const ValueDecl *VD) const
 
const_all_decls_range all_decls () const
 
const_all_num_lists_range all_num_lists () const
 
const_all_lists_sizes_range all_lists_sizes () const
 
const_all_components_range all_components () const
 

Static Public Member Functions

static OMPMapClauseCreate (const ASTContext &C, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc, ArrayRef< Expr *> Vars, ArrayRef< ValueDecl *> Declarations, MappableExprComponentListsRef ComponentLists, OpenMPMapClauseKind TypeModifier, OpenMPMapClauseKind Type, bool TypeIsImplicit, SourceLocation TypeLoc)
 Creates clause with a list of variables VL. More...
 
static OMPMapClauseCreateEmpty (const ASTContext &C, unsigned NumVars, unsigned NumUniqueDeclarations, unsigned NumComponentLists, unsigned NumComponents)
 Creates an empty clause with the place for for NumVars original expressions, NumUniqueDeclarations declarations, lists, and NumComponents expression components. More...
 
static bool classof (const OMPClause *T)
 

Friends

class OMPClauseReader
 

Additional Inherited Members

- Public Types inherited from OMPMappableExprListClause< OMPMapClause >
typedef llvm::iterator_range< const_component_lists_iterator > const_component_lists_range
 
typedef ArrayRef< ValueDecl *>::iterator const_all_decls_iterator
 Iterators to access all the declarations, number of lists, list sizes, and components. More...
 
typedef llvm::iterator_range< const_all_decls_iteratorconst_all_decls_range
 
typedef ArrayRef< unsigned >::iterator const_all_num_lists_iterator
 
typedef llvm::iterator_range< const_all_num_lists_iteratorconst_all_num_lists_range
 
typedef ArrayRef< unsigned >::iterator const_all_lists_sizes_iterator
 
typedef llvm::iterator_range< const_all_lists_sizes_iteratorconst_all_lists_sizes_range
 
typedef ArrayRef< MappableComponent >::iterator const_all_components_iterator
 
typedef llvm::iterator_range< const_all_components_iteratorconst_all_components_range
 
- Public Types inherited from OMPClauseMappableExprCommon
typedef SmallVector< MappableComponent, 8 > MappableExprComponentList
 
typedef ArrayRef< MappableComponentMappableExprComponentListRef
 
typedef SmallVector< MappableExprComponentList, 8 > MappableExprComponentLists
 
typedef ArrayRef< MappableExprComponentListMappableExprComponentListsRef
 
- Protected Member Functions inherited from OMPMappableExprListClause< OMPMapClause >
MutableArrayRef< ValueDecl *> getUniqueDeclsRef ()
 Get the unique declarations that are in the trailing objects of the class. More...
 
ArrayRef< ValueDecl *> getUniqueDeclsRef () const
 Get the unique declarations that are in the trailing objects of the class. More...
 
void setUniqueDecls (ArrayRef< ValueDecl * > UDs)
 Set the unique declarations that are in the trailing objects of the class. More...
 
MutableArrayRef< unsigned > getDeclNumListsRef ()
 Get the number of lists per declaration that are in the trailing objects of the class. More...
 
ArrayRef< unsigned > getDeclNumListsRef () const
 Get the number of lists per declaration that are in the trailing objects of the class. More...
 
void setDeclNumLists (ArrayRef< unsigned > DNLs)
 Set the number of lists per declaration that are in the trailing objects of the class. More...
 
MutableArrayRef< unsigned > getComponentListSizesRef ()
 Get the cumulative component lists sizes that are in the trailing objects of the class. More...
 
ArrayRef< unsigned > getComponentListSizesRef () const
 Get the cumulative component lists sizes that are in the trailing objects of the class. More...
 
void setComponentListSizes (ArrayRef< unsigned > CLSs)
 Set the cumulative component lists sizes that are in the trailing objects of the class. More...
 
MutableArrayRef< MappableComponentgetComponentsRef ()
 Get the components that are in the trailing objects of the class. More...
 
ArrayRef< MappableComponentgetComponentsRef () const
 Get the components that are in the trailing objects of the class. More...
 
void setComponents (ArrayRef< MappableComponent > Components, ArrayRef< unsigned > CLSs)
 Set the components that are in the trailing objects of the class. More...
 
void setClauseInfo (ArrayRef< ValueDecl * > Declarations, MappableExprComponentListsRef ComponentLists)
 Fill the clause information from the list of declarations and associated component lists. More...
 
 OMPMappableExprListClause (OpenMPClauseKind K, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc, unsigned NumVars, unsigned NumUniqueDeclarations, unsigned NumComponentLists, unsigned NumComponents)
 Build a clause for NumUniqueDeclarations declarations, NumComponentLists total component lists, and NumComponents total components. More...
 
- Static Protected Member Functions inherited from OMPClauseMappableExprCommon
static unsigned getComponentsTotalNumber (MappableExprComponentListsRef ComponentLists)
 
static unsigned getUniqueDeclarationsTotalNumber (ArrayRef< ValueDecl *> Declarations)
 

Detailed Description

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

#pragma omp target map(a,b)

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

Definition at line 3752 of file OpenMPClause.h.

Member Function Documentation

◆ children()

child_range OMPMapClause::children ( )
inline

Definition at line 3913 of file OpenMPClause.h.

◆ classof()

static bool OMPMapClause::classof ( const OMPClause T)
inlinestatic

Definition at line 3909 of file OpenMPClause.h.

◆ Create()

OMPMapClause * OMPMapClause::Create ( const ASTContext C,
SourceLocation  StartLoc,
SourceLocation  LParenLoc,
SourceLocation  EndLoc,
ArrayRef< Expr *>  Vars,
ArrayRef< ValueDecl *>  Declarations,
MappableExprComponentListsRef  ComponentLists,
OpenMPMapClauseKind  TypeModifier,
OpenMPMapClauseKind  Type,
bool  TypeIsImplicit,
SourceLocation  TypeLoc 
)
static

Creates clause with a list of variables VL.

Parameters
CAST context.
StartLocStarting location of the clause.
EndLocEnding location of the clause.
VarsThe original expression used in the clause.
DeclarationsDeclarations used in the clause.
ComponentListsComponent lists used in the clause.
TypeModifierMap type modifier.
TypeMap type.
TypeIsImplicitMap type is inferred implicitly.
TypeLocLocation of the map type.

Definition at line 713 of file OpenMPClause.cpp.

References clang::ASTContext::Allocate(), and OMPMappableExprListClause< T >::setClauseInfo().

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

◆ CreateEmpty()

OMPMapClause * OMPMapClause::CreateEmpty ( const ASTContext C,
unsigned  NumVars,
unsigned  NumUniqueDeclarations,
unsigned  NumComponentLists,
unsigned  NumComponents 
)
static

Creates an empty clause with the place for for NumVars original expressions, NumUniqueDeclarations declarations, lists, and NumComponents expression components.

Parameters
CAST context.
NumVarsNumber of expressions listed in the clause.
NumUniqueDeclarationsNumber of unique base declarations in this clause.
NumComponentListsNumber of unique base declarations in this clause.
NumComponentsTotal number of expression components in the clause.

Definition at line 753 of file OpenMPClause.cpp.

References clang::ASTContext::Allocate().

◆ getColonLoc()

SourceLocation OMPMapClause::getColonLoc ( ) const
inline

Get colon location.

Definition at line 3907 of file OpenMPClause.h.

References ColonLoc.

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

◆ getMapLoc()

SourceLocation OMPMapClause::getMapLoc ( ) const
inline

Fetches location of clause mapping kind.

Definition at line 3904 of file OpenMPClause.h.

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

◆ getMapType()

OpenMPMapClauseKind OMPMapClause::getMapType ( ) const
inline

Fetches mapping kind for the clause.

Definition at line 3889 of file OpenMPClause.h.

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

◆ getMapTypeModifier()

OpenMPMapClauseKind OMPMapClause::getMapTypeModifier ( ) const
inline

Fetches the map type modifier for the clause.

Definition at line 3899 of file OpenMPClause.h.

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

◆ isImplicitMapType()

bool OMPMapClause::isImplicitMapType ( ) const
inline

Is this an implicit map type? We have to capture 'IsMapTypeImplicit' from the parser for more informative error messages.

It helps distinguish map(r) from map(tofrom: r), which is important to print more helpful error messages for some target directives.

Definition at line 3896 of file OpenMPClause.h.

Friends And Related Function Documentation

◆ OMPClauseReader

friend class OMPClauseReader
friend

Definition at line 3759 of file OpenMPClause.h.


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