clang 20.0.0git
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
OpenMPKinds.h File Reference

Defines some OpenMP-specific enums and functions. More...

#include "clang/Basic/LangOptions.h"
#include "llvm/ADT/Sequence.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Frontend/OpenMP/OMPConstants.h"
#include "clang/Basic/OpenMPKinds.def"

Go to the source code of this file.

Classes

struct  clang::OpenMPScheduleTy
 Scheduling data for loop-based OpenMP directives. More...
 
struct  clang::OMPInteropInfo
 
struct  llvm::enum_iteration_traits< clang::OpenMPDefaultmapClauseKind >
 

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 

Macros

#define OPENMP_SCHEDULE_KIND(Name)    OMPC_SCHEDULE_##Name,
 
#define OPENMP_SCHEDULE_MODIFIER(Name)    OMPC_SCHEDULE_MODIFIER_##Name,
 
#define OPENMP_DEVICE_MODIFIER(Name)   OMPC_DEVICE_##Name,
 
#define OPENMP_DEPEND_KIND(Name)    OMPC_DEPEND_##Name,
 
#define OPENMP_LINEAR_KIND(Name)    OMPC_LINEAR_##Name,
 
#define OPENMP_MAP_KIND(Name)    OMPC_MAP_##Name,
 
#define OPENMP_MAP_MODIFIER_KIND(Name)    OMPC_MAP_MODIFIER_##Name,
 
#define OPENMP_MOTION_MODIFIER_KIND(Name)    OMPC_MOTION_MODIFIER_##Name,
 
#define OPENMP_DIST_SCHEDULE_KIND(Name)   OMPC_DIST_SCHEDULE_##Name,
 
#define OPENMP_DEFAULTMAP_KIND(Name)    OMPC_DEFAULTMAP_##Name,
 
#define OPENMP_DEFAULTMAP_MODIFIER(Name)    OMPC_DEFAULTMAP_MODIFIER_##Name,
 
#define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name)    OMPC_ATOMIC_DEFAULT_MEM_ORDER_##Name,
 
#define OPENMP_AT_KIND(Name)   OMPC_AT_##Name,
 
#define OPENMP_SEVERITY_KIND(Name)   OMPC_SEVERITY_##Name,
 
#define OPENMP_DEVICE_TYPE_KIND(Name)    OMPC_DEVICE_TYPE_##Name,
 
#define OPENMP_LASTPRIVATE_KIND(Name)   OMPC_LASTPRIVATE_##Name,
 
#define OPENMP_ORDER_KIND(Name)   OMPC_ORDER_##Name,
 
#define OPENMP_ORDER_MODIFIER(Name)   OMPC_ORDER_MODIFIER_##Name,
 
#define OPENMP_REDUCTION_MODIFIER(Name)   OMPC_REDUCTION_##Name,
 
#define OPENMP_ADJUST_ARGS_KIND(Name)   OMPC_ADJUST_ARGS_##Name,
 
#define OPENMP_BIND_KIND(Name)   OMPC_BIND_##Name,
 
#define OPENMP_GRAINSIZE_MODIFIER(Name)   OMPC_GRAINSIZE_##Name,
 
#define OPENMP_NUMTASKS_MODIFIER(Name)   OMPC_NUMTASKS_##Name,
 
#define OPENMP_DOACROSS_MODIFIER(Name)   OMPC_DOACROSS_##Name,
 
#define OPENMP_ALLOCATE_MODIFIER(Name)   OMPC_ALLOCATE_##Name,
 

Typedefs

using clang::OpenMPDirectiveKind = llvm::omp::Directive
 OpenMP directives.
 
using clang::OpenMPClauseKind = llvm::omp::Clause
 OpenMP clauses.
 

Enumerations

enum  clang::OpenMPScheduleClauseKind { clang::OMPC_SCHEDULE_unknown }
 OpenMP attributes for 'schedule' clause. More...
 
enum  clang::OpenMPScheduleClauseModifier { clang::OMPC_SCHEDULE_MODIFIER_unknown = OMPC_SCHEDULE_unknown , clang::OMPC_SCHEDULE_MODIFIER_last }
 OpenMP modifiers for 'schedule' clause. More...
 
enum  clang::OpenMPDeviceClauseModifier { clang::OMPC_DEVICE_unknown }
 OpenMP modifiers for 'device' clause. More...
 
