RFC: Should we enable Function Specialization?

Hello folks, brief update.

My patch ⚙ D124114 [FuncSpec] Conditional jump or move depends on uninitialised value(s). seems to have fixed the errors I found with multistage clang builds. I am now trying to build chromium.

I’ve also measured the execution times of the llvm-test-suite with LTO running on a single core (pinned with taskset). The geomean improves by 1.51973% on a Xeon Gold 5120T, and by 3.7059% on Neoverse N1. Unfortunately I could not collect statistics with LTO (the build failed with ld.lld: error: -plugin-opt=: unknown plugin option ‘stats-file=…’).

The compilation times didn’t look so good with LTO though. Here’s the instruction count increase recorded by perf on Xeon:

test name percentage increment
ClamAV 1.29107335983722
7zip 0.558690885015294
tramp3d-v4 0.656290325390982
kimwitu++ 0.580861820884755
sqlite3 2.00999282339229
mafft 0.812760226406484
lencod 0.775063472827178
SPASS 2.09329945725561
Bullet 3.96482578575533
consumer-typeset 0.328170327203899

Cheers,
Alexandros