File tree 7 files changed +38
-3
lines changed
7 files changed +38
-3
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ builtin_check_c_compiler_flag(-Wno-pedantic COMPILER_RT_HAS_WNO_PEDANTIC
22
22
builtin_check_c_compiler_flag(-nogpulib COMPILER_RT_HAS_NOGPULIB_FLAG)
23
23
builtin_check_c_compiler_flag(-flto COMPILER_RT_HAS_FLTO_FLAG)
24
24
builtin_check_c_compiler_flag(-fconvergent-functions COMPILER_RT_HAS_FCONVERGENT_FUNCTIONS_FLAG)
25
+ builtin_check_c_compiler_flag("-Xclang -mcode-object-version=none" COMPILER_RT_HAS_CODE_OBJECT_VERSION_FLAG)
25
26
builtin_check_c_compiler_flag(-Wbuiltin-declaration-mismatch COMPILER_RT_HAS_WBUILTIN_DECLARATION_MISMATCH_FLAG)
26
27
builtin_check_c_compiler_flag(/Zl COMPILER_RT_HAS_ZL_FLAG)
27
28
builtin_check_c_compiler_flag(-fcf-protection=full COMPILER_RT_HAS_FCF_PROTECTION_FLAG)
Original file line number Diff line number Diff line change @@ -833,6 +833,12 @@ else ()
833
833
append_list_if(COMPILER_RT_HAS_FLTO_FLAG -flto BUILTIN_CFLAGS)
834
834
append_list_if(COMPILER_RT_HAS_FCONVERGENT_FUNCTIONS_FLAG
835
835
-fconvergent-functions BUILTIN_CFLAGS)
836
+
837
+ # AMDGPU targets want to use a generic ABI.
838
+ if ("${COMPILER_RT_DEFAULT_TARGET_ARCH} " MATCHES "amdgcn" )
839
+ append_list_if(COMPILER_RT_HAS_CODE_OBJECT_VERSION_FLAG
840
+ "SHELL:-Xclang -mcode-object-version=none" BUILTIN_CFLAGS)
841
+ endif ()
836
842
endif ()
837
843
838
844
set (BUILTIN_DEFS "" )
Original file line number Diff line number Diff line change @@ -215,6 +215,8 @@ function(_get_common_compile_options output_var flags)
215
215
if (LIBC_CUDA_ROOT)
216
216
list (APPEND compile_options "--cuda-path=${LIBC_CUDA_ROOT} " )
217
217
endif ()
218
+ elseif (LIBC_TARGET_ARCHITECTURE_IS_AMDGPU)
219
+ list (APPEND compile_options "SHELL:-Xclang -mcode-object-version=none" )
218
220
endif ()
219
221
endif ()
220
222
set (${output_var} ${compile_options} PARENT_SCOPE)
Original file line number Diff line number Diff line change @@ -32,6 +32,8 @@ set(LIBCXX_TEST_CONFIG "amdgpu-libc++-shared.cfg.in" CACHE STRING "")
32
32
set (LIBCXX_TEST_PARAMS "optimization=none;long_tests=False;executor=amdhsa-loader" CACHE STRING "" )
33
33
34
34
# Necessary compile flags for AMDGPU.
35
- set (LIBCXX_ADDITIONAL_COMPILE_FLAGS "-nogpulib;-flto;-fconvergent-functions" CACHE STRING "" )
36
- set (LIBCXXABI_ADDITIONAL_COMPILE_FLAGS "-nogpulib;-flto;-fconvergent-functions" CACHE STRING "" )
35
+ set (LIBCXX_ADDITIONAL_COMPILE_FLAGS
36
+ "-nogpulib;-flto;-fconvergent-functions;SHELL:-Xclang -mcode-object-version=none" CACHE STRING "" )
37
+ set (LIBCXXABI_ADDITIONAL_COMPILE_FLAGS
38
+ "-nogpulib;-flto;-fconvergent-functions;SHELL:-Xclang -mcode-object-version=none" CACHE STRING "" )
37
39
set (CMAKE_REQUIRED_FLAGS "-nogpulib" CACHE STRING "" )
Original file line number Diff line number Diff line change @@ -255,7 +255,7 @@ function(compileDeviceRTLLibrary target_name target_triple)
255
255
endfunction ()
256
256
257
257
add_custom_target (omptarget.devicertl.amdgpu)
258
- compileDeviceRTLLibrary(amdgpu amdgcn-amd-amdhsa)
258
+ compileDeviceRTLLibrary(amdgpu amdgcn-amd-amdhsa -Xclang -mcode-object- version =none )
259
259
260
260
add_custom_target (omptarget.devicertl.nvptx)
261
261
compileDeviceRTLLibrary(nvptx nvptx64-nvidia-cuda --cuda-feature=+ptx63)
Original file line number Diff line number Diff line change 20
20
21
21
using namespace ompx ;
22
22
23
+ // FIXME: This resolves the handling for the AMDGPU workgroup size when the ABI
24
+ // is set to 'none'. We only support COV5+ but this can be removed when COV4 is
25
+ // fully deprecated.
26
+ #ifdef __AMDGPU__
27
+ extern const inline uint32_t __oclc_ABI_version = 500 ;
28
+ [[gnu::alias(" __oclc_ABI_version" )]] const uint32_t __oclc_ABI_version__;
29
+ #endif
30
+
23
31
static bool isInLastWarp () {
24
32
uint32_t MainTId = (mapping::getNumberOfThreadsInBlock () - 1 ) &
25
33
~(mapping::getWarpSize () - 1 );
Original file line number Diff line number Diff line change
1
+ // RUN: %libomptarget-compile-amdgcn-amd-amdhsa -Xclang \
2
+ // RUN: -mcode-object-version=5
3
+ // RUN: %libomptarget-run-amdgcn-amd-amdhsa | %fcheck-amdgcn-amd-amdhsa
4
+
5
+ // REQUIRES: amdgcn-amd-amdhsa
6
+
7
+ #include <stdio.h>
8
+
9
+ // Test to make sure we can build and run with the previous COV.
10
+ int main () {
11
+ #pragma omp target
12
+ ;
13
+
14
+ // CHECK: PASS
15
+ printf ("PASS\n" );
16
+ }
You can’t perform that action at this time.
0 commit comments