← Back to context

Comment by fleventynine

9 hours ago

Rigid ABIs aren't necessary for statically linked programs. Ideally, the compiler would look at the usage of the function in context and figure out an ABI specifically for that function that minimizes unnecessary copies and register churn.

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.

Can’t offload everything into the compiler. It is already too slow.

Soon people will demand it just figures out what you are implementing and rewrites your whole codebase

  • > Soon people will demand it just figures out what you are implementing and rewrites your whole codebase

    We have this now, it is indeed very slow lol. Gemini is pretty fast however.

I would argue that most of today’s performance problems in software are unrelated to ABI.

  • I would argue that is largely true because we got the ABIs and the hardware to support them to be highly optimized. Thing slow down very quickly if one gets off that hard-won autobahn of ABI efficiency.