On Tue, 23 Dec 2008 17:37:03 +0100 Ralf Baechle <ralf@xxxxxxxxxxxxxx> wrote: > On Tue, Dec 23, 2008 at 05:29:54PM +0100, Manuel Lauss wrote: > > > > > 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 > > Thanks for the numbers. I'm a little surprised that there are only > 4 byte difference between the first two variants? > > Ralf Sorry, error on my side: one has to define constants for all mipsXXrY variants to get a good result: 3890074 124400 436528 4451002 43eaba vmlinux 3880034 124400 436528 4440962 43c382 vmlinux+mips_r 3690742 124396 436528 4251666 40e012 vmlinux++llsc 3666386 124332 436528 4227246 4080ae vmlinux+++all Happy holidays, Manuel Lauss.