148 lines · plain
1/*2 * kmp_config.h -- Feature macros3 */4//===----------------------------------------------------------------------===//5//6// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.7// See https://llvm.org/LICENSE.txt for license information.8// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception9//10//===----------------------------------------------------------------------===//11#ifndef KMP_CONFIG_H12#define KMP_CONFIG_H13 14#include "kmp_platform.h"15 16// cmakedefine01 MACRO will define MACRO as either 0 or 117// cmakedefine MACRO 1 will define MACRO as 1 or leave undefined18#cmakedefine01 DEBUG_BUILD19#cmakedefine01 RELWITHDEBINFO_BUILD20#cmakedefine01 LIBOMP_USE_ITT_NOTIFY21#define USE_ITT_NOTIFY LIBOMP_USE_ITT_NOTIFY22#if ! LIBOMP_USE_ITT_NOTIFY23# define INTEL_NO_ITTNOTIFY_API24#endif25#cmakedefine01 LIBOMP_USE_VERSION_SYMBOLS26#if LIBOMP_USE_VERSION_SYMBOLS27# define KMP_USE_VERSION_SYMBOLS28#endif29#cmakedefine01 LIBOMP_HAVE_WEAK_ATTRIBUTE30#define KMP_HAVE_WEAK_ATTRIBUTE LIBOMP_HAVE_WEAK_ATTRIBUTE31#cmakedefine01 LIBOMP_HAVE_PSAPI32#define KMP_HAVE_PSAPI LIBOMP_HAVE_PSAPI33#cmakedefine01 LIBOMP_STATS34#define KMP_STATS_ENABLED LIBOMP_STATS35#cmakedefine01 LIBOMP_HAVE_X86INTRIN_H36#define KMP_HAVE_X86INTRIN_H LIBOMP_HAVE_X86INTRIN_H37#cmakedefine01 LIBOMP_HAVE___BUILTIN_READCYCLECOUNTER38#define KMP_HAVE___BUILTIN_READCYCLECOUNTER LIBOMP_HAVE___BUILTIN_READCYCLECOUNTER39#cmakedefine01 LIBOMP_HAVE___RDTSC40#define KMP_HAVE___RDTSC LIBOMP_HAVE___RDTSC41#cmakedefine01 LIBOMP_USE_DEBUGGER42#define USE_DEBUGGER LIBOMP_USE_DEBUGGER43#cmakedefine01 LIBOMP_OMPT_DEBUG44#define OMPT_DEBUG LIBOMP_OMPT_DEBUG45#cmakedefine01 LIBOMP_OMPT_SUPPORT46#define OMPT_SUPPORT LIBOMP_OMPT_SUPPORT47#cmakedefine01 LIBOMP_OMPD_SUPPORT48#define OMPD_SUPPORT LIBOMP_OMPD_SUPPORT49#cmakedefine01 LIBOMP_OMPX_TASKGRAPH50#define OMPX_TASKGRAPH LIBOMP_OMPX_TASKGRAPH51#cmakedefine01 LIBOMP_PROFILING_SUPPORT52#define OMP_PROFILING_SUPPORT LIBOMP_PROFILING_SUPPORT53#cmakedefine01 LIBOMP_OMPT_OPTIONAL54#define OMPT_OPTIONAL LIBOMP_OMPT_OPTIONAL55#cmakedefine01 LIBOMP_USE_ADAPTIVE_LOCKS56#define KMP_USE_ADAPTIVE_LOCKS LIBOMP_USE_ADAPTIVE_LOCKS57#define KMP_DEBUG_ADAPTIVE_LOCKS 058#cmakedefine01 LIBOMP_USE_INTERNODE_ALIGNMENT59#define KMP_USE_INTERNODE_ALIGNMENT LIBOMP_USE_INTERNODE_ALIGNMENT60#cmakedefine01 LIBOMP_ENABLE_ASSERTIONS61#define KMP_USE_ASSERT LIBOMP_ENABLE_ASSERTIONS62#cmakedefine01 LIBOMP_USE_HIER_SCHED63#define KMP_USE_HIER_SCHED LIBOMP_USE_HIER_SCHED64#cmakedefine01 STUBS_LIBRARY65#cmakedefine01 LIBOMP_USE_HWLOC66#define KMP_USE_HWLOC LIBOMP_USE_HWLOC67#cmakedefine01 LIBOMP_ENABLE_SHARED68#define KMP_DYNAMIC_LIB LIBOMP_ENABLE_SHARED69#define KMP_ARCH_STR "@LIBOMP_LEGAL_ARCH@"70#define KMP_LIBRARY_FILE "@LIBOMP_LIB_FILE@"71#define KMP_VERSION_MAJOR @LIBOMP_VERSION_MAJOR@72#define KMP_VERSION_MINOR @LIBOMP_VERSION_MINOR@73#cmakedefine01 MSVC74#define KMP_MSVC_COMPAT MSVC75#cmakedefine01 LIBOMP_HAVE_WAITPKG_INTRINSICS76#define KMP_HAVE_WAITPKG_INTRINSICS LIBOMP_HAVE_WAITPKG_INTRINSICS77#cmakedefine01 LIBOMP_HAVE_RTM_INTRINSICS78#define KMP_HAVE_RTM_INTRINSICS LIBOMP_HAVE_RTM_INTRINSICS79#cmakedefine01 LIBOMP_HAVE_IMMINTRIN_H80#define KMP_HAVE_IMMINTRIN_H LIBOMP_HAVE_IMMINTRIN_H81#cmakedefine01 LIBOMP_HAVE_INTRIN_H82#define KMP_HAVE_INTRIN_H LIBOMP_HAVE_INTRIN_H83#cmakedefine01 LIBOMP_HAVE_ATTRIBUTE_WAITPKG84#define KMP_HAVE_ATTRIBUTE_WAITPKG LIBOMP_HAVE_ATTRIBUTE_WAITPKG85#cmakedefine01 LIBOMP_HAVE_ATTRIBUTE_RTM86#define KMP_HAVE_ATTRIBUTE_RTM LIBOMP_HAVE_ATTRIBUTE_RTM87#cmakedefine01 LIBOMP_ARCH_AARCH64_A64FX88#define KMP_ARCH_AARCH64_A64FX LIBOMP_ARCH_AARCH64_A64FX89#cmakedefine01 LIBOMP_HAVE_XMMINTRIN_H90#define KMP_HAVE_XMMINTRIN_H LIBOMP_HAVE_XMMINTRIN_H91#cmakedefine01 LIBOMP_HAVE__MM_MALLOC92#define KMP_HAVE__MM_MALLOC LIBOMP_HAVE__MM_MALLOC93#cmakedefine01 LIBOMP_HAVE_ALIGNED_ALLOC94#define KMP_HAVE_ALIGNED_ALLOC LIBOMP_HAVE_ALIGNED_ALLOC95#cmakedefine01 LIBOMP_HAVE_POSIX_MEMALIGN96#define KMP_HAVE_POSIX_MEMALIGN LIBOMP_HAVE_POSIX_MEMALIGN97#cmakedefine01 LIBOMP_HAVE__ALIGNED_MALLOC98#define KMP_HAVE__ALIGNED_MALLOC LIBOMP_HAVE__ALIGNED_MALLOC99#cmakedefine01 OPENMP_ENABLE_LIBOMPTARGET100#define ENABLE_LIBOMPTARGET OPENMP_ENABLE_LIBOMPTARGET101 102// Configured cache line based on architecture103#if KMP_ARCH_PPC64 || KMP_ARCH_PPC104# define CACHE_LINE 128105#elif KMP_ARCH_AARCH64_A64FX106# define CACHE_LINE 256107#elif KMP_ARCH_S390X108# define CACHE_LINE 256109#else110# define CACHE_LINE 64111#endif112 113#if ! KMP_32_BIT_ARCH114# define BUILD_I8 1115#endif116 117#define KMP_ADJUST_BLOCKTIME 1118#define BUILD_PARALLEL_ORDERED 1119#define KMP_ASM_INTRINS 1120#define USE_ITT_BUILD LIBOMP_USE_ITT_NOTIFY121#define INTEL_ITTNOTIFY_PREFIX __kmp_itt_122#if ! (KMP_MIC || KMP_OS_HAIKU)123# define USE_LOAD_BALANCE 1124#endif125#if ! (KMP_OS_WINDOWS || KMP_OS_DARWIN)126# define KMP_TDATA_GTID 1127#endif128#if STUBS_LIBRARY129# define KMP_STUB 1130#endif131#if DEBUG_BUILD || RELWITHDEBINFO_BUILD132# define KMP_DEBUG 1133#endif134 135#if KMP_OS_WINDOWS136# define KMP_WIN_CDECL137#else138# define BUILD_TV139# define KMP_GOMP_COMPAT140#endif141 142// use shared memory with dynamic library (except Android, where shm_*143// functions don't exist).144#if KMP_OS_UNIX && KMP_DYNAMIC_LIB && !__ANDROID__145#define KMP_USE_SHM146#endif147#endif // KMP_CONFIG_H148