enum  clang::OpenMPDependClauseKind { clang::OMPC_DEPEND_unknown }
 OpenMP attributes for 'depend' clause. More...
 
enum  clang::OpenMPLinearClauseKind { clang::OMPC_LINEAR_unknown }
 OpenMP attributes for 'linear' clause. More...
 
enum  clang::OpenMPMapClauseKind { clang::OMPC_MAP_unknown }
 OpenMP mapping kind for 'map' clause. More...
 
enum  clang::OpenMPMapModifierKind { clang::OMPC_MAP_MODIFIER_unknown = OMPC_MAP_unknown , clang::OMPC_MAP_MODIFIER_last }
 OpenMP modifier kind for 'map' clause. More...
 
enum  clang::OpenMPMotionModifierKind { clang::OMPC_MOTION_MODIFIER_unknown }
 OpenMP modifier kind for 'to' or 'from' clause. More...
 
enum  clang::OpenMPDistScheduleClauseKind { clang::OMPC_DIST_SCHEDULE_unknown }
 OpenMP attributes for 'dist_schedule' clause. More...
 
enum  clang::OpenMPDefaultmapClauseKind { clang::OMPC_DEFAULTMAP_unknown }
 OpenMP attributes for 'defaultmap' clause. More...
 
enum  clang::OpenMPDefaultmapClauseModifier { clang::OMPC_DEFAULTMAP_MODIFIER_unknown = OMPC_DEFAULTMAP_unknown , clang::OMPC_DEFAULTMAP_MODIFIER_last }
 OpenMP modifiers for 'defaultmap' clause. More...
 
enum  clang::OpenMPAtomicDefaultMemOrderClauseKind { clang::OMPC_ATOMIC_DEFAULT_MEM_ORDER_unknown }
 OpenMP attributes for 'atomic_default_mem_order' clause. More...
 
enum  clang::OpenMPAtClauseKind { clang::OMPC_AT_unknown }
 OpenMP attributes for 'at' clause. More...
 
enum  clang::OpenMPSeverityClauseKind { clang::OMPC_SEVERITY_unknown }
 OpenMP attributes for 'severity' clause. More...
 
enum  clang::OpenMPDeviceType { clang::OMPC_DEVICE_TYPE_unknown }
 OpenMP device type for 'device_type' clause. More...
 
enum  clang::OpenMPLastprivateModifier { clang::OMPC_LASTPRIVATE_unknown }
 OpenMP 'lastprivate' clause modifier. More...
 
enum  clang::OpenMPOrderClauseKind { clang::OMPC_ORDER_unknown }
 OpenMP attributes for 'order' clause. More...
 
enum  clang::OpenMPOrderClauseModifier { clang::OMPC_ORDER_MODIFIER_unknown = OMPC_ORDER_unknown , clang::OMPC_ORDER_MODIFIER_last }
 OpenMP modifiers for 'order' clause. More...
 
enum  clang::OpenMPReductionClauseModifier { clang::OMPC_REDUCTION_unknown }
 OpenMP modifiers for 'reduction' clause. More...
 
enum  clang::OpenMPAdjustArgsOpKind { clang::OMPC_ADJUST_ARGS_unknown }
 OpenMP adjust-op kinds for 'adjust_args' clause. More...
 
enum  clang::OpenMPBindClauseKind { clang::OMPC_BIND_unknown }
 OpenMP bindings for the 'bind' clause. More...
 
enum  clang::OpenMPGrainsizeClauseModifier { clang::OMPC_GRAINSIZE_unknown }
 
enum  clang::OpenMPNumTasksClauseModifier { clang::OMPC_NUMTASKS_unknown }
 
enum  clang::OpenMPDoacrossClauseModifier { clang::OMPC_DOACROSS_unknown }
 OpenMP dependence types for 'doacross' clause. More...
 
enum  clang::OpenMPAllocateClauseModifier { clang::OMPC_ALLOCATE_unknown }
 OpenMP modifiers for 'allocate' clause. More...
 

Functions

unsigned clang::getOpenMPSimpleClauseType (OpenMPClauseKind Kind, llvm::StringRef Str, const LangOptions &LangOpts)
 
const char * clang::getOpenMPSimpleClauseTypeName (OpenMPClauseKind Kind, unsigned Type)
 
bool clang::isOpenMPLoopDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a directive with an associated loop construct.
 
bool clang::isOpenMPWorksharingDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a worksharing directive.
 
bool clang::isOpenMPTaskLoopDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a taskloop directive.
 
