clang
10.0.0git
|
This represents clause 'map' in the '#pragma omp ...' directives. More...
#include "clang/AST/OpenMPClause.h"
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... | |
OpenMPMapModifierKind | getMapTypeModifier (unsigned Cnt) const LLVM_READONLY |
Fetches the map-type-modifier at 'Cnt' index of array of modifiers. More... | |
SourceLocation | getMapTypeModifierLoc (unsigned Cnt) const LLVM_READONLY |
Fetches the map-type-modifier location at 'Cnt' index of array of modifiers' locations. More... | |
ArrayRef< OpenMPMapModifierKind > | getMapTypeModifiers () const LLVM_READONLY |
Fetches ArrayRef of map-type-modifiers. More... | |
ArrayRef< SourceLocation > | getMapTypeModifiersLoc () const LLVM_READONLY |
Fetches ArrayRef of location of map-type-modifiers. More... | |
SourceLocation | getMapLoc () const LLVM_READONLY |
Fetches location of clause mapping kind. More... | |
SourceLocation | getColonLoc () const |
Get colon location. More... | |
child_range | children () |
const_child_range | children () const |
child_range | used_children () |
const_child_range | used_children () const |
![]() | |
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... | |
NestedNameSpecifierLoc | getMapperQualifierLoc () const |
Gets the nested name specifier for associated user-defined mapper. More... | |
const DeclarationNameInfo & | getMapperIdInfo () const |
Gets the name info for associated user-defined mapper. 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 |
mapperlist_iterator | mapperlist_begin () |
mapperlist_const_iterator | mapperlist_begin () const |
mapperlist_iterator | mapperlist_end () |
mapperlist_const_iterator | mapperlist_end () const |
mapperlist_range | mapperlists () |
mapperlist_const_range | mapperlists () const |
Static Public Member Functions | |
static OMPMapClause * | Create (const ASTContext &C, const OMPVarListLocTy &Locs, ArrayRef< Expr *> Vars, ArrayRef< ValueDecl *> Declarations, MappableExprComponentListsRef ComponentLists, ArrayRef< Expr *> UDMapperRefs, ArrayRef< OpenMPMapModifierKind > MapModifiers, ArrayRef< SourceLocation > MapModifiersLoc, NestedNameSpecifierLoc UDMQualifierLoc, DeclarationNameInfo MapperId, OpenMPMapClauseKind Type, bool TypeIsImplicit, SourceLocation TypeLoc) |
Creates clause with a list of variables VL. More... | |
static OMPMapClause * | CreateEmpty (const ASTContext &C, const OMPMappableExprListSizeTy &Sizes) |
Creates an empty clause with the place for NumVars original expressions, NumUniqueDeclarations declarations, lists, and NumComponents expression components. More... | |
static bool | classof (const OMPClause *T) |
Static Public Attributes | |
static constexpr unsigned | NumberOfModifiers |
Number of allowed map-type-modifiers. More... | |
Friends | |
class | OMPClauseReader |
Additional Inherited Members | |
![]() | |
using | const_component_lists_range = llvm::iterator_range< const_component_lists_iterator > |
using | const_all_decls_iterator = ArrayRef< ValueDecl *>::iterator |
Iterators to access all the declarations, number of lists, list sizes, and components. More... | |
using | const_all_decls_range = llvm::iterator_range< const_all_decls_iterator > |
using | const_all_num_lists_iterator = ArrayRef< unsigned >::iterator |
using | const_all_num_lists_range = llvm::iterator_range< const_all_num_lists_iterator > |
using | const_all_lists_sizes_iterator = ArrayRef< unsigned >::iterator |
using | const_all_lists_sizes_range = llvm::iterator_range< const_all_lists_sizes_iterator > |
using | const_all_components_iterator = ArrayRef< MappableComponent >::iterator |
using | const_all_components_range = llvm::iterator_range< const_all_components_iterator > |
using | mapperlist_iterator = MutableArrayRef< Expr *>::iterator |
using | mapperlist_const_iterator = ArrayRef< const Expr *>::iterator |
using | mapperlist_range = llvm::iterator_range< mapperlist_iterator > |
using | mapperlist_const_range = llvm::iterator_range< mapperlist_const_iterator > |
![]() | |
using | MappableExprComponentList = SmallVector< MappableComponent, 8 > |
using | MappableExprComponentListRef = ArrayRef< MappableComponent > |
using | MappableExprComponentLists = SmallVector< MappableExprComponentList, 8 > |
using | MappableExprComponentListsRef = ArrayRef< MappableExprComponentList > |
![]() | |
OMPMappableExprListClause (OpenMPClauseKind K, const OMPVarListLocTy &Locs, const OMPMappableExprListSizeTy &Sizes, NestedNameSpecifierLoc *MapperQualifierLocPtr=nullptr, DeclarationNameInfo *MapperIdInfoPtr=nullptr) | |
Build a clause for NumUniqueDeclarations declarations, NumComponentLists total component lists, and NumComponents total components. More... | |
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< MappableComponent > | getComponentsRef () |
Get the components that are in the trailing objects of the class. More... | |
ArrayRef< MappableComponent > | getComponentsRef () 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... | |
void | setMapperQualifierLoc (NestedNameSpecifierLoc NNSL) |
Set the nested name specifier of associated user-defined mapper. More... | |
void | setMapperIdInfo (DeclarationNameInfo MapperId) |
Set the name of associated user-defined mapper. More... | |
MutableArrayRef< Expr *> | getUDMapperRefs () |
Get the user-defined mapper references that are in the trailing objects of the class. More... | |
ArrayRef< Expr *> | getUDMapperRefs () const |
Get the user-defined mappers references that are in the trailing objects of the class. More... | |
void | setUDMapperRefs (ArrayRef< Expr * > DMDs) |
Set the user-defined mappers that are in the trailing objects of the class. More... | |
![]() | |
static unsigned | getComponentsTotalNumber (MappableExprComponentListsRef ComponentLists) |
static unsigned | getUniqueDeclarationsTotalNumber (ArrayRef< const ValueDecl *> Declarations) |
This represents clause 'map' in the '#pragma omp ...' directives.
In this example directive '#pragma omp target' has clause 'map' with the variables 'a' and 'b'.
Definition at line 4833 of file OpenMPClause.h.
|
inline |
Definition at line 5053 of file OpenMPClause.h.
|
inline |
Definition at line 5059 of file OpenMPClause.h.
References clang::OMPClause::children().
Definition at line 5076 of file OpenMPClause.h.
|
static |
Creates clause with a list of variables VL.
C | AST context. |
Locs | Locations needed to build a mappable clause. It includes 1) StartLoc: starting location of the clause (the clause keyword); 2) LParenLoc: location of '('; 3) EndLoc: ending location of the clause. |
Vars | The original expression used in the clause. |
Declarations | Declarations used in the clause. |
ComponentLists | Component lists used in the clause. |
UDMapperRefs | References to user-defined mappers associated with expressions used in the clause. |
MapModifiers | Map-type-modifiers. |
MapModifiersLoc | Location of map-type-modifiers. |
UDMQualifierLoc | C++ nested name specifier for the associated user-defined mapper. |
MapperId | The identifier of associated user-defined mapper. |
Type | Map type. |
TypeIsImplicit | Map type is inferred implicitly. |
TypeLoc | Location of the map type. |
Definition at line 904 of file OpenMPClause.cpp.
References clang::ASTContext::Allocate(), OMPMappableExprListSizeTy::NumComponentLists, OMPMappableExprListSizeTy::NumComponents, OMPMappableExprListSizeTy::NumUniqueDeclarations, OMPMappableExprListSizeTy::NumVars, OMPMappableExprListClause< T >::setClauseInfo(), and OMPMappableExprListClause< T >::setUDMapperRefs().
Referenced by clang::Sema::ActOnOpenMPMapClause().
|
static |
Creates an empty clause with the place for NumVars original expressions, NumUniqueDeclarations declarations, lists, and NumComponents expression components.
C | AST context. |
Sizes | All required sizes to build a mappable clause. It includes 1) NumVars: number of expressions listed in this clause; 2) NumUniqueDeclarations: number of unique base declarations in this clause; 3) NumComponentLists: number of component lists in this clause; and 4) NumComponents: total number of expression components in the clause. |
Definition at line 947 of file OpenMPClause.cpp.
References clang::ASTContext::Allocate(), OMPMappableExprListSizeTy::NumComponentLists, OMPMappableExprListSizeTy::NumComponents, OMPMappableExprListSizeTy::NumUniqueDeclarations, and OMPMappableExprListSizeTy::NumVars.
|
inline |
Get colon location.
Definition at line 5051 of file OpenMPClause.h.
References ColonLoc.
Referenced by clang::transformOMPMappableExprListClause(), and clang::ASTRecordWriter::writeOMPClause().
|
inline |
Fetches location of clause mapping kind.
Definition at line 5048 of file OpenMPClause.h.
Referenced by clang::transformOMPMappableExprListClause(), and clang::ASTRecordWriter::writeOMPClause().
|
inline |
Fetches mapping kind for the clause.
Definition at line 5009 of file OpenMPClause.h.
Referenced by clang::transformOMPMappableExprListClause(), and clang::ASTRecordWriter::writeOMPClause().
|
inline |
Fetches the map-type-modifier at 'Cnt' index of array of modifiers.
Cnt | index for map-type-modifier. |
Definition at line 5021 of file OpenMPClause.h.
Referenced by clang::ASTRecordWriter::writeOMPClause().
|
inline |
Fetches the map-type-modifier location at 'Cnt' index of array of modifiers' locations.
Cnt | index for map-type-modifier location. |
Definition at line 5031 of file OpenMPClause.h.
Referenced by clang::ASTRecordWriter::writeOMPClause().
|
inline |
Fetches ArrayRef of map-type-modifiers.
Definition at line 5038 of file OpenMPClause.h.
Referenced by clang::transformOMPMappableExprListClause().
|
inline |
Fetches ArrayRef of location of map-type-modifiers.
Definition at line 5043 of file OpenMPClause.h.
Referenced by clang::transformOMPMappableExprListClause().
|
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 5016 of file OpenMPClause.h.
Referenced by clang::transformOMPMappableExprListClause().
|
inline |
Definition at line 5064 of file OpenMPClause.h.
|
inline |
Definition at line 5070 of file OpenMPClause.h.
References clang::OMPClause::used_children().
|
friend |
Definition at line 4837 of file OpenMPClause.h.
|
static |
Number of allowed map-type-modifiers.
Definition at line 4858 of file OpenMPClause.h.
Referenced by clang::Sema::ActOnOpenMPMapClause(), clang::OMPClauseReader::VisitOMPClauseWithPostUpdate(), and clang::ASTRecordWriter::writeOMPClause().