1/* 2 * kmp_config.h -- Feature macros 3 */ 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-exception 9// 10//===----------------------------------------------------------------------===// 11#ifndef KMP_CONFIG_H 12#define KMP_CONFIG_H 13 14#include "kmp_platform.h" 15 16// cmakedefine01 MACRO will define MACRO as either 0 or 1 17// cmakedefine MACRO 1 will define MACRO as 1 or leave undefined 18#cmakedefine01 DEBUG_BUILD 19#cmakedefine01 RELWITHDEBINFO_BUILD 20#cmakedefine01 LIBOMP_USE_ITT_NOTIFY 21#define USE_ITT_NOTIFY LIBOMP_USE_ITT_NOTIFY 22#if ! LIBOMP_USE_ITT_NOTIFY 23# define INTEL_NO_ITTNOTIFY_API 24#endif 25#cmakedefine01 LIBOMP_USE_VERSION_SYMBOLS 26#if LIBOMP_USE_VERSION_SYMBOLS 27# define KMP_USE_VERSION_SYMBOLS 28#endif 29#cmakedefine01 LIBOMP_HAVE_WEAK_ATTRIBUTE 30#define KMP_HAVE_WEAK_ATTRIBUTE LIBOMP_HAVE_WEAK_ATTRIBUTE 31#cmakedefine01 LIBOMP_HAVE_PSAPI 32#define KMP_HAVE_PSAPI LIBOMP_HAVE_PSAPI 33#cmakedefine01 LIBOMP_STATS 34#define KMP_STATS_ENABLED LIBOMP_STATS 35#cmakedefine01 LIBOMP_HAVE_X86INTRIN_H 36#define KMP_HAVE_X86INTRIN_H LIBOMP_HAVE_X86INTRIN_H 37#cmakedefine01 LIBOMP_HAVE___BUILTIN_READCYCLECOUNTER 38#define KMP_HAVE___BUILTIN_READCYCLECOUNTER LIBOMP_HAVE___BUILTIN_READCYCLECOUNTER 39#cmakedefine01 LIBOMP_HAVE___RDTSC 40#define KMP_HAVE___RDTSC LIBOMP_HAVE___RDTSC 41#cmakedefine01 LIBOMP_USE_DEBUGGER 42#define USE_DEBUGGER LIBOMP_USE_DEBUGGER 43#cmakedefine01 LIBOMP_OMPT_DEBUG 44#define OMPT_DEBUG LIBOMP_OMPT_DEBUG 45#cmakedefine01 LIBOMP_OMPT_SUPPORT 46#define OMPT_SUPPORT LIBOMP_OMPT_SUPPORT 47#cmakedefine01 LIBOMP_OMPT_OPTIONAL 48#define OMPT_OPTIONAL LIBOMP_OMPT_OPTIONAL 49#cmakedefine01 LIBOMP_USE_ADAPTIVE_LOCKS 50#define KMP_USE_ADAPTIVE_LOCKS LIBOMP_USE_ADAPTIVE_LOCKS 51#define KMP_DEBUG_ADAPTIVE_LOCKS 0 52#cmakedefine01 LIBOMP_USE_INTERNODE_ALIGNMENT 53#define KMP_USE_INTERNODE_ALIGNMENT LIBOMP_USE_INTERNODE_ALIGNMENT 54#cmakedefine01 LIBOMP_ENABLE_ASSERTIONS 55#define KMP_USE_ASSERT LIBOMP_ENABLE_ASSERTIONS 56#cmakedefine01 LIBOMP_USE_HIER_SCHED 57#define KMP_USE_HIER_SCHED LIBOMP_USE_HIER_SCHED 58#cmakedefine01 STUBS_LIBRARY 59#cmakedefine01 LIBOMP_USE_HWLOC 60#define KMP_USE_HWLOC LIBOMP_USE_HWLOC 61#cmakedefine01 LIBOMP_ENABLE_SHARED 62#define KMP_DYNAMIC_LIB LIBOMP_ENABLE_SHARED 63#define KMP_ARCH_STR "@LIBOMP_LEGAL_ARCH@" 64#define KMP_LIBRARY_FILE "@LIBOMP_LIB_FILE@" 65#define KMP_VERSION_MAJOR @LIBOMP_VERSION_MAJOR@ 66#define KMP_VERSION_MINOR @LIBOMP_VERSION_MINOR@ 67#cmakedefine01 LIBOMP_TSAN_SUPPORT 68#if LIBOMP_TSAN_SUPPORT 69#define TSAN_SUPPORT 70#endif 71#cmakedefine01 MSVC 72#define KMP_MSVC_COMPAT MSVC 73#cmakedefine01 LIBOMP_HAVE_WAITPKG_INTRINSICS 74#define KMP_HAVE_WAITPKG_INTRINSICS LIBOMP_HAVE_WAITPKG_INTRINSICS 75#cmakedefine01 LIBOMP_HAVE_RTM_INTRINSICS 76#define KMP_HAVE_RTM_INTRINSICS LIBOMP_HAVE_RTM_INTRINSICS 77#cmakedefine01 LIBOMP_HAVE_IMMINTRIN_H 78#define KMP_HAVE_IMMINTRIN_H LIBOMP_HAVE_IMMINTRIN_H 79#cmakedefine01 LIBOMP_HAVE_INTRIN_H 80#define KMP_HAVE_INTRIN_H LIBOMP_HAVE_INTRIN_H 81#cmakedefine01 LIBOMP_HAVE_ATTRIBUTE_WAITPKG 82#define KMP_HAVE_ATTRIBUTE_WAITPKG LIBOMP_HAVE_ATTRIBUTE_WAITPKG 83#cmakedefine01 LIBOMP_HAVE_ATTRIBUTE_RTM 84#define KMP_HAVE_ATTRIBUTE_RTM LIBOMP_HAVE_ATTRIBUTE_RTM 85 86// Configured cache line based on architecture 87#if KMP_ARCH_PPC64 88# define CACHE_LINE 128 89#else 90# define CACHE_LINE 64 91#endif 92 93#if ! KMP_32_BIT_ARCH 94# define BUILD_I8 1 95#endif 96 97#define KMP_NESTED_HOT_TEAMS 1 98#define KMP_ADJUST_BLOCKTIME 1 99#define BUILD_PARALLEL_ORDERED 1 100#define KMP_ASM_INTRINS 1 101#define USE_ITT_BUILD LIBOMP_USE_ITT_NOTIFY 102#define INTEL_ITTNOTIFY_PREFIX __kmp_itt_ 103#if ! KMP_MIC 104# define USE_LOAD_BALANCE 1 105#endif 106#if ! (KMP_OS_WINDOWS || KMP_OS_DARWIN) 107# define KMP_TDATA_GTID 1 108#endif 109#if STUBS_LIBRARY 110# define KMP_STUB 1 111#endif 112#if DEBUG_BUILD || RELWITHDEBINFO_BUILD 113# define KMP_DEBUG 1 114#endif 115 116#if KMP_OS_WINDOWS 117# define KMP_WIN_CDECL 118#else 119# define BUILD_TV 120# define KMP_GOMP_COMPAT 121#endif 122 123#endif // KMP_CONFIG_H 124