[RFC,PATCHES] Obsolete or remove powerpc*-*-*spe* support (PR target/81084)

Message ID 20180417132047.GB8577@tucnak
State New
Headers show
Series
  • [RFC,PATCHES] Obsolete or remove powerpc*-*-*spe* support (PR target/81084)
Related show

Commit Message

Jakub Jelinek April 17, 2018, 1:20 p.m.
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  <jakub@redhat.com>

	PR target/81084
	* config.gcc: Obsolete powerpc*-*-*spe*.
2018-04-17  Jakub Jelinek  <jakub@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 \

Comments

Richard Biener April 18, 2018, 7:51 a.m. | #1
On Tue, 17 Apr 2018, Jakub Jelinek wrote:

> 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?


I think I prefer the first for GCC8 and remove it early in stage1 if
people don't get their asses moved.

Richard.
Jeff Law April 18, 2018, 3:50 p.m. | #2
On 04/18/2018 01:51 AM, Richard Biener wrote:
> On Tue, 17 Apr 2018, Jakub Jelinek wrote:

> 

>> 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?

> 

> I think I prefer the first for GCC8 and remove it early in stage1 if

> people don't get their asses moved.

Agreed.  Similarly for MPX.
jeff

Patch

--- 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