//===- OMPConstants.h - OpenMP related constants and helpers ------ C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// \file /// /// This file defines constans and helpers used when dealing with OpenMP. /// //===----------------------------------------------------------------------===// #ifndef LLVM_FRONTEND_OPENMP_OMPCONSTANTS_H #define LLVM_FRONTEND_OPENMP_OMPCONSTANTS_H #include "llvm/ADT/BitmaskEnum.h" #include "llvm/ADT/StringRef.h" #include "llvm/Frontend/OpenMP/OMP.h" namespace llvm { namespace omp { LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE(…); /// IDs for all Internal Control Variables (ICVs). enum class InternalControlVar { … }; #define ICV_DATA_ENV … #include "llvm/Frontend/OpenMP/OMPKinds.def" enum class ICVInitValue { … }; #define ICV_INIT_VALUE … #include "llvm/Frontend/OpenMP/OMPKinds.def" /// IDs for all omp runtime library (RTL) functions. enum class RuntimeFunction { … }; #define OMP_RTL … #include "llvm/Frontend/OpenMP/OMPKinds.def" /// IDs for the different default kinds. enum class DefaultKind { … }; #define OMP_DEFAULT_KIND … #include "llvm/Frontend/OpenMP/OMPKinds.def" /// IDs for all omp runtime library ident_t flag encodings (see /// their defintion in openmp/runtime/src/kmp.h). enum class IdentFlag { … }; #define OMP_IDENT_FLAG … #include "llvm/Frontend/OpenMP/OMPKinds.def" // Version of the kernel argument format used by the omp runtime. #define OMP_KERNEL_ARG_VERSION … // Minimum version of the compiler that generates a kernel dynamic pointer. #define OMP_KERNEL_ARG_MIN_VERSION_WITH_DYN_PTR … /// \note This needs to be kept in sync with kmp.h enum sched_type. /// Todo: Update kmp.h to include this file, and remove the enums in kmp.h enum class OMPScheduleType { … }; /// Values for bit flags used to specify the mapping type for /// offloading. enum class OpenMPOffloadMappingFlags : uint64_t { … }; enum OpenMPOffloadingReservedDeviceIDs { … }; enum class AddressSpace : unsigned { … }; /// \note This needs to be kept in sync with interop.h enum kmp_interop_type_t.: enum class OMPInteropType { … }; /// Atomic compare operations. Currently OpenMP only supports ==, >, and <. enum class OMPAtomicCompareOp : unsigned { … }; /// Fields ids in kmp_depend_info record. enum class RTLDependInfoFields { … }; /// Dependence kind for RTL. enum class RTLDependenceKindTy { … }; /// A type of worksharing loop construct enum class WorksharingLoopType { … }; } // end namespace omp } // end namespace llvm #include "OMPDeviceConstants.h" #endif // LLVM_FRONTEND_OPENMP_OMPCONSTANTS_H