Weird FUD by Phoronix about LTO builds since Mesa is apparently turning off their LTO builds due to "impossible to reproduce bugs that only happen in LTO builds". I'd like to get other people's take, but I'm assuming what's actually happening is that like with -O1 vs -O3, optimizing across translation units is exposing latent UB bugs (or much less likely, latent compiler bugs not directly related to LTO), and it's not that the LTO pass itself is buggy.
Incidentally, this has always been one of the socio-technical problems I've had with LTO in large C and C++ code bases. All the scariest bugs in code bases for those languages are UB-related and might only show up at higher optimization levels. And because of slow build times, most devs understandably don't want to do all their local rebuilds at -O3, never mind -O3 plus LTO (even thin LTO), so you're not actually iterating and dogfooding the thing you're shipping if you ship LTO.
@pervognsen yeah mesa has a bunch of UB bugs, phoronix is just repeating stuff others have said which isn't very accurate. A few people have been slowly improving the situation in mesa, though.
@pervognsen which of course more or less follows the standard trajectory for bringing up old codebases on modern compilers in general, long painful tail of hard to isolate issues caused by latent UB. I'm currently performing a "where in the world did this ud2 come from" ritual myself... :')
@dotstdy UD2, the nemesis of us all.
@pervognsen I wish reverse debugging worked for video games. It reminds me of the old James Mickens rant "THERE'S NO HARDWARE ARCHITECTURE WHICH IS ALIGNED ON 7"
https://www.usenix.org/system/files/1311_05-08_mickens.pdf @dotstdy It's not a true UD2 miscompile unless half your code base was also optimized out in the process.