clang 22.0.0git
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)
#define OPENMP_SCHEDULE_MODIFIER(Name)
#define OPENMP_DEVICE_MODIFIER(Name)
#define OPENMP_DEPEND_KIND(Name)
#define OPENMP_LINEAR_KIND(Name)
#define OPENMP_MAP_KIND(Name)
#define OPENMP_MAP_MODIFIER_KIND(Name)
#define OPENMP_MOTION_MODIFIER_KIND(Name)
#define OPENMP_DIST_SCHEDULE_KIND(Name)
#define OPENMP_DEFAULT_VARIABLE_CATEGORY(Name)
#define OPENMP_DEFAULTMAP_KIND(Name)
#define OPENMP_DEFAULTMAP_MODIFIER(Name)
#define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name)
#define OPENMP_AT_KIND(Name)
#define OPENMP_SEVERITY_KIND(Name)
#define OPENMP_DEVICE_TYPE_KIND(Name)
#define OPENMP_LASTPRIVATE_KIND(Name)
#define OPENMP_ORDER_KIND(Name)
#define OPENMP_ORDER_MODIFIER(Name)
#define OPENMP_REDUCTION_MODIFIER(Name)
#define OPENMP_ORIGINAL_SHARING_MODIFIER(Name)
#define OPENMP_ADJUST_ARGS_KIND(Name)
#define OPENMP_BIND_KIND(Name)
#define OPENMP_GRAINSIZE_MODIFIER(Name)
#define OPENMP_NUMTASKS_MODIFIER(Name)
#define OPENMP_NUMTHREADS_MODIFIER(Name)
#define OPENMP_DOACROSS_MODIFIER(Name)
#define OPENMP_ALLOCATE_MODIFIER(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::OpenMPDefaultClauseVariableCategory { clang::OMPC_DEFAULT_VC_unknown }
 OpenMP variable-category for 'default' 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::OpenMPOriginalSharingModifier { clang::OMPC_ORIGINAL_SHARING_unknown }
 OpenMP 6.0 original sharing modifiers. 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::OpenMPNumThreadsClauseModifier { clang::OMPC_NUMTHREADS_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

OpenMPDefaultClauseVariableCategory clang::getOpenMPDefaultVariableCategory (StringRef Str, const LangOptions &LangOpts)
const char * clang::getOpenMPDefaultVariableCategoryName (unsigned VC)
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::isOpenMPCanonicalLoopNestTransformationDirective (OpenMPDirectiveKind DKind)
 Checks if the specified directive is a loop transformation directive that applies to a canonical loop nest.
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.
bool clang::isOpenMPOrderConcurrentNestableDirective (OpenMPDirectiveKind DKind, const LangOptions &LangOpts)
 Checks if the specified directive is an order concurrent nestable directive that can be nested within region corresponding to construct on which order clause was specified with concurrent as ordering argument.

Variables

static constexpr unsigned clang::NumberOfOMPMapClauseModifiers
 Number of allowed map-type-modifiers.
static constexpr unsigned clang::NumberOfOMPMotionModifiers
 Number of allowed motion-modifiers.
static constexpr unsigned clang::NumberOfOMPAllocateClauseModifiers
 Number of allowed allocate-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)
Value:
OMPC_ADJUST_ARGS_##Name,

Definition at line 209 of file OpenMPKinds.h.

◆ OPENMP_ALLOCATE_MODIFIER

#define OPENMP_ALLOCATE_MODIFIER ( Name)
Value:
OMPC_ALLOCATE_##Name,

Definition at line 248 of file OpenMPKinds.h.

◆ OPENMP_AT_KIND

#define OPENMP_AT_KIND ( Name)
Value:
OMPC_AT_##Name,

Definition at line 144 of file OpenMPKinds.h.

◆ OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND

#define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND ( Name)
Value:
OMPC_ATOMIC_DEFAULT_MEM_ORDER_##Name,

Definition at line 136 of file OpenMPKinds.h.

◆ OPENMP_BIND_KIND

#define OPENMP_BIND_KIND ( Name)
Value:
OMPC_BIND_##Name,

Definition at line 216 of file OpenMPKinds.h.

◆ OPENMP_DEFAULT_VARIABLE_CATEGORY

#define OPENMP_DEFAULT_VARIABLE_CATEGORY ( Name)
Value:
OMPC_DEFAULT_VC_##Name,

Definition at line 112 of file OpenMPKinds.h.

◆ OPENMP_DEFAULTMAP_KIND

#define OPENMP_DEFAULTMAP_KIND ( Name)
Value:
OMPC_DEFAULTMAP_##Name,

Definition at line 119 of file OpenMPKinds.h.

◆ OPENMP_DEFAULTMAP_MODIFIER

#define OPENMP_DEFAULTMAP_MODIFIER ( Name)
Value:
OMPC_DEFAULTMAP_MODIFIER_##Name,

