Hi! In the http://gcc.gnu.org/ml/gcc/2017-02/msg00041.html thread it has been proposed that powerpc*-*-*spe* would be obsoleted in GCC 7, which didn't happen and the rs6000 backend has been split into two, one actively maintained where the SPE support has been removed, and the other one which unfortunately had just a few small commits, didn't get rid of the expected 80% of the new backend which would make it deal with it for global changes in GCC, nor has the bugfixes added to rs6000 backend in the last 11 months since the split (many of them apply to powerpcspe too).
So, in order to resolve the P1 PR81084, I think we should at least make the powerpc*-*-*spe* obsolete for GCC 8 and remove in GCC 9 if it doesn't get significantly better soon (the first patch), or remove it altogether now, which would match the deal that either the port is cleaned up, or it is removed (the second patch). In addition to this some changes.html changes will be needed depending on what is chosen. Preferences on what to do? Jakub
2018-04-17 Jakub Jelinek <ja...@redhat.com> PR target/81084 * config.gcc: Obsolete powerpc*-*-*spe*. --- gcc/config.gcc.jj 2018-04-09 20:15:49.172631651 +0200 +++ gcc/config.gcc 2018-04-16 17:50:55.978576645 +0200 @@ -236,7 +236,7 @@ md_file= # Obsolete configurations. case ${target} in - nothing \ + powerpc*-*-*spe* \ ) if test "x$enable_obsolete" != xyes; then echo "*** Configuration ${target} is obsolete." >&2
2018-04-17 Jakub Jelinek <ja...@redhat.com> PR target/81084 * config.gcc: Add powerpc*-*-*spe* to unsupported targets. Remove all other powerpc*-*-*spe* support snippets. * config.host: Remove powerpc*-*-*spe* support. * config/powerpcspe: Remove. * common/config/powerpcspe: Remove. libgcc/ * config.host: Remove powerpc-*-eabispe* support. contrib/ * config-list.mk (LIST): Remove powerpc-eabispe and powerpc-linux_spe. rm -rf gcc/config/powerpcspe gcc/common/config/powerpcspe --- gcc/config.gcc.jj 2018-04-09 20:15:49.172631651 +0200 +++ gcc/config.gcc 2018-04-16 17:55:22.854747410 +0200 @@ -265,6 +265,7 @@ case ${target} in | m68k-*-uclinuxoldabi* \ | mips64orion*-*-rtems* \ | pdp11-*-bsd \ + | powerpc*-*-*spe* \ | sparc-hal-solaris2* \ | thumb-*-* \ | *-*-freebsd[12] | *-*-freebsd[12].* \ @@ -454,16 +455,6 @@ nios2-*-*) nvptx-*-*) cpu_type=nvptx ;; -powerpc*-*-*spe*) - cpu_type=powerpcspe - extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h" - case x$with_cpu in - xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500) - cpu_is_64bit=yes - ;; - esac - extra_options="${extra_options} g.opt fused-madd.opt powerpcspe/powerpcspe-tables.opt" - ;; powerpc*-*-*) cpu_type=rs6000 extra_objs="rs6000-string.o rs6000-p8swap.o" @@ -2422,12 +2413,6 @@ powerpc-*-netbsd*) tmake_file="${tmake_file} rs6000/t-netbsd" extra_options="${extra_options} rs6000/sysv4.opt" ;; -powerpc-*-eabispe*) - tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h ${cpu_type}/sysv4.h ${cpu_type}/eabi.h ${cpu_type}/e500.h ${cpu_type}/eabispe.h" - extra_options="${extra_options} ${cpu_type}/sysv4.opt" - tmake_file="${cpu_type}/t-spe ${cpu_type}/t-ppccomm" - use_gcc_stdint=wrap - ;; powerpc-*-eabisimaltivec*) tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h" extra_options="${extra_options} rs6000/sysv4.opt" @@ -2463,26 +2448,11 @@ powerpc-*-eabi*) tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" use_gcc_stdint=wrap ;; -powerpc-*-rtems*spe*) - tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h powerpcspe/sysv4.h powerpcspe/eabi.h powerpcspe/e500.h powerpcspe/rtems.h rtems.h" - extra_options="${extra_options} powerpcspe/sysv4.opt" - tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-rtems powerpcspe/t-ppccomm" - ;; powerpc-*-rtems*) tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h" extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt" tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm" ;; -powerpc*-*-linux*spe*) - tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h powerpcspe/sysv4.h" - extra_options="${extra_options} powerpcspe/sysv4.opt" - tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm" - extra_objs="$extra_objs powerpcspe-linux.o" - maybe_biarch= - tm_file="${tm_file} powerpcspe/linux.h glibc-stdint.h" - tmake_file="${tmake_file} powerpcspe/t-ppcos powerpcspe/t-linux" - tm_file="${tm_file} powerpcspe/linuxspe.h powerpcspe/e500.h" - ;; powerpc*-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h" extra_options="${extra_options} rs6000/sysv4.opt" @@ -2501,11 +2471,11 @@ powerpc*-*-linux*) all) maybe_biarch=yes ;; esac case ${target} in - powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*) + powerpc64*-*-linux*paired*) echo "*** Configuration ${target} not supported" 1>&2 exit 1 ;; - powerpc*-*-linux*spe* | powerpc*-*-linux*paired*) + powerpc*-*-linux*paired*) maybe_biarch= ;; esac @@ -2549,8 +2519,6 @@ powerpc*-*-linux*) extra_options="${extra_options} rs6000/476.opt" ;; powerpc*-*-linux*altivec*) tm_file="${tm_file} rs6000/linuxaltivec.h" ;; - powerpc*-*-linux*spe*) - tm_file="${tm_file} ${cpu_type}/linuxspe.h ${cpu_type}/e500.h" ;; powerpc*-*-linux*paired*) tm_file="${tm_file} rs6000/750cl.h" ;; esac @@ -2562,13 +2530,6 @@ powerpc*-*-linux*) tm_file="rs6000/secureplt.h ${tm_file}" fi ;; -powerpc-wrs-vxworks*spe) - tm_file="${tm_file} elfos.h freebsd-spec.h powerpcspe/sysv4.h" - tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm powerpcspe/t-vxworks" - extra_options="${extra_options} powerpcspe/sysv4.opt" - extra_headers=ppc-asm.h - tm_file="${tm_file} vx-common.h vxworks.h powerpcspe/vxworks.h powerpcspe/e500.h" - ;; powerpc-wrs-vxworks*) tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h" tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks" @@ -3480,20 +3441,6 @@ if test x$with_cpu = x ; then ;; esac ;; - powerpc*-*-*spe*) - # For SPE, start with 8540, then upgrade to 8548 if - # --enable-e500-double was requested explicitly or if we were - # configured for e500v2. - with_cpu=8540 - if test x$enable_e500_double = xyes; then - with_cpu=8548 - fi - case ${target_noncanonical} in - e500v2*) - with_cpu=8548 - ;; - esac - ;; sparc*-*-*) case ${target} in *-leon-*) --- gcc/config.host.jj 2018-01-03 10:19:54.677533881 +0100 +++ gcc/config.host 2018-04-16 17:55:56.354768711 +0200 @@ -144,10 +144,6 @@ case ${host} in rs6000-*-* \ | powerpc*-*-* ) case ${target} in - powerpc*-*-*spe*) - host_extra_gcc_objs="driver-powerpcspe.o" - host_xmake_file="${host_xmake_file} powerpcspe/x-powerpcspe" - ;; rs6000-*-* \ | powerpc*-*-* ) host_extra_gcc_objs="driver-rs6000.o" --- libgcc/config.host.jj 2018-04-07 09:12:51.952849374 +0200 +++ libgcc/config.host 2018-04-16 17:59:38.602910035 +0200 @@ -1038,10 +1038,6 @@ powerpc*-*-freebsd*) powerpc-*-netbsd*) tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff" ;; -powerpc-*-eabispe*) - tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" - extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" - ;; powerpc-*-eabisimaltivec*) tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" --- contrib/config-list.mk.jj 2017-05-05 09:20:02.861536866 +0200 +++ contrib/config-list.mk 2018-04-16 17:48:58.159500892 +0200 @@ -72,10 +72,9 @@ LIST = aarch64-elf aarch64-linux-gnu aar pdp11-aout \ powerpc-darwin8 \ powerpc-darwin7 powerpc64-darwin powerpc-freebsd6 powerpc-netbsd \ - powerpc-eabispe powerpc-eabisimaltivec powerpc-eabisim ppc-elf \ + powerpc-eabisimaltivec powerpc-eabisim ppc-elf \ powerpc-eabialtivec powerpc-xilinx-eabi powerpc-eabi \ - powerpc-rtems powerpc-linux_spe \ - powerpc-linux_paired powerpc64-linux_altivec \ + powerpc-rtems powerpc-linux_paired powerpc64-linux_altivec \ powerpc-wrs-vxworks powerpc-wrs-vxworksae powerpc-wrs-vxworksmils \ powerpc-lynxos powerpcle-elf \ powerpcle-eabisim powerpcle-eabi \