lto

Vladimir N. Makarov vmakarov@redhat.com
Fri Feb 15 14:12:00 GMT 2008


Jan Hubicka wrote:

>>IP RA as currenly implemented in IRA does propagate info only down in 
>>topological order.  But a good IP RA (e.g. Minimal cost inter-procedural 
>>regiter allocator http://citeseer.ist.psu.edu/kurlander96minimum.html) 
>>needs to propagate info up and down.
>>
>>But I am quite skeptical about IP RA.  To be sucessfull it needs that 
>>the called function is small and uses few registers.  Such functions 
>>should be just inlined.  It solves IP RA besides other problems.  
>>Intel/Sun/Pathscale compilers make very aggressive function inlining 
>>during LTO.  Therefore the code generated by the compilers with LTO is 
>>much bigger (e.g. LTO in pathscale results in 30% bigger code for x86_64 
>>SPECINT2000 and by the way improves the code by 4% and makes the 
>>compiler 50% slower).
>>    
>>
>
>It seems to me that you can afford such a tradeoff if you are targetting
>primarily CPU houngry software.  We need to handle the other cases (ie
>system utilities or openoffice, say) where the code size is about major
>bottleneck, so it seems to me that we don't want to make such an extreme
>tradeoffs (though our current implementation of inliner heruistics will
>do precisely that too)
>  
>
I am agree with you.  We should not forget embedded market where the 
code size is more imortant but we should provide an option for  market 
on which  Pathscale/Intel/Sun compilers are oriented.

With this point of view, we have a lot of resources because gcc 
generates the smallest code.  E.g. In averages Intel compiler generates 
80% bigger code for SPECINT2000 with -O2 and 7 times bigger with -fast.  
It generates even bigger code with -Os (code size optimizations) than 
GCC for -O3.  The same is about the compilation speed.  GCC with -O3 is 
much faster (30%-40%) than all mentioned compilers in peak performance 
mode (-fast, -Ofast).  So I think we have some resouces which we could 
spend to improve the code performance for this market.



More information about the Gcc mailing list