IMHO this is the next logical step in LTO; today we leave a lot of code size and performance on the floor in order to meet some arbitrary ABI.
IMHO this is the next logical step in LTO; today we leave a lot of code size and performance on the floor in order to meet some arbitrary ABI.
Soon people will demand it just figures out what you are implementing and rewrites your whole codebase
Speak for yourself. On embedded platforms I'd happily make my compiles twice as slow for 10% code size improvements.
We have this now, it is indeed very slow lol. Gemini is pretty fast however.
Partly it's due to lack of better ideas for effective inter-procedural analysis and specialization, but it could also be a symptom of working around the cost of ABIs.
In the current software landscape, I don’t see these additional optimizations as a priority.
Not to mention issues like the op mentions making it impossible to properly take advantage of RVO with stuff like Result<T> and the default ABI.