> -----Original Message-----
> From: Richard Guenther [mailto:richard.guent...@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 
> <b...@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
> >
> >
> >
> 
> 

Reply via email to