LTO question
Bingfeng Mei
bmei@broadcom.com
Tue Oct 13 15:19:00 GMT 2009
> -----Original Message-----
> From: Richard Guenther [mailto:richard.guenther@gmail.com]
> Sent: 13 October 2009 16:15
> To: Bingfeng Mei
> Cc: gcc@gcc.gnu.org
> Subject: Re: LTO question
>
> On Tue, Oct 13, 2009 at 2:47 PM, Bingfeng Mei
> <bmei@broadcom.com> wrote:
> > Hello,
> > I just had the first taste with the latest LTO merge on our port.
> > Compiler is configured with LTO enabled and built correctly.
> > I tried the following example:
> >
> > a.c
> > extern void foo(int);
> > int main()
> > { foo(20);
> > return 1;
> > }
> >
> > b.c
> > #include <stdio.h>
> > void foo(int c)
> > {
> > printf("Hello world: %d\n", c);
> > }
> >
> > compiled with:
> > firepath-elf-gcc -flto a.c b.c -save-temps -O2
> >
> > I expected that foo should be inlined into main, but not.
> Both functions
> > of main and foo are present in a.s, while b.s contains the
> LTO code.
> >
> > Did I miss something here? Are there new hooks I should
> specify or tune for
> > LTO? I checked the up-to-date internal manual and found nothing.
>
> non-inline declared functions are inlined at -O2 only if doing so
> does not increase program size. Use -O3 or -finline-functions.
But the function is only called once here. It should always decrease size unless
my cost function is terribly wrong. I will check how other targets such as
x86 do here.
>
> Richard.
>
> > Thanks,
> > Bingfeng Mei
> >
> >
> >
>
>
More information about the Gcc
mailing list