[PATCH] Fix --with-tune{,-32,-64} on powerpc

Jakub Jelinek jakub@redhat.com
Wed Oct 14 17:49:00 GMT 2009


Hi!

I've noticed that --with-cpu=default32 --with-cpu-32=power4 \
--with-cpu-64=power4 --with-tune-32=power6 --with-tune-64=power6
configured gcc behaves differently from just --with-cpu=default32 configured
one when
gcc test.c -mcpu=power5
is used, which is certainly unexpected.  I believe we say in many places
that when -mtune= isn't used, but -mcpu= is (s/cpu/arch/ for x86_64 etc.),
then tuning is done for the explicitly chosen CPU ISA.
It seems i386/x86_64 does this right, since Honza's fix from mid 2003.

Other targets might need similar changes.

Ok for trunk?

2009-10-14  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
	add --with-tune{,-32,-64} configured default for -mtune if explicit
	-mcpu is used.

--- gcc/config/rs6000/option-defaults.h.jj	2009-06-02 18:36:50.000000000 +0200
+++ gcc/config/rs6000/option-defaults.h	2009-10-14 18:28:50.134723716 +0200
@@ -50,15 +50,15 @@
 /* Support for a compile-time default CPU, et cetera.  The rules are:
    --with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32
      and --with-cpu-64.
-   --with-tune is ignored if -mtune is specified; likewise --with-tune-32
-     and --with-tune-64.
+   --with-tune is ignored if -mtune or -mcpu is specified; likewise
+     --with-tune-32 and --with-tune-64.
    --with-float is ignored if -mhard-float or -msoft-float are
-    specified.  */
+     specified.  */
 #define OPTION_DEFAULT_SPECS \
+  {"tune", "%{!mtune=*:%{!mcpu=*:-mtune=%(VALUE)}}" }, \
+  {"tune_32", "%{" OPT_ARCH32 ":%{!mtune=*:%{!mcpu=*:-mtune=%(VALUE)}}}" }, \
+  {"tune_64", "%{" OPT_ARCH64 ":%{!mtune=*:%{!mcpu=*:-mtune=%(VALUE)}}}" }, \
   {"cpu", "%{!mcpu=*:-mcpu=%(VALUE)}" }, \
   {"cpu_32", "%{" OPT_ARCH32 ":%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
   {"cpu_64", "%{" OPT_ARCH64 ":%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
-  {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
-  {"tune_32", "%{" OPT_ARCH32 ":%{!mtune=*:-mtune=%(VALUE)}}" }, \
-  {"tune_64", "%{" OPT_ARCH64 ":%{!mtune=*:-mtune=%(VALUE)}}" }, \
   {"float", "%{!msoft-float:%{!mhard-float:-m%(VALUE)-float}}" }

	Jakub



More information about the Gcc-patches mailing list