Skip to content

Commit

Permalink
Avoid exporting 80-bit fp functions for architectures other than Intel.
Browse files Browse the repository at this point in the history
This patch is a partial fix for [[ #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
  • Loading branch information
malJaj committed Oct 19, 2022
1 parent 6194229 commit cea951d
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
2 changes: 2 additions & 0 deletions openmp/runtime/cmake/LibompHandleFlags.cmake
Expand Up @@ -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()
Expand Down
19 changes: 14 additions & 5 deletions openmp/runtime/src/dllexports
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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)

Expand Down Expand Up @@ -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
Expand All @@ -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

Expand Down

0 comments on commit cea951d

Please sign in to comment.