bool clang::isOpenMPParallelDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a parallel-kind directive.
 
bool clang::isOpenMPTargetExecutionDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a target code offload directive.
 
bool clang::isOpenMPTargetDataManagementDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a target data offload directive.
 
bool clang::isOpenMPNestingTeamsDirective (OpenMPDirectiveKind DKind)
 Checks if the specified composite/combined directive constitutes a teams directive in the outermost nest.
 
bool clang::isOpenMPTeamsDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a teams-kind directive.
 
bool clang::isOpenMPSimdDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a simd directive.
 
bool clang::isOpenMPDistributeDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a distribute directive.
 
bool clang::isOpenMPNestingDistributeDirective (OpenMPDirectiveKind DKind)
 Checks if the specified composite/combined directive constitutes a distribute directive in the outermost nest.
 
bool clang::isOpenMPGenericLoopDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive constitutes a 'loop' directive in the outermost nest.
 
bool clang::isOpenMPPrivate (OpenMPClauseKind Kind)
 Checks if the specified clause is one of private clauses like 'private', 'firstprivate', 'reduction' etc.
 
bool clang::isOpenMPThreadPrivate (OpenMPClauseKind Kind)
 Checks if the specified clause is one of threadprivate clauses like 'threadprivate', 'copyin' or 'copyprivate'.
 
bool clang::isOpenMPTaskingDirective (OpenMPDirectiveKind Kind)
 Checks if the specified directive kind is one of tasking directives - task, taskloop, taksloop simd, master taskloop, parallel master taskloop, master taskloop simd, or parallel master taskloop simd.
 
bool clang::isOpenMPLoopBoundSharingDirective (OpenMPDirectiveKind Kind)
 Checks if the specified directive kind is one of the composite or combined directives that need loop bound sharing across loops outlined in nested functions.
 
bool clang::isOpenMPLoopTransformationDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a loop transformation directive.
 
void clang::getOpenMPCaptureRegions (llvm::SmallVectorImpl< OpenMPDirectiveKind > &CaptureRegions, OpenMPDirectiveKind DKind)
 Return the captured regions of an OpenMP directive.
 
bool clang::isOpenMPCombinedParallelADirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a combined construct for which the first construct is a parallel construct.
 
bool clang::needsTaskBasedThreadLimit (OpenMPDirectiveKind DKind)
 Checks if the specified target directive, combined or not, needs task based thread_limit.
 
bool clang::checkFailClauseParameter (OpenMPClauseKind FailClauseParameter)
 Checks if the parameter to the fail clause in "#pragma atomic compare fail" is restricted only to memory order clauses of "OMPC_acquire", "OMPC_relaxed" and "OMPC_seq_cst".
 
bool clang::isOpenMPExecutableDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is considered as "executable".
 
bool clang::isOpenMPInformationalDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is considered as "informational".
 
bool clang::isOpenMPCapturingDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive can capture variables.
 

Variables

static constexpr unsigned clang::NumberOfOMPMapClauseModifiers
 Number of allowed map-type-modifiers.
 
static constexpr unsigned clang::NumberOfOMPMotionModifiers
 Number of allowed motion-modifiers.
 

Detailed Description

Defines some OpenMP-specific enums and functions.

Definition in file OpenMPKinds.h.

Macro Definition Documentation

◆ OPENMP_ADJUST_ARGS_KIND

#define OPENMP_ADJUST_ARGS_KIND (   Name)    OMPC_ADJUST_ARGS_##Name,

Definition at line 195 of file OpenMPKinds.h.

◆ OPENMP_ALLOCATE_MODIFIER

#define OPENMP_ALLOCATE_MODIFIER (   Name)    OMPC_ALLOCATE_##Name,

Definition at line 228 of file OpenMPKinds.h.

◆ OPENMP_AT_KIND

#define OPENMP_AT_KIND (   Name)    OMPC_AT_##Name,

Definition at line 137 of file OpenMPKinds.h.

◆ OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND

#define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND (   Name)     OMPC_ATOMIC_DEFAULT_MEM_ORDER_##Name,

Definition at line 129 of file OpenMPKinds.h.

◆ OPENMP_BIND_KIND

#define OPENMP_BIND_KIND (   Name)    OMPC_BIND_##Name,

Definition at line 202 of file OpenMPKinds.h.

◆ OPENMP_DEFAULTMAP_KIND

