Version 1.2.1 was released a few days ago, with many improvements for LTO support (and Clang's ThinLTO): https://github.com/rui314/mold/releases/tag/v1.2.1 Now --gdb-index is properly supported, and reading the release notes I've learnt that one needs to pass -ggnu-pubnames to the compiler for the option to actually do something (which we are not currently doing, follow-up patch later on).
Here there's some numbers for my build machine, making an initial RelWithDebInfo build, removing bin/* and lib/*.so* from the build directory and then measuring how much it takes for the build to complete, in order to (mostly) measure link time: Mold LLD usr sys wall usr sys wall 45,94 1,64 48,77 56,86 79,31 46,27 42,32 1,19 44,48 60,09 77,43 49,78 45,69 1,33 48,19 56,30 74,35 46,04 42,19 1,29 44,65 60,19 78,22 49,77 45,54 1,73 48,52 56,56 79,41 46,33 44,03 1,36 46,52 58,36 77,33 47,96 avg 1,33x 56,75x 1,03x diff Something very interesting to note is that the wall time for both linkers is quite similar, but LLD is taking considerably more user and system time than Mold. Neither manage to bring CPU usage up to 100% across all 64 cores in my build machine, which means the bottleneck here is disk access. On machines with higher I/O thoroughput (better bus, better drives, RAID-0 arrangement, etc.), the faster the disk access gets, the faster using Mold will be.
Pull request: https://github.com/WebKit/WebKit/pull/542
Committed r293887 (250345@main): <https://commits.webkit.org/250345@main> Reviewed commits have been landed. Closing PR #542 and removing active labels.
<rdar://problem/92859456>