On Tue, 23 Dec 2008 15:39:09 +0100
Ralf Baechle <firstname.lastname@example.org> wrote:
> On Mon, Dec 22, 2008 at 08:21:08PM +0100, Manuel Lauss wrote:
> > Add cpu feature override constants for Alchemy.
> > Code generated for Alchemy does not use all MIPS32r1 features. Add cpu
> > feature overrides tailored for Alchemy chips and help GCC create better
> > code. As a nice sideeffect the size of the resulting kernel is reduced
> > by a few kilobytes (~200kB for a non-modular db1200 devboard build).
> The enormous size difference is probably 99% due to atomic and bitops
> which exist in LL/SC and non-LL/SC versions and without the header gcc
> will expand the inline function each time. That will hurt, also
> performance. Also the big size difference suggests that we may want to
> outline some or all of these functions.
You are of course correct:
text data bss dec hex filename
3890074 124400 436528 4451002 43eaba vmlinux
3890070 124400 436528 4450998 43eab6 vmlinux+mips32r1
3690742 124396 436528 4251666 40e012 vmlinux++llsc
3666386 124332 436528 4227246 4080ae vmlinux+++all