[Top] [All Lists]

Re: [SPAM?] Re: [PATCH] mm/pg-r4k.c: Dump the generated code

To: "Maciej W. Rozycki" <>
Subject: Re: [SPAM?] Re: [PATCH] mm/pg-r4k.c: Dump the generated code
From: Nigel Stephens <>
Date: Wed, 10 Oct 2007 13:08:46 +0100
Cc: Franck Bui-Huu <>, Ralf Baechle <>, Thiemo Seufer <>,
In-reply-to: <>
Organization: MIPS Technologies
Original-recipient: rfc822;
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
User-agent: IceDove (X11/20070606)

Maciej W. Rozycki wrote:
On Tue, 9 Oct 2007, Franck Bui-Huu wrote:

What would be the gain for the kernel from using "-march=4ksd" rather than "-march=mips32r2"?

It actually results in a kernel image ~30kbytes smaller for the former
case. It has been discussed sometimes ago on this list. I'm sorry but
I don't know why...

Perhaps the pipeline description for the 4KSd CPU is different from the default for the MIPS32r2 ISA. Barring a study of GCC sources, if that really troubles you, you could build the same version of the kernel with these options:

1. "-march=mips32r2"

2. "-march=4ksd"

3. "-march=mips32r2 -mtune=4ksd"

and compare the results.

I expect the results of #2 and #3 to be the same and it would just back up my suggestion about keeping CPU-specific optimisations separate from the CPU selection.

Actually the -march=4ksd option will allow gcc to use of the SmartMIPS lwxs (indexed load) instruction, which could save a few instructions here and there.

Please also note that our optimisation model is for speed (-O2) rather than size (-Os), so if "-mtune=4ksd" yields smaller code than "-mtune=mips32r2", it just means it is safe for this CPU to shrink code where appropriate without losing performance. One obvious place for such a choice is the use of the hardware multiplier vs shifts and additions where one multiplicand is a constant.

Yes, that's also worth testing.


<Prev in Thread] Current Thread [Next in Thread>