2 * kmp_config.h -- Feature macros
4 //===----------------------------------------------------------------------===//
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
10 //===----------------------------------------------------------------------===//
14 #include "kmp_platform.h"
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
25 #cmakedefine01 LIBOMP_USE_VERSION_SYMBOLS
26 #if LIBOMP_USE_VERSION_SYMBOLS
27 # define KMP_USE_VERSION_SYMBOLS
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
72 #define KMP_MSVC_COMPAT MSVC
74 // Configured cache line based on architecture
76 # define CACHE_LINE 128
78 # define CACHE_LINE 64
85 #define KMP_NESTED_HOT_TEAMS 1
86 #define KMP_ADJUST_BLOCKTIME 1
87 #define BUILD_PARALLEL_ORDERED 1
88 #define KMP_ASM_INTRINS 1
89 #define USE_ITT_BUILD LIBOMP_USE_ITT_NOTIFY
90 #define INTEL_ITTNOTIFY_PREFIX __kmp_itt_
92 # define USE_LOAD_BALANCE 1
94 #if ! (KMP_OS_WINDOWS || KMP_OS_DARWIN)
95 # define KMP_TDATA_GTID 1
100 #if DEBUG_BUILD || RELWITHDEBINFO_BUILD
105 # define KMP_WIN_CDECL
108 # define KMP_GOMP_COMPAT
111 #endif // KMP_CONFIG_H