#define OPENMP_DEFAULTMAP_KIND (   Name)     OMPC_DEFAULTMAP_##Name,

Definition at line 112 of file OpenMPKinds.h.

◆ OPENMP_DEFAULTMAP_MODIFIER

#define OPENMP_DEFAULTMAP_MODIFIER (   Name)     OMPC_DEFAULTMAP_MODIFIER_##Name,

Definition at line 121 of file OpenMPKinds.h.

◆ OPENMP_DEPEND_KIND

#define OPENMP_DEPEND_KIND (   Name)     OMPC_DEPEND_##Name,

Definition at line 56 of file OpenMPKinds.h.

◆ OPENMP_DEVICE_MODIFIER

#define OPENMP_DEVICE_MODIFIER (   Name)    OMPC_DEVICE_##Name,

Definition at line 49 of file OpenMPKinds.h.

◆ OPENMP_DEVICE_TYPE_KIND

#define OPENMP_DEVICE_TYPE_KIND (   Name)     OMPC_DEVICE_TYPE_##Name,

Definition at line 151 of file OpenMPKinds.h.

◆ OPENMP_DIST_SCHEDULE_KIND

#define OPENMP_DIST_SCHEDULE_KIND (   Name)    OMPC_DIST_SCHEDULE_##Name,

Definition at line 105 of file OpenMPKinds.h.

◆ OPENMP_DOACROSS_MODIFIER

#define OPENMP_DOACROSS_MODIFIER (   Name)    OMPC_DOACROSS_##Name,

Definition at line 221 of file OpenMPKinds.h.

◆ OPENMP_GRAINSIZE_MODIFIER

#define OPENMP_GRAINSIZE_MODIFIER (   Name)    OMPC_GRAINSIZE_##Name,

Definition at line 208 of file OpenMPKinds.h.

◆ OPENMP_LASTPRIVATE_KIND

#define OPENMP_LASTPRIVATE_KIND (   Name)    OMPC_LASTPRIVATE_##Name,

Definition at line 159 of file OpenMPKinds.h.

◆ OPENMP_LINEAR_KIND

#define OPENMP_LINEAR_KIND (   Name)     OMPC_LINEAR_##Name,

Definition at line 64 of file OpenMPKinds.h.

◆ OPENMP_MAP_KIND

#define OPENMP_MAP_KIND (   Name)     OMPC_MAP_##Name,

Definition at line 72 of file OpenMPKinds.h.

◆ OPENMP_MAP_MODIFIER_KIND

#define OPENMP_MAP_MODIFIER_KIND (   Name)     OMPC_MAP_MODIFIER_##Name,

Definition at line 81 of file OpenMPKinds.h.

◆ OPENMP_MOTION_MODIFIER_KIND

#define OPENMP_MOTION_MODIFIER_KIND (   Name)     OMPC_MOTION_MODIFIER_##Name,

Definition at line 93 of file OpenMPKinds.h.

◆ OPENMP_NUMTASKS_MODIFIER

#define OPENMP_NUMTASKS_MODIFIER (   Name)    OMPC_NUMTASKS_##Name,

Definition at line 214 of file OpenMPKinds.h.

◆ OPENMP_ORDER_KIND

#define OPENMP_ORDER_KIND (   Name)    OMPC_ORDER_##Name,

Definition at line 166 of file OpenMPKinds.h.

◆ OPENMP_ORDER_MODIFIER

#define OPENMP_ORDER_MODIFIER (   Name)    OMPC_ORDER_MODIFIER_##Name,

Definition at line 174 of file OpenMPKinds.h.

◆ OPENMP_REDUCTION_MODIFIER

#define OPENMP_REDUCTION_MODIFIER (   Name)    OMPC_REDUCTION_##Name,

Definition at line 188 of file OpenMPKinds.h.

◆ OPENMP_SCHEDULE_KIND

#define OPENMP_SCHEDULE_KIND (   Name)     OMPC_SCHEDULE_##Name,

Definition at line 32 of file OpenMPKinds.h.

◆ OPENMP_SCHEDULE_MODIFIER

#define OPENMP_SCHEDULE_MODIFIER (   Name)     OMPC_SCHEDULE_MODIFIER_##Name,

Definition at line 41 of file OpenMPKinds.h.

◆ OPENMP_SEVERITY_KIND

#define OPENMP_SEVERITY_KIND (   Name)    OMPC_SEVERITY_##Name,

Definition at line 144 of file OpenMPKinds.h.