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 > > >