LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [5/5] include tuning options into Makefile
       [not found] <200807210857.08892.marvin24@gmx.de>
@ 2008-07-21  7:00 ` Marvin
  2008-07-21  9:55   ` Arnd Bergmann
  0 siblings, 1 reply; 2+ messages in thread
From: Marvin @ 2008-07-21  7:00 UTC (permalink / raw)
  To: linuxppc-dev


This patch finally adds mcpu/mtune options to the Makefile using the
previous introduced tuning mechanism.

Subject: [PATCH] include tuning options into Makefile

---
 arch/powerpc/Makefile |   41 +++++++++++++++++++++++------------------
 1 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 9629c5e..09f81a7 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -75,30 +75,35 @@ CPP		= $(CC) -E $(KBUILD_CFLAGS)
 CHECKFLAGS	
+= -m$(CONFIG_WORD_SIZE) -D__powerpc__ -D__powerpc$(CONFIG_WORD_SIZE)__
 
 ifeq ($(CONFIG_PPC64),y)
-GCC_BROKEN_VEC	:= $(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y"; 
fi)
 
-ifeq ($(CONFIG_TUNE_POWER4),y)
-ifeq ($(CONFIG_OPT_EXCLUSIVE),y)
-ifeq ($(CONFIG_ALTIVEC),y)
-ifeq ($(GCC_BROKEN_VEC),y)
-	KBUILD_CFLAGS += $(call cc-option,-mcpu=970)
+ifeq ($(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y"; fi),y)
+    P4CPU := power4
 else
-	KBUILD_CFLAGS += $(call cc-option,-mcpu=power4)
+    P4CPU := 970
 endif
-else
-	KBUILD_CFLAGS += $(call cc-option,-mcpu=power4)
-endif
-else
-	KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
-endif
-	KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
+
+# optimize for specific cpu
+ifeq ($(CONFIG_TUNE_RS64),y)
+    KBUILD_CFLAGS += $(call cc-option,-mcpu=rs64)
+else ifeq ($(CONFIG_TUNE_POWER3),y)
+    KBUILD_CFLAGS += $(call cc-option,-mcpu=power3)
+else ifeq ($(CONFIG_TUNE_POWER4),y)
+    KBUILD_CFLAGS += $(call cc-option,-mcpu=$(P4CPU))
+else ifeq ($(CONFIG_TUNE_CELL),y)
+    KBUILD_CFLAGS += $(call cc-option,-mcpu=cell,-mtune=cell)
+else ifeq ($(CONFIG_TUNE_POWER5),y)
+    KBUILD_CFLAGS += $(call cc-option,-mcpu=power5,-mtune=power5)
+else ifeq ($(CONFIG_TUNE_POWER6),y)
+    KBUILD_CFLAGS += $(call cc-option,-mcpu=power6,-mtune=power6)
 endif
-else
-LDFLAGS_MODULE	+= arch/powerpc/lib/crtsavres.o
+
+ifneq ($(CONFIG_OPT_EXCLUSIVE),y)
+    KBUILD_CFLAGS := $(subst mcpu,mtune,$(KBUILD_CFLAGS))
 endif
 
-ifeq ($(CONFIG_TUNE_CELL),y)
-	KBUILD_CFLAGS += $(call cc-option,-mtune=cell)
+else
+# !PPC64
+    LDFLAGS_MODULE	+= arch/powerpc/lib/crtsavres.o
 endif
 
 # No AltiVec instruction when building kernel
-- 
1.5.6.2

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [5/5] include tuning options into Makefile
  2008-07-21  7:00 ` [5/5] include tuning options into Makefile Marvin
@ 2008-07-21  9:55   ` Arnd Bergmann
  0 siblings, 0 replies; 2+ messages in thread
From: Arnd Bergmann @ 2008-07-21  9:55 UTC (permalink / raw)
  To: linuxppc-dev

On Monday 21 July 2008, Marvin wrote:

> +# optimize for specific cpu
> +ifeq ($(CONFIG_TUNE_RS64),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3Drs64)
> +else ifeq ($(CONFIG_TUNE_POWER3),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3Dpower3)
> +else ifeq ($(CONFIG_TUNE_POWER4),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3D$(P4CPU))
> +else ifeq ($(CONFIG_TUNE_CELL),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3Dcell,-mtune=3Dcell)
> +else ifeq ($(CONFIG_TUNE_POWER5),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3Dpower5,-mtune=3Dpowe=
r5)
> +else ifeq ($(CONFIG_TUNE_POWER6),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3Dpower6,-mtune=3Dpowe=
r6)
> =A0endif
> -else
> -LDFLAGS_MODULE=A0+=3D arch/powerpc/lib/crtsavres.o

I think it would be easier to express this logic in Kconfig than in
Makefile.

> +
> +ifneq ($(CONFIG_OPT_EXCLUSIVE),y)
> + =A0 =A0KBUILD_CFLAGS :=3D $(subst mcpu,mtune,$(KBUILD_CFLAGS))
> =A0endif
> =A0

This still doesn't allow the most interesting case where you want to
optimize for a modern CPU but still allow older ones, e.g.
"-mcpu=3Dpower4 -mtune=3Dpower6".

	Arnd <><

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-07-21  9:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <200807210857.08892.marvin24@gmx.de>
2008-07-21  7:00 ` [5/5] include tuning options into Makefile Marvin
2008-07-21  9:55   ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox