The Rust Calling Convention We Deserve
Summary
The article argues for a redesigned Rust calling convention to maximize register usage and performance, proposing a -Zcallconv flag with legacy and fast modes, plus shims and per-crate ABI transformations. It explains how LLVM and poison semantics impact codegen, and outlines a strategy for distributing arguments between registers and the stack across multiple architectures, culminating in the idea of an optimization-dependent or profile-guided ABI.