diff --git a/openmp/libomptarget/CMakeLists.txt b/openmp/libomptarget/CMakeLists.txt index ca301c42bbb1e..f2c48dc54fc88 100644 --- a/openmp/libomptarget/CMakeLists.txt +++ b/openmp/libomptarget/CMakeLists.txt @@ -40,16 +40,22 @@ include_directories(${LIBOMPTARGET_LLVM_INCLUDE_DIRS}) # This is a list of all the targets that are supported/tested right now. set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} aarch64-unknown-linux-gnu") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} aarch64-unknown-linux-gnu-oldDriver") +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} aarch64-unknown-linux-gnu-LTO") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} amdgcn-amd-amdhsa") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} amdgcn-amd-amdhsa-oldDriver") +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} amdgcn-amd-amdhsa-LTO") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} powerpc64le-ibm-linux-gnu") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} powerpc64le-ibm-linux-gnu-oldDriver") +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} powerpc64le-ibm-linux-gnu-LTO") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} powerpc64-ibm-linux-gnu") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} powerpc64-ibm-linux-gnu-oldDriver") +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} powerpc64-ibm-linux-gnu-LTO") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} x86_64-pc-linux-gnu") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} x86_64-pc-linux-gnu-oldDriver") +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} x86_64-pc-linux-gnu-LTO") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} nvptx64-nvidia-cuda") set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} nvptx64-nvidia-cuda-oldDriver") +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} nvptx64-nvidia-cuda-LTO") # Once the plugins for the different targets are validated, they will be added to # the list of supported targets in the current system. diff --git a/openmp/libomptarget/plugins/CMakeLists.txt b/openmp/libomptarget/plugins/CMakeLists.txt index e80799ee2b3a8..c8c484da89500 100644 --- a/openmp/libomptarget/plugins/CMakeLists.txt +++ b/openmp/libomptarget/plugins/CMakeLists.txt @@ -57,6 +57,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "${tmachine}$") # Report to the parent scope that we are building a plugin. set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS} ${tmachine_triple} ${tmachine_triple}-oldDriver" PARENT_SCOPE) + set(LIBOMPTARGET_SYSTEM_TARGETS + "${LIBOMPTARGET_SYSTEM_TARGETS} ${tmachine_triple} ${tmachine_triple}-LTO" PARENT_SCOPE) set(LIBOMPTARGET_TESTED_PLUGINS "${LIBOMPTARGET_TESTED_PLUGINS}" PARENT_SCOPE) diff --git a/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt b/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt index 4088f2d2a4ba5..f658828ef6c48 100644 --- a/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt +++ b/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt @@ -117,6 +117,7 @@ if (${amdgpu_arch_result}) else() # Report to the parent scope that we are building a plugin for amdgpu set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS} amdgcn-amd-amdhsa amdgcn-amd-amdhsa-oldDriver" PARENT_SCOPE) + set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS} amdgcn-amd-amdhsa amdgcn-amd-amdhsa-LTO" PARENT_SCOPE) list(APPEND LIBOMPTARGET_TESTED_PLUGINS "omptarget.rtl.amdgpu") set(LIBOMPTARGET_TESTED_PLUGINS "${LIBOMPTARGET_TESTED_PLUGINS}" PARENT_SCOPE) endif() diff --git a/openmp/libomptarget/plugins/cuda/CMakeLists.txt b/openmp/libomptarget/plugins/cuda/CMakeLists.txt index 20b0aff16ae5b..c152d24de4e04 100644 --- a/openmp/libomptarget/plugins/cuda/CMakeLists.txt +++ b/openmp/libomptarget/plugins/cuda/CMakeLists.txt @@ -74,6 +74,7 @@ target_link_libraries(omptarget.rtl.cuda if (LIBOMPTARGET_CAN_LINK_LIBCUDA OR LIBOMPTARGET_FORCE_DLOPEN_LIBCUDA) libomptarget_say("Enable tests using CUDA plugin") set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS} nvptx64-nvidia-cuda nvptx64-nvidia-cuda-oldDriver" PARENT_SCOPE) + set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS} nvptx64-nvidia-cuda nvptx64-nvidia-cuda-LTO" PARENT_SCOPE) list(APPEND LIBOMPTARGET_TESTED_PLUGINS "omptarget.rtl.cuda") set(LIBOMPTARGET_TESTED_PLUGINS "${LIBOMPTARGET_TESTED_PLUGINS}" PARENT_SCOPE) else() diff --git a/openmp/libomptarget/test/lit.cfg b/openmp/libomptarget/test/lit.cfg index 9b69ffeb08c9d..1b4aff47d762f 100644 --- a/openmp/libomptarget/test/lit.cfg +++ b/openmp/libomptarget/test/lit.cfg @@ -106,10 +106,14 @@ else: # Unices config.test_flags += " --libomptarget-nvptx-bc-path=" + config.library_dir if config.libomptarget_current_target.endswith('-oldDriver'): config.test_flags += " -fno-openmp-new-driver" + if config.libomptarget_current_target.endswith('-LTO'): + config.test_flags += " -offload-lto" def remove_suffix_if_present(name): if name.endswith('-oldDriver'): return name[:-10] + if name.endswith('-LTO'): + return name[:-4] else: return name diff --git a/openmp/libomptarget/test/mapping/data_member_ref.cpp b/openmp/libomptarget/test/mapping/data_member_ref.cpp index e8431570612b8..405e0ef3d8c77 100644 --- a/openmp/libomptarget/test/mapping/data_member_ref.cpp +++ b/openmp/libomptarget/test/mapping/data_member_ref.cpp @@ -3,6 +3,7 @@ // Wrong results on amdgpu // XFAIL: amdgcn-amd-amdhsa // XFAIL: amdgcn-amd-amdhsa-oldDriver +// XFAIL: amdgcn-amd-amdhsa-LTO #include diff --git a/openmp/libomptarget/test/mapping/declare_mapper_nested_default_mappers.cpp b/openmp/libomptarget/test/mapping/declare_mapper_nested_default_mappers.cpp index 6f91296f3b449..5004b4432b02a 100644 --- a/openmp/libomptarget/test/mapping/declare_mapper_nested_default_mappers.cpp +++ b/openmp/libomptarget/test/mapping/declare_mapper_nested_default_mappers.cpp @@ -3,6 +3,7 @@ // Wrong results on amdgpu // XFAIL: amdgcn-amd-amdhsa // XFAIL: amdgcn-amd-amdhsa-oldDriver +// XFAIL: amdgcn-amd-amdhsa-LTO #include #include diff --git a/openmp/libomptarget/test/mapping/declare_mapper_nested_mappers.cpp b/openmp/libomptarget/test/mapping/declare_mapper_nested_mappers.cpp index bcc252e5078fa..fe4a14d0732f7 100644 --- a/openmp/libomptarget/test/mapping/declare_mapper_nested_mappers.cpp +++ b/openmp/libomptarget/test/mapping/declare_mapper_nested_mappers.cpp @@ -3,6 +3,7 @@ // Wrong results on amdgpu // XFAIL: amdgcn-amd-amdhsa // XFAIL: amdgcn-amd-amdhsa-oldDriver +// XFAIL: amdgcn-amd-amdhsa-LTO #include #include diff --git a/openmp/libomptarget/test/mapping/lambda_by_value.cpp b/openmp/libomptarget/test/mapping/lambda_by_value.cpp index 6292c0d5d407d..4a36b464996e8 100644 --- a/openmp/libomptarget/test/mapping/lambda_by_value.cpp +++ b/openmp/libomptarget/test/mapping/lambda_by_value.cpp @@ -3,6 +3,7 @@ // Wrong results on amdgpu // XFAIL: amdgcn-amd-amdhsa // XFAIL: amdgcn-amd-amdhsa-oldDriver +// XFAIL: amdgcn-amd-amdhsa-LTO #include #include diff --git a/openmp/libomptarget/test/mapping/lambda_mapping.cpp b/openmp/libomptarget/test/mapping/lambda_mapping.cpp index 1410d4ce299cd..24a1075bb348d 100644 --- a/openmp/libomptarget/test/mapping/lambda_mapping.cpp +++ b/openmp/libomptarget/test/mapping/lambda_mapping.cpp @@ -3,6 +3,7 @@ // Error on the gpu that crashes the host // UNSUPPORTED: amdgcn-amd-amdhsa // UNSUPPORTED: amdgcn-amd-amdhsa-oldDriver +// UNSUPPORTED: amdgcn-amd-amdhsa-LTO #include diff --git a/openmp/libomptarget/test/mapping/map_back_race.cpp b/openmp/libomptarget/test/mapping/map_back_race.cpp index 970e901b1da20..60db430f311a1 100644 --- a/openmp/libomptarget/test/mapping/map_back_race.cpp +++ b/openmp/libomptarget/test/mapping/map_back_race.cpp @@ -2,9 +2,9 @@ // Taken from https://github.com/llvm/llvm-project/issues/54216 - // UNSUPPORTED: x86_64-pc-linux-gnu // UNSUPPORTED: x86_64-pc-linux-gnu-oldDriver +// UNSUPPORTED: x86_64-pc-linux-gnu-LTO #include #include diff --git a/openmp/libomptarget/test/mapping/ompx_hold/struct.c b/openmp/libomptarget/test/mapping/ompx_hold/struct.c index 325392c6f1009..dada8ab060f70 100644 --- a/openmp/libomptarget/test/mapping/ompx_hold/struct.c +++ b/openmp/libomptarget/test/mapping/ompx_hold/struct.c @@ -4,6 +4,7 @@ // Wrong results on amdgpu // XFAIL: amdgcn-amd-amdhsa // XFAIL: amdgcn-amd-amdhsa-oldDriver +// XFAIL: amdgcn-amd-amdhsa-LTO #include #include diff --git a/openmp/libomptarget/test/offloading/bug49021.cpp b/openmp/libomptarget/test/offloading/bug49021.cpp index 60049228a262b..5e1eb20009e15 100644 --- a/openmp/libomptarget/test/offloading/bug49021.cpp +++ b/openmp/libomptarget/test/offloading/bug49021.cpp @@ -3,6 +3,7 @@ // Hangs // UNSUPPORTED: amdgcn-amd-amdhsa // UNSUPPORTED: amdgcn-amd-amdhsa-oldDriver +// UNSUPPORTED: amdgcn-amd-amdhsa-LTO #include diff --git a/openmp/libomptarget/test/offloading/bug49334.cpp b/openmp/libomptarget/test/offloading/bug49334.cpp index c5dba221050b3..7ae76f44a988b 100644 --- a/openmp/libomptarget/test/offloading/bug49334.cpp +++ b/openmp/libomptarget/test/offloading/bug49334.cpp @@ -3,8 +3,10 @@ // Currently hangs on amdgpu // UNSUPPORTED: amdgcn-amd-amdhsa // UNSUPPORTED: amdgcn-amd-amdhsa-oldDriver +// UNSUPPORTED: amdgcn-amd-amdhsa-LTO // UNSUPPORTED: x86_64-pc-linux-gnu // UNSUPPORTED: x86_64-pc-linux-gnu-oldDriver +// UNSUPPORTED: x86_64-pc-linux-gnu-LTO #include #include diff --git a/openmp/libomptarget/test/offloading/bug49779.cpp b/openmp/libomptarget/test/offloading/bug49779.cpp index e69b746e13b4a..07f40a2b89d05 100644 --- a/openmp/libomptarget/test/offloading/bug49779.cpp +++ b/openmp/libomptarget/test/offloading/bug49779.cpp @@ -3,6 +3,7 @@ // UNSUPPORTED: amdgcn-amd-amdhsa // UNSUPPORTED: amdgcn-amd-amdhsa-oldDriver +// UNSUPPORTED: amdgcn-amd-amdhsa-LTO #include #include diff --git a/openmp/libomptarget/test/offloading/bug51781.c b/openmp/libomptarget/test/offloading/bug51781.c index 80a9e2669f6c2..9ca460ecb7f0b 100644 --- a/openmp/libomptarget/test/offloading/bug51781.c +++ b/openmp/libomptarget/test/offloading/bug51781.c @@ -35,6 +35,7 @@ // Hangs // UNSUPPORTED: amdgcn-amd-amdhsa // UNSUPPORTED: amdgcn-amd-amdhsa-oldDriver +// UNSUPPORTED: amdgcn-amd-amdhsa-LTO #if ADD_REDUCTION # define REDUCTION(...) reduction(__VA_ARGS__) diff --git a/openmp/libomptarget/test/offloading/host_as_target.c b/openmp/libomptarget/test/offloading/host_as_target.c index 4898b86e14a5d..63e2ff1243973 100644 --- a/openmp/libomptarget/test/offloading/host_as_target.c +++ b/openmp/libomptarget/test/offloading/host_as_target.c @@ -10,6 +10,7 @@ // amdgpu does not have a working printf definition // XFAIL: amdgcn-amd-amdhsa // XFAIL: amdgcn-amd-amdhsa-oldDriver +// XFAIL: amdgcn-amd-amdhsa-LTO #include #include diff --git a/openmp/libomptarget/test/offloading/memory_manager.cpp b/openmp/libomptarget/test/offloading/memory_manager.cpp index 15d5d5d3c9941..1b078273a5aa6 100644 --- a/openmp/libomptarget/test/offloading/memory_manager.cpp +++ b/openmp/libomptarget/test/offloading/memory_manager.cpp @@ -2,6 +2,7 @@ // UNSUPPORTED: x86_64-pc-linux-gnu // UNSUPPORTED: x86_64-pc-linux-gnu-oldDriver +// UNSUPPORTED: x86_64-pc-linux-gnu-LTO #include diff --git a/openmp/libomptarget/test/offloading/parallel_offloading_map.cpp b/openmp/libomptarget/test/offloading/parallel_offloading_map.cpp index 90c18d0cfe68b..b53bea72a41a5 100644 --- a/openmp/libomptarget/test/offloading/parallel_offloading_map.cpp +++ b/openmp/libomptarget/test/offloading/parallel_offloading_map.cpp @@ -2,6 +2,7 @@ // UNSUPPORTED: x86_64-pc-linux-gnu // UNSUPPORTED: x86_64-pc-linux-gnu-oldDriver +// UNSUPPORTED: x86_64-pc-linux-gnu-LTO #include #include diff --git a/openmp/libomptarget/test/offloading/static_linking.c b/openmp/libomptarget/test/offloading/static_linking.c index 089822d1e9a42..c6836860b9a72 100644 --- a/openmp/libomptarget/test/offloading/static_linking.c +++ b/openmp/libomptarget/test/offloading/static_linking.c @@ -2,8 +2,8 @@ // RUN: llvm-ar rcs %t.a %t.o // RUN: %libomptarget-compile-generic %t.a && %libomptarget-run-generic 2>&1 | %fcheck-generic -// REQUIRES: nvptx64-nvidia-cuda-oldDriver -// REQUIRES: amdgcn-amd-amdhsa-oldDriver +// UNSUPPORTED: nvptx64-nvidia-cuda-oldDriver +// UNSUPPORTED: amdgcn-amd-amdhsa-oldDriver #ifdef LIBRARY int x = 42; diff --git a/openmp/libomptarget/test/offloading/taskloop_offload_nowait.cpp b/openmp/libomptarget/test/offloading/taskloop_offload_nowait.cpp index 8e84097986148..817b68923b9c0 100644 --- a/openmp/libomptarget/test/offloading/taskloop_offload_nowait.cpp +++ b/openmp/libomptarget/test/offloading/taskloop_offload_nowait.cpp @@ -2,6 +2,7 @@ // UNSUPPORTED: x86_64-pc-linux-gnu // UNSUPPORTED: x86_64-pc-linux-gnu-oldDriver +// UNSUPPORTED: x86_64-pc-linux-gnu-LTO #include #include diff --git a/openmp/libomptarget/test/unified_shared_memory/api.c b/openmp/libomptarget/test/unified_shared_memory/api.c index ffd9f4c8ade68..ca0d575e42db1 100644 --- a/openmp/libomptarget/test/unified_shared_memory/api.c +++ b/openmp/libomptarget/test/unified_shared_memory/api.c @@ -1,11 +1,12 @@ // RUN: %libomptarget-compile-run-and-check-generic // XFAIL: nvptx64-nvidia-cuda -// XFAIL: nvptx64-nvidia-cuda // XFAIL: nvptx64-nvidia-cuda-oldDriver +// XFAIL: nvptx64-nvidia-cuda-LTO // Fails on amdgpu with error: GPU Memory Error // XFAIL: amdgcn-amd-amdhsa // XFAIL: amdgcn-amd-amdhsa-oldDriver +// XFAIL: amdgcn-amd-amdhsa-LTO #include #include