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 <[email protected]>
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 <[email protected]>
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 \