2005-09-13 11:52:37

by Roger While

[permalink] [raw]
Subject: [patch 2.6.14-rc1] i386: Correct Pentium optimization

GCC 3.x apparently does not allow the -mtune option when specifying
-march=i686. This means that P-2/3/4/M never get optimzed.
Change the i386 Makefile to cater for this.

Signed-off-by: Roger While <[email protected]>

Patch also as attachment as Squirrel is sure to mangle.

Roger While

diff -Naur linux-2.6.14/arch/i386/Makefile
linux-2.6.14patch/arch/i386/Makefile
--- linux-2.6.14/arch/i386/Makefile 2005-09-13 13:16:22.000000000 +0200
+++ linux-2.6.14patch/arch/i386/Makefile 2005-09-13
13:11:47.000000000 +0200
@@ -41,10 +41,10 @@
cflags-$(CONFIG_M586TSC) += -march=i586
cflags-$(CONFIG_M586MMX) += $(call
cc-option,-march=pentium-mmx,-march=i586)
cflags-$(CONFIG_M686) += -march=i686
-cflags-$(CONFIG_MPENTIUMII) += -march=i686 $(call
cc-option,-mtune=pentium2)
-cflags-$(CONFIG_MPENTIUMIII) += -march=i686 $(call
cc-option,-mtune=pentium3)
-cflags-$(CONFIG_MPENTIUMM) += -march=i686 $(call
cc-option,-mtune=pentium3)
-cflags-$(CONFIG_MPENTIUM4) += -march=i686 $(call
cc-option,-mtune=pentium4)
+cflags-$(CONFIG_MPENTIUMII) += $(call
cc-option,-march=pentium2,-march=i686)
+cflags-$(CONFIG_MPENTIUMIII) += $(call
cc-option,-march=pentium3,-march=i686)
+cflags-$(CONFIG_MPENTIUMM) += $(call
cc-option,-march=pentium-m,-march=i686)
+cflags-$(CONFIG_MPENTIUM4) += $(call
cc-option,-march=pentium4,-march=i686)
cflags-$(CONFIG_MK6) += -march=k6
# Please note, that patches that add -march=athlon-xp and friends are
pointless.
# They make zero difference whatsosever to performance at this time.


Attachments:
pentiumgcc.patch (1.19 kB)

2005-09-13 12:46:48

by Paolo Ornati

[permalink] [raw]
Subject: Re: [patch 2.6.14-rc1] i386: Correct Pentium optimization

On Tue, 13 Sep 2005 13:51:48 +0200 (CEST)
[email protected] wrote:

> -cflags-$(CONFIG_MPENTIUMII) += -march=i686 $(call cc-option,-mtune=pentium2)
> -cflags-$(CONFIG_MPENTIUMIII) += -march=i686 $(call cc-option,-mtune=pentium3)
> -cflags-$(CONFIG_MPENTIUMM) += -march=i686 $(call cc-option,-mtune=pentium3)
> -cflags-$(CONFIG_MPENTIUM4) += -march=i686 $(call cc-option,-mtune=pentium4)
> +cflags-$(CONFIG_MPENTIUMII) += $(call cc-option,-march=pentium2,-march=i686)
> +cflags-$(CONFIG_MPENTIUMIII) += $(call cc-option,-march=pentium3,-march=i686)
> +cflags-$(CONFIG_MPENTIUMM) += $(call cc-option,-march=pentium-m,-march=i686)
> +cflags-$(CONFIG_MPENTIUM4) += $(call cc-option,-march=pentium4,-march=i686)


I'm not sure that it is safe, read this:

http://groups.google.it/group/linux.kernel/browse_frm/thread/89467f7aa9963d4f/b4575e40eecc713a?lnk=st&q=march%3Dpentium4+mtune+group:linux.kernel&rnum=1&hl=it#b4575e40eecc713a

--
Paolo Ornati
Linux 2.6.14-rc1 on x86_64