aboutsummaryrefslogtreecommitdiff
path: root/lib/libomp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libomp')
-rw-r--r--lib/libomp/Makefile21
-rw-r--r--lib/libomp/kmp_config.h8
-rw-r--r--lib/libomp/kmp_i18n_default.inc9
-rw-r--r--lib/libomp/kmp_i18n_id.inc5
-rw-r--r--lib/libomp/omp-tools.h34
-rw-r--r--lib/libomp/omp.h10
6 files changed, 72 insertions, 15 deletions
diff --git a/lib/libomp/Makefile b/lib/libomp/Makefile
index f2ca913e43f3..6c14c7d21077 100644
--- a/lib/libomp/Makefile
+++ b/lib/libomp/Makefile
@@ -1,3 +1,5 @@
+# z_Linux_asm.S is missing BTI support
+MK_BRANCH_PROTECTION=no
.include <bsd.compiler.mk>
@@ -55,14 +57,29 @@ CFLAGS+= -fdata-sections
CXXFLAGS+= -fvisibility-inlines-hidden
CXXFLAGS+= -fno-exceptions
CXXFLAGS+= -fno-rtti
-CXXSTD= c++11
+CXXSTD= c++17
-.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 90000
+.if ${COMPILER_TYPE} == "clang"
+.if ${MACHINE_CPUARCH} == "i386"
+.if ${COMPILER_VERSION} >= 90000
# When targeting i386, clang 9.0.0 produces a new warning about large atomic
# operations "possibly incurring significant performance penalties", but there
# is not much we can do about it.
CWARNFLAGS+= -Wno-atomic-alignment
.endif
+.if ${COMPILER_VERSION} >= 170000
+# When targeting i386, clang 17.0.0 produces a new warning that __sync
+# builtin operations must have natural alignment, but there is not much we
+# can do about it.
+CWARNFLAGS+= -Wno-sync-alignment
+.endif # COMPILER_VERSION >= 170000
+.endif # MACHINE_CPUARCH == i386
+.if ${COMPILER_VERSION} >= 180000
+# clang 18.0.0 introduces a new warning about variable length arrays in C++,
+# which OpenMP makes use of in several sources.
+CXXWARNFLAGS+= -Wno-vla-cxx-extension
+.endif # COMPILER_VERSION >= 180000
+.endif # COMPILER_TYPE == clang
LDFLAGS+= -Wl,--warn-shared-textrel
LDFLAGS+= -Wl,--gc-sections
diff --git a/lib/libomp/kmp_config.h b/lib/libomp/kmp_config.h
index 7d11e27cc4b1..9caf4b8cdf44 100644
--- a/lib/libomp/kmp_config.h
+++ b/lib/libomp/kmp_config.h
@@ -46,6 +46,8 @@
#define OMPT_SUPPORT LIBOMP_OMPT_SUPPORT
#define LIBOMP_OMPD_SUPPORT 0
#define OMPD_SUPPORT LIBOMP_OMPD_SUPPORT
+#define LIBOMP_OMPX_TASKGRAPH 0
+#define OMPX_TASKGRAPH LIBOMP_OMPX_TASKGRAPH
#define LIBOMP_PROFILING_SUPPORT 0
#define OMP_PROFILING_SUPPORT LIBOMP_PROFILING_SUPPORT
#define LIBOMP_OMPT_OPTIONAL 1
@@ -142,12 +144,16 @@
#define KMP_HAVE_POSIX_MEMALIGN LIBOMP_HAVE_POSIX_MEMALIGN
#define LIBOMP_HAVE__ALIGNED_MALLOC 0
#define KMP_HAVE__ALIGNED_MALLOC LIBOMP_HAVE__ALIGNED_MALLOC
+#define OPENMP_ENABLE_LIBOMPTARGET 0
+#define ENABLE_LIBOMPTARGET OPENMP_ENABLE_LIBOMPTARGET
// Configured cache line based on architecture
-#if KMP_ARCH_PPC64
+#if KMP_ARCH_PPC64 || KMP_ARCH_PPC
# define CACHE_LINE 128
#elif KMP_ARCH_AARCH64_A64FX
# define CACHE_LINE 256
+#elif KMP_ARCH_S390X
+# define CACHE_LINE 256
#else
# define CACHE_LINE 64
#endif
diff --git a/lib/libomp/kmp_i18n_default.inc b/lib/libomp/kmp_i18n_default.inc
index 3751a31cf3bb..a59def0a8560 100644
--- a/lib/libomp/kmp_i18n_default.inc
+++ b/lib/libomp/kmp_i18n_default.inc
@@ -1,5 +1,5 @@
// Do not edit this file! //
-// The file was generated from en_US.txt by message-converter.pl on Tue Apr 11 20:59:17 2023. //
+// The file was generated from en_US.txt by message-converter.py on Sat Jul 27 14:17:03 2024. //
static char const *
__kmp_i18n_default_meta[] =
@@ -414,6 +414,9 @@ __kmp_i18n_default_messages[] =
"KMP_HW_SUBSET ignored: all hardware resources would be filtered, please reduce the filter.",
"KMP_HW_SUBSET ignored: Too many attributes specified. This machine is not a hybrid architecutre.",
"KMP_HW_SUBSET: ignoring %1$s attribute. This machine is not a hybrid architecutre.",
+ "Target memory not available, will use default allocator.",
+ "%1$s ignored: This machine is not a hybrid architecutre. Using \"%2$s\" instead.",
+ "%1$s ignored: %2$s is not available. Using \"%3$s\" instead.",
NULL
};
@@ -421,7 +424,7 @@ static char const *
__kmp_i18n_default_hints[] =
{
NULL,
- "Please submit a bug report with this message, compile and run commands used, and machine configuration info including native compiler and operating system versions. Faster response will be obtained by including all program sources. For information on submitting this issue, please see https://bugs.llvm.org/.",
+ "Please submit a bug report with this message, compile and run commands used, and machine configuration info including native compiler and operating system versions. Faster response will be obtained by including all program sources. For information on submitting this issue, please see https://github.com/llvm/llvm-project/issues/.",
"Check NLSPATH environment variable, its value is \"%1$s\".",
"Please try changing the shell stack limit or adjusting the OMP_STACKSIZE environment variable.",
"Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_THREAD_LIMIT (if any are set).",
@@ -466,7 +469,7 @@ __kmp_i18n_sections[] =
{ 5, __kmp_i18n_default_meta },
{ 79, __kmp_i18n_default_strings },
{ 6, __kmp_i18n_default_formats },
- { 298, __kmp_i18n_default_messages },
+ { 301, __kmp_i18n_default_messages },
{ 29, __kmp_i18n_default_hints },
{ 0, NULL }
};
diff --git a/lib/libomp/kmp_i18n_id.inc b/lib/libomp/kmp_i18n_id.inc
index e220b4f75586..027bbe24d970 100644
--- a/lib/libomp/kmp_i18n_id.inc
+++ b/lib/libomp/kmp_i18n_id.inc
@@ -1,5 +1,5 @@
// Do not edit this file! //
-// The file was generated from en_US.txt by message-converter.pl on Tue Apr 11 20:59:17 2023. //
+// The file was generated from en_US.txt by message-converter.py on Sat Jul 27 14:17:03 2024. //
enum kmp_i18n_id {
@@ -408,6 +408,9 @@ enum kmp_i18n_id {
kmp_i18n_msg_AffHWSubsetAllFiltered,
kmp_i18n_msg_AffHWSubsetAttrsNonHybrid,
kmp_i18n_msg_AffHWSubsetIgnoringAttr,
+ kmp_i18n_msg_TargetMemNotAvailable,
+ kmp_i18n_msg_AffIgnoringNonHybrid,
+ kmp_i18n_msg_AffIgnoringNotAvailable,
kmp_i18n_msg_last,
// Set #5, hints.
diff --git a/lib/libomp/omp-tools.h b/lib/libomp/omp-tools.h
index 53defaa5d09e..471f46a9073e 100644
--- a/lib/libomp/omp-tools.h
+++ b/lib/libomp/omp-tools.h
@@ -78,6 +78,8 @@
/* implicit barrier at the end of worksharing */ \
macro (ompt_state_wait_barrier_implicit, 0x013) /* implicit barrier */ \
macro (ompt_state_wait_barrier_explicit, 0x014) /* explicit barrier */ \
+ macro (ompt_state_wait_barrier_implementation, 0x015) /* implementation barrier */ \
+ macro (ompt_state_wait_barrier_teams, 0x016) /* teams barrier */ \
\
/* task wait states (32..63) */ \
macro (ompt_state_wait_taskwait, 0x020) /* waiting at a taskwait */ \
@@ -211,6 +213,10 @@ typedef enum kmp_mutex_impl_t {
* definitions generated from spec
*****************************************************************************/
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
typedef enum ompt_callbacks_t {
ompt_callback_thread_begin = 1,
ompt_callback_thread_end = 2,
@@ -413,13 +419,15 @@ typedef enum ompt_target_map_flag_t {
} ompt_target_map_flag_t;
typedef enum ompt_dependence_type_t {
- ompt_dependence_type_in = 1,
- ompt_dependence_type_out = 2,
- ompt_dependence_type_inout = 3,
- ompt_dependence_type_mutexinoutset = 4,
- ompt_dependence_type_source = 5,
- ompt_dependence_type_sink = 6,
- ompt_dependence_type_inoutset = 7
+ ompt_dependence_type_in = 1,
+ ompt_dependence_type_out = 2,
+ ompt_dependence_type_inout = 3,
+ ompt_dependence_type_mutexinoutset = 4,
+ ompt_dependence_type_source = 5,
+ ompt_dependence_type_sink = 6,
+ ompt_dependence_type_inoutset = 7,
+ ompt_dependence_type_out_all_memory = 34,
+ ompt_dependence_type_inout_all_memory = 35
} ompt_dependence_type_t;
typedef enum ompt_severity_t {
@@ -1402,6 +1410,14 @@ typedef ompt_record_ompt_t *(*ompt_get_record_ompt_t) (
ompt_buffer_cursor_t current
);
+#ifdef _WIN32
+__declspec(dllexport)
+#else
+__attribute__((visibility("default")))
+#endif
+ompt_start_tool_result_t *ompt_start_tool(unsigned int omp_version,
+ const char *runtime_version);
+
#define ompt_id_none 0
#define ompt_data_none {0}
#define ompt_time_none 0
@@ -1412,4 +1428,8 @@ typedef ompt_record_ompt_t *(*ompt_get_record_ompt_t) (
#define ompd_segment_none 0
+#if defined(__cplusplus)
+} // extern "C"
+#endif
+
#endif /* __OMPT__ */
diff --git a/lib/libomp/omp.h b/lib/libomp/omp.h
index 618e09de86de..493e0e86e8dc 100644
--- a/lib/libomp/omp.h
+++ b/lib/libomp/omp.h
@@ -15,6 +15,7 @@
#ifndef __OMP_H
# define __OMP_H
+# include <stddef.h>
# include <stdlib.h>
# include <stdint.h>
@@ -155,6 +156,8 @@
/* OpenMP 5.1 interop */
typedef intptr_t omp_intptr_t;
+ extern void __KAI_KMPC_CONVENTION ompx_dump_mapping_tables(void);
+
/* 0..omp_get_num_interop_properties()-1 are reserved for implementation-defined properties */
typedef enum omp_interop_property {
omp_ipr_fr_id = -1,
@@ -236,6 +239,11 @@
extern int __KAI_KMPC_CONVENTION omp_target_memcpy_rect_async(void *, const void *, size_t, int, const size_t *,
const size_t *, const size_t *, const size_t *, const size_t *, int, int,
int, omp_depend_t *);
+
+ /* OpenMP 6.0 device memory routines */
+ extern void * __KAI_KMPC_CONVENTION omp_target_memset(void *, int, size_t, int);
+ extern void * __KAI_KMPC_CONVENTION omp_target_memset_async(void *, int, size_t, int, int, omp_depend_t *);
+
/*!
* The `omp_get_mapped_ptr` routine returns the device pointer that is associated with a host pointer for a given device.
*/
@@ -497,7 +505,7 @@
extern int __KAI_KMPC_CONVENTION omp_in_explicit_task(void);
/* LLVM Extensions */
- extern void *llvm_omp_target_dynamic_shared_alloc();
+ extern void *llvm_omp_target_dynamic_shared_alloc(void);
# undef __KAI_KMPC_CONVENTION
# undef __KMP_IMP