File tree Expand file tree Collapse file tree 7 files changed +38
-3
lines changed Expand file tree Collapse file tree 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