This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: LTO question


On Tue, Oct 13, 2009 at 5:18 PM, Bingfeng Mei <bmei@broadcom.com> wrote:
>
>
>> -----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.

The function is still exported if you do not use -fwhole-program.

Richard.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]