gcc/libgomp
Andrew Stubbs c7ec7bd1c6 amdgcn: add -march=gfx1030 EXPERIMENTAL
Accept the architecture configure option and resolve build failures.  This is
enough to build binaries, but I've not got a device to test it on, so there
are probably runtime issues to fix.  The cache control instructions might be
unsafe (or too conservative), and the kernel metadata might be off.  Vector
reductions will need to be reworked for RDNA2.  In principle, it would be
better to use wavefrontsize32 for this architecture, but that would mean
switching everything to allow SImode masks, so wavefrontsize64 it is.

The multilib is not included in the default configuration so either configure
--with-arch=gfx1030 or include it in --with-multilib-list=gfx1030,....

The majority of this patch has no effect on other devices, but changing from
using scalar writes for the exit value to vector writes means we don't need
the scalar cache write-back instruction anywhere (which doesn't exist in RDNA2).

gcc/ChangeLog:

	* config.gcc: Allow --with-arch=gfx1030.
	* config/gcn/gcn-hsa.h (NO_XNACK): gfx1030 does not support xnack.
	(ASM_SPEC): gfx1030 needs -mattr=+wavefrontsize64 set.
	* config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1030.
	(TARGET_GFX1030): New.
	(TARGET_RDNA2): New.
	* config/gcn/gcn-valu.md (@dpp_move<mode>): Disable for RDNA2.
	(addc<mode>3<exec_vcc>): Add RDNA2 syntax variant.
	(subc<mode>3<exec_vcc>): Likewise.
	(<convop><mode><vndi>2_exec): Add RDNA2 alternatives.
	(vec_cmp<mode>di): Likewise.
	(vec_cmp<u><mode>di): Likewise.
	(vec_cmp<mode>di_exec): Likewise.
	(vec_cmp<u><mode>di_exec): Likewise.
	(vec_cmp<mode>di_dup): Likewise.
	(vec_cmp<mode>di_dup_exec): Likewise.
	(reduc_<reduc_op>_scal_<mode>): Disable for RDNA2.
	(*<reduc_op>_dpp_shr_<mode>): Likewise.
	(*plus_carry_dpp_shr_<mode>): Likewise.
	(*plus_carry_in_dpp_shr_<mode>): Likewise.
	* config/gcn/gcn.cc (gcn_option_override): Recognise gfx1030.
	(gcn_global_address_p): RDNA2 only allows smaller offsets.
	(gcn_addr_space_legitimate_address_p): Likewise.
	(gcn_omp_device_kind_arch_isa): Recognise gfx1030.
	(gcn_expand_epilogue): Use VGPRs instead of SGPRs.
	(output_file_start): Configure gfx1030.
	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __RDNA2__;
	(ASSEMBLER_DIALECT): New.
	* config/gcn/gcn.md (rdna): New define_attr.
	(enabled): Use "rdna" attribute.
	(gcn_return): Remove s_dcache_wb.
	(addcsi3_scalar): Add RDNA2 syntax variant.
	(addcsi3_scalar_zero): Likewise.
	(addptrdi3): Likewise.
	(mulsi3): v_mul_lo_i32 should be v_mul_lo_u32 on all ISA.
	(*memory_barrier): Add RDNA2 syntax variant.
	(atomic_load<mode>): Add RDNA2 cache control variants, and disable
	scalar atomics for RDNA2.
	(atomic_store<mode>): Likewise.
	(atomic_exchange<mode>): Likewise.
	* config/gcn/gcn.opt (gpu_type): Add gfx1030.
	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1030): New.
	(main): Recognise -march=gfx1030.
	* config/gcn/t-omp-device: Add gfx1030 isa.

libgcc/ChangeLog:

	* config/gcn/amdgcn_veclib.h (CDNA3_PLUS): Set false for __RDNA2__.

libgomp/ChangeLog:

	* plugin/plugin-gcn.c (EF_AMDGPU_MACH_AMDGCN_GFX1030): New.
	(isa_hsa_name): Recognise gfx1030.
	(isa_code): Likewise.
	* team.c (defined): Remove s_endpgm.
