[cfe-dev] limiting inlining

Eli Friedman eli.friedman at gmail.com
Fri Sep 25 03:43:37 PDT 2009


On Fri, Sep 25, 2009 at 12:52 AM, Roman Divacky <rdivacky at freebsd.org> wrote:
> On Thu, Sep 24, 2009 at 02:31:10PM -0700, Mike Stump wrote:
>> On Sep 24, 2009, at 2:10 PM, Roman Divacky wrote:
>> >we need that for our bootloader... it needs to fit into a given size.
>>
>> Would -Os be better?
>
> this is what we have currently:
>
> clang -Os  -fno-guess-branch-probability  -fomit-frame-pointer  -mno-align-long-strings  -mrtd  -mno-mmx
> -mno-3dnow -mno-sse -mno-sse2 -mno-sse3  -DUFS1_AND_UFS2  -DFLAGS=0x80  -DSIOPRT=0x3f8  -DSIOFMT=0x3
> -DSIOSPD=9600  -I/usr/src/sys/boot/i386/boot2/../../common  -I/usr/src/sys/boot/i386/boot2/../btx/lib -I.  -Wall
> -Waggregate-return -Wbad-function-cast -Wcast-align  -Wmissing-declarations -Wmissing-prototypes -Wnested-externs
> -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings  -Winline --param max-inline-insns-single=100 -mllvm
> -inline-threshold=1000 -ffreestanding -mllvm -inline-threshold=1000 -mno-mmx -mno-3dnow -mno-sse -mno-sse2
> -mno-sse3 -m32 -march=i386  -S -o boot2.s.tmp /usr/src/sys/boot/i386/boot2/boot2.c
>
> ie. -Os is already there. I wonder why  the -inline-threshold has no effect.

-inline-threshold=1000 is way more aggressive than even -O3 in LLVM.
Try something more like -inline-threshold=0.

-Eli




More information about the cfe-dev mailing list