3 ms·
I am personally interested in the code amalgamation technique that SQLite uses[0]. It seems like a free 5-10% performance improvement as is claimed by SQLite fo
by ketanmaheshwari 10mo ago
I am personally interested in the code amalgamation technique that SQLite uses[0]. It seems like a free 5-10% performance improvement as is claimed by SQLite folks. Be nice if he addresses it some in one of the sessions.
[0] https://sqlite.org/amalgamation.html https://sqlite.org/amalgamation.html
- theresistor 10mo agoThis is a pretty standard topic, and not really a compiler optimization. It's usually called a unity build. [0] https://en.wikipedia.org/wiki/Unity_build https://en.wikipedia.org/wiki/Unity_build
- nickelpro 10mo agoUnity builds have been largely supplanted by LTO. They still have uses for build time improvements in one-off builds, as LTO on a non-incremental build is usually slower than the equivalent unity build.
- Sponge5 10mo agoAt my company, we have not seen any performance benefits from LTO on a GCC cross-compiled Qt application. GCC version: 11.3 target: Cortex-A9 Qt version: 5.15 I think we tested single core and quad core, also possibly a newer GCC version, but I'm not sure. Just wanted to add my two cents.
- o11c 10mo agoI would expect a little benefit from devirt (but maybe in-TU optimizations are getting that already?), but if a program is pessimized enough, LTO's improvements won't be measurable. And programs full of pointer-chasing are quite pessimized; highly-OO code is a common example, which includes almost all GUIs, even in C++.
- gpderetta 10mo agoDo you link against a version of the Qt library that provides IR objects? In any case even with whole program optimization, O would expect that effectively devirtualizing an heavily object oriented application to be very hard.
- euroderf 10mo agoFor those of you playing at home, LTO is link-time optimization.