forked from OSchip/llvm-project
[Libomptarget] Add test config for compiling in LTO-mode
We are planning on making LTO the default compilation mode for offloading. In order to make sure it works we should run these tests on the test suite. AMDGPU already uses the LTO compilation path for its linking, but in LTO mode it also links the static library late. Performing LTO requires the static library to be built, if we make the change this will be a hard requirement and the old bitcode library will go away. This means users will need to use either a two-step build or a runtimes build for libomptarget. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D127512
This commit is contained in:
parent
3260d42398
commit
d5d836635c
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
// Wrong results on amdgpu
|
||||
// XFAIL: amdgcn-amd-amdhsa
|
||||
// XFAIL: amdgcn-amd-amdhsa-oldDriver
|
||||
// XFAIL: amdgcn-amd-amdhsa-LTO
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
// Wrong results on amdgpu
|
||||
// XFAIL: amdgcn-amd-amdhsa
|
||||
// XFAIL: amdgcn-amd-amdhsa-oldDriver
|
||||
// XFAIL: amdgcn-amd-amdhsa-LTO
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
// Wrong results on amdgpu
|
||||
// XFAIL: amdgcn-amd-amdhsa
|
||||
// XFAIL: amdgcn-amd-amdhsa-oldDriver
|
||||
// XFAIL: amdgcn-amd-amdhsa-LTO
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
// Wrong results on amdgpu
|
||||
// XFAIL: amdgcn-amd-amdhsa
|
||||
// XFAIL: amdgcn-amd-amdhsa-oldDriver
|
||||
// XFAIL: amdgcn-amd-amdhsa-LTO
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
|
|
|
@ -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 <iostream>
|
||||
|
||||
|
|
|
@ -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 <algorithm>
|
||||
#include <cstdlib>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
// Wrong results on amdgpu
|
||||
// XFAIL: amdgcn-amd-amdhsa
|
||||
// XFAIL: amdgcn-amd-amdhsa-oldDriver
|
||||
// XFAIL: amdgcn-amd-amdhsa-LTO
|
||||
|
||||
#include <omp.h>
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
// Hangs
|
||||
// UNSUPPORTED: amdgcn-amd-amdhsa
|
||||
// UNSUPPORTED: amdgcn-amd-amdhsa-oldDriver
|
||||
// UNSUPPORTED: amdgcn-amd-amdhsa-LTO
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
|
|
@ -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 <cassert>
|
||||
#include <cmath>
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
// UNSUPPORTED: amdgcn-amd-amdhsa
|
||||
// UNSUPPORTED: amdgcn-amd-amdhsa-oldDriver
|
||||
// UNSUPPORTED: amdgcn-amd-amdhsa-LTO
|
||||
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
|
|
|
@ -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__)
|
||||
|
|
|
@ -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 <stdio.h>
|
||||
#include <omp.h>
|
||||
|
|
|
@ -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 <omp.h>
|
||||
|
||||
|
|
|
@ -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 <cassert>
|
||||
#include <iostream>
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 <cmath>
|
||||
#include <cstdlib>
|
||||
|
|
|
@ -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 <stdio.h>
|
||||
#include <omp.h>
|
||||
|
|
Loading…
Reference in New Issue