To do so we have to tweak the cost model such that specialization does not trigger excessively.
Compile times -O3
benchmark | nspecs before | nspecs after | instrCnt delta % |
ClamAV | 5 | 5 | +0.003 |
7zip | 1 | +0.006 | |
tramp3d-v4 | -0.03 | ||
kimwitu++ | -0.015 | ||
sqlite3 | +0.034 | ||
mafft | +0.022 | ||
lencod | 1 | +0.171 | |
SPASS | 1 | +0.364 | |
consumer-typeset | 1 | -0.007 | |
Bullet | 1 | 1 | +0.015 |
geomean | +0.056 | ||
Compile times LTO
benchmark | nspecs before | nspecs after | instrCnt delta % |
ClamAV | 2 | +0.535 | |
7zip | +0.024 | ||
tramp3d-v4 | +0.022 | ||
kimwitu++ | -0.008 | ||
sqlite3 | +0.091 | ||
mafft | -0.001 | ||
lencod | 6 | +0.205 | |
SPASS | 3 | 1 | +0.032 |
consumer-typeset | 1 | 1 | -0.361 |
Bullet | -0.01 | ||
geomean | +0.053 |
nit: It is better to have a paragraph for the cost model. This is not required now. We can add one after we feel it is relatively stable.