2023-10-20 12:40:25 +01:00
..
config x86: set spincount 1 for x86 hybrid platform 2023-10-12 12:47:17 +08:00
plugin amdgcn: add -march=gfx1030 EXPERIMENTAL 2023-10-20 12:40:25 +01:00
testsuite libgomp.fortran/allocate-6.f90: Run with -fdump-tree-gimple 2023-10-14 20:09:34 +02:00
.gitattributes
acc_prof.h Update copyright years. 2023-01-16 11:52:17 +01:00
acinclude.m4 libgomp: fix typo in mold linker detection 2022-06-28 10:35:32 +02:00
aclocal.m4
affinity-fmt.c Update copyright years. 2023-01-16 11:52:17 +01:00
affinity.c Update copyright years. 2023-01-16 11:52:17 +01:00
alloc.c Update copyright years. 2023-01-16 11:52:17 +01:00
allocator.c libgomp: call numa_available first when using libnuma 2023-08-17 15:20:55 +02:00
atomic.c Update copyright years. 2023-01-16 11:52:17 +01:00
barrier.c Update copyright years. 2023-01-16 11:52:17 +01:00
ChangeLog Daily bump. 2023-10-16 00:17:13 +00:00
ChangeLog.graphite
config.h.in Refactor '-ldl' handling for libgomp proper and plugins 2022-05-12 15:11:30 +02:00
configure libgomp: Consider '--with-build-sysroot=[...]' for target libraries' build-tree testing (instead of build-time 'CC' etc.) [PR91884, PR109951] 2023-09-12 11:30:37 +02:00
configure.ac libgomp: Consider '--with-build-sysroot=[...]' for target libraries' build-tree testing (instead of build-time 'CC' etc.) [PR91884, PR109951] 2023-09-12 11:30:37 +02:00
configure.tgt LoongArch Port: libgomp 2022-03-29 17:43:35 +08:00
critical.c Update copyright years. 2023-01-16 11:52:17 +01:00
env.c x86: set spincount 1 for x86 hybrid platform 2023-10-12 12:47:17 +08:00
error.c Update copyright years. 2023-01-16 11:52:17 +01:00
fortran.c Update copyright years. 2023-01-16 11:52:17 +01:00
hashtab.h Update copyright years. 2023-01-16 11:52:17 +01:00
icv-device.c OpenMP: Set default-device-var with OMP_TARGET_OFFLOAD=mandatory 2023-06-14 07:53:02 +02:00
icv.c Update copyright years. 2023-01-16 11:52:17 +01:00
iter_ull.c Update copyright years. 2023-01-16 11:52:17 +01:00
iter.c Update copyright years. 2023-01-16 11:52:17 +01:00
libgomp_f.h.in Update copyright years. 2023-01-16 11:52:17 +01:00
libgomp_g.h Update copyright years. 2023-01-16 11:52:17 +01:00
libgomp-plugin.c libgomp: Simplify OpenMP reverse offload host <-> device memory copy implementation 2023-05-08 15:58:05 +02:00
libgomp-plugin.h OpenMP: Call cuMemcpy2D/cuMemcpy3D for nvptx for omp_target_memcpy_rect 2023-07-26 16:22:35 +02:00
libgomp.h OpenMP: Call cuMemcpy2D/cuMemcpy3D for nvptx for omp_target_memcpy_rect 2023-07-26 16:22:35 +02:00
libgomp.map libgomp/nvptx: Prepare for reverse-offload callback handling 2022-10-24 17:04:08 +02:00
libgomp.spec.in
libgomp.texi libgomp.texi: Update "Enabling OpenMP" + OpenACC / invoke.texi: -fopenacc/-fopenmp update 2023-10-15 23:10:17 +02:00
lock.c Update copyright years. 2023-01-16 11:52:17 +01:00
loop_ull.c Update copyright years. 2023-01-16 11:52:17 +01:00
loop.c Update copyright years. 2023-01-16 11:52:17 +01:00
Makefile.am Refactor '-ldl' handling for libgomp proper and plugins 2022-05-12 15:11:30 +02:00
Makefile.in libgomp: Consider '--with-build-sysroot=[...]' for target libraries' build-tree testing (instead of build-time 'CC' etc.) [PR91884, PR109951] 2023-09-12 11:30:37 +02:00
oacc-async.c OpenACC: Remove 'acc_async_test' -> skip shortcut in 'libgomp/oacc-async.c:goacc_wait' 2023-03-10 15:37:47 +01:00
oacc-cuda.c Update copyright years. 2023-01-16 11:52:17 +01:00
oacc-host.c OpenMP: Call cuMemcpy2D/cuMemcpy3D for nvptx for omp_target_memcpy_rect 2023-07-26 16:22:35 +02:00
oacc-init.c Update copyright years. 2023-01-16 11:52:17 +01:00
oacc-int.h Update copyright years. 2023-01-16 11:52:17 +01:00
oacc-mem.c Update copyright years. 2023-01-16 11:52:17 +01:00
oacc-parallel.c Use 'GOMP_MAP_VARS_TARGET' for OpenACC compute constructs [PR90596] 2023-03-10 18:05:27 +01:00
oacc-plugin.c Update copyright years. 2023-01-16 11:52:17 +01:00
oacc-plugin.h Update copyright years. 2023-01-16 11:52:17 +01:00
oacc-profiling.c Update copyright years. 2023-01-16 11:52:17 +01:00
oacc-target.c
omp_lib.f90.in omp_lib.f90.in: Deprecate omp_lock_hint_* for OpenMP 5.0 2023-10-20 10:56:39 +02:00
omp_lib.h.in Update copyright years. 2023-01-16 11:52:17 +01:00
omp.h.in Update copyright years. 2023-01-16 11:52:17 +01:00
openacc_lib.h Update copyright years. 2023-01-16 11:52:17 +01:00
openacc.f90 Update copyright years. 2023-01-16 11:52:17 +01:00
openacc.h Update copyright years. 2023-01-16 11:52:17 +01:00
ordered.c Update copyright years. 2023-01-16 11:52:17 +01:00
parallel.c Update copyright years. 2023-01-16 11:52:17 +01:00
priority_queue.c Update copyright years. 2023-01-16 11:52:17 +01:00
priority_queue.h Update copyright years. 2023-01-16 11:52:17 +01:00
scope.c Update copyright years. 2023-01-16 11:52:17 +01:00
sections.c Update copyright years. 2023-01-16 11:52:17 +01:00
secure_getenv.h Update copyright years. 2023-01-16 11:52:17 +01:00
single.c Update copyright years. 2023-01-16 11:52:17 +01:00
splay-tree.c Update copyright years. 2023-01-16 11:52:17 +01:00
splay-tree.h Update copyright years. 2023-01-16 11:52:17 +01:00
target.c Revert: "Another revert test with a bogus hash" 2023-09-07 13:33:35 +02:00
task.c Update copyright years. 2023-01-16 11:52:17 +01:00
taskloop.c Update copyright years. 2023-01-16 11:52:17 +01:00
team.c amdgcn: add -march=gfx1030 EXPERIMENTAL 2023-10-20 12:40:25 +01:00
teams.c Update copyright years. 2023-01-16 11:52:17 +01:00
work.c Update copyright years. 2023-01-16 11:52:17 +01:00