Avoid exporting 80-bit fp functions for architectures other than Intel.

This patch is a partial fix for [[ https://github.com/llvm/llvm-project/issues/56349 | issue ]], due to functions affected by D117473.

Implementation details:
The patch essentially creates a new macro if the architecture is either
intel32 or intel64, since the generate-def.pl cannot process boolean algebra
on macros.

Reviewed By: jlpeyton

Differential Revision: https://reviews.llvm.org/D135795
This commit is contained in:
Malhar Jajoo 2022-10-19 15:55:15 +01:00
parent 6194229c62
commit cea951dccd
2 changed files with 16 additions and 5 deletions

View File

@ -163,8 +163,10 @@ function(libomp_get_gdflags gdflags)
set(gdflags_local)
if(${IA32})
set(libomp_gdflag_arch arch_32)
libomp_append(gdflags_local "-D IS_IA_ARCH")
elseif(${INTEL64})
set(libomp_gdflag_arch arch_32e)
libomp_append(gdflags_local "-D IS_IA_ARCH")
else()
set(libomp_gdflag_arch arch_${LIBOMP_ARCH})
endif()

View File

@ -688,11 +688,12 @@ kmp_set_disp_num_buffers 890
__kmpc_atomic_fixed2_eqv 2078
__kmpc_atomic_fixed4_eqv 2079
__kmpc_atomic_fixed8_eqv 2080
%ifdef IS_IA_ARCH
__kmpc_atomic_float10_add 2081
__kmpc_atomic_float10_sub 2082
__kmpc_atomic_float10_mul 2083
__kmpc_atomic_float10_div 2084
%endif
__kmpc_atomic_cmplx4_add 2085
__kmpc_atomic_cmplx4_sub 2086
@ -702,10 +703,12 @@ kmp_set_disp_num_buffers 890
__kmpc_atomic_cmplx8_sub 2090
__kmpc_atomic_cmplx8_mul 2091
__kmpc_atomic_cmplx8_div 2092
%ifdef IS_IA_ARCH
__kmpc_atomic_cmplx10_add 2093
__kmpc_atomic_cmplx10_sub 2094
__kmpc_atomic_cmplx10_mul 2095
__kmpc_atomic_cmplx10_div 2096
%endif
%ifdef HAVE_QUAD
__kmpc_atomic_cmplx16_add 2097
__kmpc_atomic_cmplx16_sub 2098
@ -753,11 +756,13 @@ kmp_set_disp_num_buffers 890
__kmpc_atomic_float8_mul_fp 2133
__kmpc_atomic_float8_div_fp 2134
%ifdef IS_IA_ARCH
__kmpc_atomic_float10_add_fp 2135
__kmpc_atomic_float10_sub_fp 2136
__kmpc_atomic_float10_mul_fp 2137
__kmpc_atomic_float10_div_fp 2138
%endif
%endif
__kmpc_atomic_fixed1_mul_float8 2169
__kmpc_atomic_fixed1_div_float8 2170
@ -785,9 +790,13 @@ kmp_set_disp_num_buffers 890
__kmpc_atomic_2 2248
#__kmpc_atomic_4 # declared above #100
#__kmpc_atomic_8 # declared above #101
%ifdef IS_IA_ARCH
__kmpc_atomic_10 2251
%endif
__kmpc_atomic_16 2252
%ifdef IS_IA_ARCH
__kmpc_atomic_20 2253
%endif
__kmpc_atomic_32 2254
%ifdef arch_32
@ -809,8 +818,7 @@ kmp_set_disp_num_buffers 890
%endif
# These are specific to x86 and x64
%ifndef arch_64
%ifndef arch_aarch64
%ifdef IS_IA_ARCH
# ATOMIC extensions for OpenMP 3.1 spec (x86 and x64 only)
@ -1214,8 +1222,7 @@ kmp_set_disp_num_buffers 890
__kmpc_atomic_float10_div_cpt_rev_fp
%endif
%endif # arch_aarch64
%endif # arch_64
%endif # IS_IA_ARCH
%ifdef HAVE_QUAD
__kmpc_atomic_fixed1u_add_fp
@ -1233,8 +1240,10 @@ kmp_set_disp_num_buffers 890
%endif
# OpenMP 5.1 atomics
%ifdef IS_IA_ARCH
__kmpc_atomic_float10_max 2139
__kmpc_atomic_float10_min 2140
%endif
__kmpc_atomic_float10_max_cpt 2141
__kmpc_atomic_float10_min_cpt 2142