clang 20.0.0git
|
This file defines OpenMP AST classes for clauses. More...
#include "clang/AST/ASTFwd.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/Expr.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtIterator.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/OpenMPKinds.h"
#include "clang/Basic/SourceLocation.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/iterator.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Frontend/OpenMP/OMPAssume.h"
#include "llvm/Frontend/OpenMP/OMPConstants.h"
#include "llvm/Frontend/OpenMP/OMPContext.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/TrailingObjects.h"
#include <cassert>
#include <cstddef>
#include <iterator>
#include <utility>
#include "llvm/Frontend/OpenMP/OMP.inc"
Go to the source code of this file.
Classes | |
class | clang::OMPClause |
This is a basic class for representing single OpenMP clause. More... | |
struct | clang::OMPNoChildClause< ClauseKind > |
class | clang::OMPOneStmtClause< ClauseKind, Base > |
class | clang::OMPClauseWithPreInit |
Class that handles pre-initialization statement for some clauses, like 'schedule', 'firstprivate' etc. More... | |
class | clang::OMPClauseWithPostUpdate |
Class that handles post-update expression for some clauses, like 'lastprivate', 'reduction' etc. More... | |
struct | clang::OMPVarListLocTy |
This structure contains most locations needed for by an OMPVarListClause. More... | |
class | clang::OMPVarListClause< T > |
This represents clauses with the list of variables like 'private', 'firstprivate', 'copyin', 'shared', or 'reduction' clauses in the '#pragma omp ...' directives. More... | |
class | clang::OMPDirectiveListClause< T > |
Class that represents a list of directive kinds (parallel, target, etc.) as used in absent , contains clauses. More... | |
class | clang::OMPAllocatorClause |
This represents 'allocator' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPAlignClause |
This represents the 'align' clause in the '#pragma omp allocate' directive. More... | |
class | clang::OMPAllocateClause |
This represents clause 'allocate' in the '#pragma omp ...' directives. More... | |
class | clang::OMPIfClause |
This represents 'if' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPFinalClause |
This represents 'final' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPNumThreadsClause |
This represents 'num_threads' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPSafelenClause |
This represents 'safelen' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPSimdlenClause |
This represents 'simdlen' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPSizesClause |
This represents the 'sizes' clause in the '#pragma omp tile' directive. More... | |
class | clang::OMPFullClause |
Representation of the 'full' clause of the '#pragma omp unroll' directive. More... | |
class | clang::OMPPartialClause |
Representation of the 'partial' clause of the '#pragma omp unroll' directive. More... | |
class | clang::OMPCollapseClause |
This represents 'collapse' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPDefaultClause |
This represents 'default' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPProcBindClause |
This represents 'proc_bind' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPUnifiedAddressClause |
This represents 'unified_address' clause in the '#pragma omp requires' directive. More... | |
class | clang::OMPUnifiedSharedMemoryClause |
This represents 'unified_shared_memory' clause in the '#pragma omp requires' directive. More... | |
class | clang::OMPReverseOffloadClause |
This represents 'reverse_offload' clause in the '#pragma omp requires' directive. More... | |
class | clang::OMPDynamicAllocatorsClause |
This represents 'dynamic_allocators' clause in the '#pragma omp requires' directive. More... | |
class | clang::OMPAtomicDefaultMemOrderClause |
This represents 'atomic_default_mem_order' clause in the '#pragma omp requires' directive. More... | |
class | clang::OMPAtClause |
This represents 'at' clause in the '#pragma omp error' directive. More... | |
class | clang::OMPSeverityClause |
This represents 'severity' clause in the '#pragma omp error' directive. More... | |
class | clang::OMPMessageClause |
This represents 'message' clause in the '#pragma omp error' directive. More... | |
class | clang::OMPScheduleClause |
This represents 'schedule' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPOrderedClause |
This represents 'ordered' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPNowaitClause |
This represents 'nowait' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPUntiedClause |
This represents 'untied' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPMergeableClause |
This represents 'mergeable' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPAbsentClause |
This represents the 'absent' clause in the '#pragma omp assume' directive. More... | |
class | clang::OMPContainsClause |
This represents the 'contains' clause in the '#pragma omp assume' directive. More... | |
class | clang::OMPHoldsClause |
This represents the 'holds' clause in the '#pragma omp assume' directive. More... | |
class | clang::OMPNoOpenMPClause |
This represents the 'no_openmp' clause in the '#pragma omp assume' directive. More... | |
class | clang::OMPNoOpenMPRoutinesClause |
This represents the 'no_openmp_routines' clause in the '#pragma omp assume' directive. More... | |
class | clang::OMPNoParallelismClause |
This represents the 'no_parallelism' clause in the '#pragma omp assume' directive. More... | |
class | clang::OMPReadClause |
This represents 'read' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPWriteClause |
This represents 'write' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPUpdateClause |
This represents 'update' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPCaptureClause |
This represents 'capture' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPCompareClause |
This represents 'compare' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPSeqCstClause |
This represents 'seq_cst' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPAcqRelClause |
This represents 'acq_rel' clause in the '#pragma omp atomic|flush' directives. More... | |
class | clang::OMPAcquireClause |
This represents 'acquire' clause in the '#pragma omp atomic|flush' directives. More... | |
class | clang::OMPReleaseClause |
This represents 'release' clause in the '#pragma omp atomic|flush' directives. More... | |
class | clang::OMPRelaxedClause |
This represents 'relaxed' clause in the '#pragma omp atomic' directives. More... | |
class | clang::OMPWeakClause |
This represents 'weak' clause in the '#pragma omp atomic' directives. More... | |
class | clang::OMPFailClause |
This represents 'fail' clause in the '#pragma omp atomic' directive. More... | |
class | clang::OMPPrivateClause |
This represents clause 'private' in the '#pragma omp ...' directives. More... | |
class | clang::OMPFirstprivateClause |
This represents clause 'firstprivate' in the '#pragma omp ...' directives. More... | |
class | clang::OMPLastprivateClause |
This represents clause 'lastprivate' in the '#pragma omp ...' directives. More... | |
class | clang::OMPSharedClause |
This represents clause 'shared' in the '#pragma omp ...' directives. More... | |
class | clang::OMPReductionClause |
This represents clause 'reduction' in the '#pragma omp ...' directives. More... | |
class | clang::OMPTaskReductionClause |
This represents clause 'task_reduction' in the '#pragma omp taskgroup' directives. More... | |
class | clang::OMPInReductionClause |
This represents clause 'in_reduction' in the '#pragma omp task' directives. More... | |
class | clang::OMPLinearClause |
This represents clause 'linear' in the '#pragma omp ...' directives. More... | |
class | clang::OMPAlignedClause |
This represents clause 'aligned' in the '#pragma omp ...' directives. More... | |
class | clang::OMPCopyinClause |
This represents clause 'copyin' in the '#pragma omp ...' directives. More... | |
class | clang::OMPCopyprivateClause |
This represents clause 'copyprivate' in the '#pragma omp ...' directives. More... | |
class | clang::OMPFlushClause |
This represents implicit clause 'flush' for the '#pragma omp flush' directive. More... | |
class | clang::OMPDepobjClause |
This represents implicit clause 'depobj' for the '#pragma omp depobj' directive. More... | |
class | clang::OMPDependClause |
This represents implicit clause 'depend' for the '#pragma omp task' directive. More... | |
struct | clang::OMPDependClause::DependDataTy |
class | clang::OMPDeviceClause |
This represents 'device' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPThreadsClause |
This represents 'threads' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPSIMDClause |
This represents 'simd' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPClauseMappableExprCommon |
Struct that defines common infrastructure to handle mappable expressions used in OpenMP clauses. More... | |
class | clang::OMPClauseMappableExprCommon::MappableComponent |
Class that represents a component of a mappable expression. More... | |
struct | clang::OMPMappableExprListSizeTy |
This structure contains all sizes needed for by an OMPMappableExprListClause. More... | |
class | clang::OMPMappableExprListClause< T > |
This represents clauses with a list of expressions that are mappable. More... | |
class | clang::OMPMappableExprListClause< T >::const_component_lists_iterator |
Iterator that browse the components by lists. More... | |
class | clang::OMPMapClause |
This represents clause 'map' in the '#pragma omp ...' directives. More... | |
class | clang::OMPNumTeamsClause |
This represents 'num_teams' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPThreadLimitClause |
This represents 'thread_limit' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPPriorityClause |
This represents 'priority' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPGrainsizeClause |
This represents 'grainsize' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPNogroupClause |
This represents 'nogroup' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPNumTasksClause |
This represents 'num_tasks' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPHintClause |
This represents 'hint' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPDistScheduleClause |
This represents 'dist_schedule' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPDefaultmapClause |
This represents 'defaultmap' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPToClause |
This represents clause 'to' in the '#pragma omp ...' directives. More... | |
class | clang::OMPFromClause |
This represents clause 'from' in the '#pragma omp ...' directives. More... | |
class | clang::OMPUseDevicePtrClause |
This represents clause 'use_device_ptr' in the '#pragma omp ...' directives. More... | |
class | clang::OMPUseDeviceAddrClause |
This represents clause 'use_device_addr' in the '#pragma omp ...' directives. More... | |
class | clang::OMPIsDevicePtrClause |
This represents clause 'is_device_ptr' in the '#pragma omp ...' directives. More... | |
class | clang::OMPHasDeviceAddrClause |
This represents clause 'has_device_ptr' in the '#pragma omp ...' directives. More... | |
class | clang::OMPNontemporalClause |
This represents clause 'nontemporal' in the '#pragma omp ...' directives. More... | |
class | clang::OMPOrderClause |
This represents 'order' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPInitClause |
This represents the 'init' clause in '#pragma omp ...' directives. More... | |
class | clang::OMPUseClause |
This represents the 'use' clause in '#pragma omp ...' directives. More... | |
class | clang::OMPDestroyClause |
This represents 'destroy' clause in the '#pragma omp depobj' directive or the '#pragma omp interop' directive. More... | |
class | clang::OMPNovariantsClause |
This represents 'novariants' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPNocontextClause |
This represents 'nocontext' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPDetachClause |
This represents 'detach' clause in the '#pragma omp task' directive. More... | |
class | clang::OMPInclusiveClause |
This represents clause 'inclusive' in the '#pragma omp scan' directive. More... | |
class | clang::OMPExclusiveClause |
This represents clause 'exclusive' in the '#pragma omp scan' directive. More... | |
class | clang::OMPUsesAllocatorsClause |
This represents clause 'uses_allocators' in the '#pragma omp target'-based directives. More... | |
struct | clang::OMPUsesAllocatorsClause::Data |
Data for list of allocators. More... | |
class | clang::OMPAffinityClause |
This represents clause 'affinity' in the '#pragma omp task'-based directives. More... | |
class | clang::OMPFilterClause |
This represents 'filter' clause in the '#pragma omp ...' directive. More... | |
class | clang::OMPBindClause |
This represents 'bind' clause in the '#pragma omp ...' directives. More... | |
class | clang::OMPClauseVisitorBase< ImplClass, Ptr, RetTy > |
This class implements a simple visitor for OMPClause subclasses. More... | |
class | clang::OMPClauseVisitor< ImplClass, RetTy > |
class | clang::ConstOMPClauseVisitor< ImplClass, RetTy > |
class | clang::OMPClausePrinter |
struct | clang::OMPTraitProperty |
struct | clang::OMPTraitSelector |
struct | clang::OMPTraitSet |
class | clang::OMPTraitInfo |
Helper data structure representing the traits in a match clause of an declare variant or metadirective . More... | |
struct | clang::TargetOMPContext |
Clang specific specialization of the OMPContext to lookup target features. More... | |
class | clang::OMPChildren |
Contains data for OpenMP directives: clauses, children expressions/statements (helpers for codegen) and associated statement, if any. More... | |
class | clang::OMPXDynCGroupMemClause |
This represents 'ompx_dyn_cgroup_mem' clause in the '#pragma omp target ...' directive. More... | |
class | clang::OMPDoacrossClause |
This represents the 'doacross' clause for the '#pragma omp ordered' directive. More... | |
class | clang::OMPXAttributeClause |
This represents 'ompx_attribute' clause in a directive that might generate an outlined function. More... | |
class | clang::OMPXBareClause |
This represents 'ompx_bare' clause in the '#pragma omp target teams ...' directive. More... | |
Namespaces | |
namespace | clang |
The JSON file list parser is used to communicate input to InstallAPI. | |
Macros | |
#define | PTR(CLASS) Ptr<CLASS> |
#define | DISPATCH(CLASS) return static_cast<ImplClass*>(this)->Visit##CLASS(static_cast<PTR(CLASS)>(S)) |
#define | GEN_CLANG_CLAUSE_CLASS |
#define | CLAUSE_CLASS(Enum, Str, Class) RetTy Visit##Class(PTR(Class) S) { DISPATCH(Class); } |
#define | GEN_CLANG_CLAUSE_CLASS |
#define | CLAUSE_CLASS(Enum, Str, Class) |
#define | CLAUSE_NO_CLASS(Enum, Str) |
#define | GEN_CLANG_CLAUSE_CLASS |
#define | CLAUSE_CLASS(Enum, Str, Class) void Visit##Class(Class *S); |
Typedefs | |
template<typename T > | |
using | clang::const_ptr = std::add_pointer_t< std::add_const_t< T > > |
Functions | |
llvm::raw_ostream & | clang::operator<< (llvm::raw_ostream &OS, const OMPTraitInfo &TI) |
llvm::raw_ostream & | clang::operator<< (llvm::raw_ostream &OS, const OMPTraitInfo *TI) |
This file defines OpenMP AST classes for clauses.
There are clauses for executable directives, clauses for declarative directives and clauses which can be used in both kinds of directives.
Definition in file OpenMPClause.h.
Definition at line 9171 of file OpenMPClause.h.
#define CLAUSE_CLASS | ( | Enum, | |
Str, | |||
Class | |||
) |
Definition at line 9171 of file OpenMPClause.h.
#define CLAUSE_CLASS | ( | Enum, | |
Str, | |||
Class | |||
) | void Visit##Class(Class *S); |
Definition at line 9171 of file OpenMPClause.h.
#define CLAUSE_NO_CLASS | ( | Enum, | |
Str | |||
) |
#define DISPATCH | ( | CLASS | ) | return static_cast<ImplClass*>(this)->Visit##CLASS(static_cast<PTR(CLASS)>(S)) |
Definition at line 9121 of file OpenMPClause.h.
#define GEN_CLANG_CLAUSE_CLASS |
Definition at line 9170 of file OpenMPClause.h.
#define GEN_CLANG_CLAUSE_CLASS |
Definition at line 9170 of file OpenMPClause.h.
#define GEN_CLANG_CLAUSE_CLASS |
Definition at line 9170 of file OpenMPClause.h.
#define PTR | ( | CLASS | ) | Ptr<CLASS> |
Definition at line 9120 of file OpenMPClause.h.