[Mesa-dev] [PATCH] mesa: Enable LTO compilation

Martin Peres martin.peres at free.fr
Tue May 31 21:57:40 UTC 2016

On 31/05/16 10:42, Eero Tamminen wrote:
> Hi,
> On 30.05.2016 20:57, Rob Clark wrote:
>> On Mon, May 30, 2016 at 1:39 PM, Matt Turner <mattst88 at gmail.com> wrote:
>>> On Mon, May 30, 2016 at 10:28 AM, ⚛ <0xe2.0x9a.0x9b at gmail.com> wrote:
>>>> This patch enables compilation with -flto.
>>>> The performance benefits of LTO (GCC 4.9 & 6.1) are about 1% for glxgears.
>>>> Performance changes in OpenGL games haven't been measured yet, my feeling is
>>>> that they are negligible.
>>> Without a compelling reason, I don't think the build system should be
>>> adding compiler flags like this.
>>> -flto makes debugging impossible, at least the last time I tried it
>>> with gcc. I don't think that's something we would want enabled
>>> whenever it's supported.
>> It would be interesting to know what gains it brings in scenarios less
>> synthetic than glxgears..  my suspicion is that we have been doing
>> manual lto forever (ie. use of static-inline fxn's where it matters).
>> If it turns out to be a significant gain, I wouldn't be against it.
>> Although perhaps only for non-debug builds..
> Martin did some testing with LTO last year for a real customer 3D
> benchmark that was partly CPU bound.  In that case there were actually
> several percent performance improvements.

Definitely was the case on some machines. However, I used GCC 5.X to get 
it to work reliably and one GCC 5 release was clearly improving the 

I stopped making LTO builds because it took too long to compile when 
bisecting performance issues.  I should try again now that gcc has 
"link-time parallelization (enabled using -flto=n)". If it scales with 
the number of threads, then linking mesa will not take 3 minutes anymore 
but ~45seconds or a normal quad core machine.

More information about the mesa-dev mailing list