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.

Richard.

> Thanks,
> Bingfeng Mei
>
>
>

Reply via email to