Definition at line 128 of file OpenMPKinds.h.

◆ OPENMP_DEPEND_KIND

#define OPENMP_DEPEND_KIND ( Name)
Value:
OMPC_DEPEND_##Name,

Definition at line 56 of file OpenMPKinds.h.

◆ OPENMP_DEVICE_MODIFIER

#define OPENMP_DEVICE_MODIFIER ( Name)
Value:
OMPC_DEVICE_##Name,

Definition at line 49 of file OpenMPKinds.h.

◆ OPENMP_DEVICE_TYPE_KIND

#define OPENMP_DEVICE_TYPE_KIND ( Name)
Value:
OMPC_DEVICE_TYPE_##Name,

Definition at line 158 of file OpenMPKinds.h.

◆ OPENMP_DIST_SCHEDULE_KIND

#define OPENMP_DIST_SCHEDULE_KIND ( Name)
Value:
OMPC_DIST_SCHEDULE_##Name,

Definition at line 105 of file OpenMPKinds.h.

◆ OPENMP_DOACROSS_MODIFIER

#define OPENMP_DOACROSS_MODIFIER ( Name)
Value:
OMPC_DOACROSS_##Name,

Definition at line 241 of file OpenMPKinds.h.

◆ OPENMP_GRAINSIZE_MODIFIER

#define OPENMP_GRAINSIZE_MODIFIER ( Name)
Value:
OMPC_GRAINSIZE_##Name,

Definition at line 222 of file OpenMPKinds.h.

◆ OPENMP_LASTPRIVATE_KIND

#define OPENMP_LASTPRIVATE_KIND ( Name)
Value:
OMPC_LASTPRIVATE_##Name,

Definition at line 166 of file OpenMPKinds.h.

◆ OPENMP_LINEAR_KIND

#define OPENMP_LINEAR_KIND ( Name)
Value:
OMPC_LINEAR_##Name,

Definition at line 64 of file OpenMPKinds.h.

◆ OPENMP_MAP_KIND

#define OPENMP_MAP_KIND ( Name)
Value:
OMPC_MAP_##Name,

Definition at line 72 of file OpenMPKinds.h.

◆ OPENMP_MAP_MODIFIER_KIND

#define OPENMP_MAP_MODIFIER_KIND ( Name)
Value:
OMPC_MAP_MODIFIER_##Name,

Definition at line 81 of file OpenMPKinds.h.

◆ OPENMP_MOTION_MODIFIER_KIND

#define OPENMP_MOTION_MODIFIER_KIND ( Name)
Value:
OMPC_MOTION_MODIFIER_##Name,

Definition at line 93 of file OpenMPKinds.h.

◆ OPENMP_NUMTASKS_MODIFIER

#define OPENMP_NUMTASKS_MODIFIER ( Name)
Value:
OMPC_NUMTASKS_##Name,

Definition at line 228 of file OpenMPKinds.h.

◆ OPENMP_NUMTHREADS_MODIFIER

#define OPENMP_NUMTHREADS_MODIFIER ( Name)
Value:
OMPC_NUMTHREADS_##Name,

Definition at line 234 of file OpenMPKinds.h.

◆ OPENMP_ORDER_KIND

#define OPENMP_ORDER_KIND ( Name)
Value:
OMPC_ORDER_##Name,

Definition at line 173 of file OpenMPKinds.h.

◆ OPENMP_ORDER_MODIFIER

#define OPENMP_ORDER_MODIFIER ( Name)
Value:
OMPC_ORDER_MODIFIER_##Name,

Definition at line 181 of file OpenMPKinds.h.

◆ OPENMP_ORIGINAL_SHARING_MODIFIER

#define OPENMP_ORIGINAL_SHARING_MODIFIER ( Name)
Value:
OMPC_ORIGINAL_SHARING_##Name,

Definition at line 202 of file OpenMPKinds.h.

◆ OPENMP_REDUCTION_MODIFIER

#define OPENMP_REDUCTION_MODIFIER ( Name)
Value:
OMPC_REDUCTION_##Name,

Definition at line 195 of file OpenMPKinds.h.

◆ OPENMP_SCHEDULE_KIND

#define OPENMP_SCHEDULE_KIND ( Name)
Value:
OMPC_SCHEDULE_##Name,

Definition at line 32 of file OpenMPKinds.h.

◆ OPENMP_SCHEDULE_MODIFIER

#define OPENMP_SCHEDULE_MODIFIER ( Name)
Value:
OMPC_SCHEDULE_MODIFIER_##Name,

Definition at line 41 of file OpenMPKinds.h.

◆ OPENMP_SEVERITY_KIND

#define OPENMP_SEVERITY_KIND ( Name)
Value:
OMPC_SEVERITY_##Name,

Definition at line 151 of file OpenMPKinds.h.