Our great sponsors
-
llvm-project
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Compilers also may even spill data to stack from memory, even when the original location is still available, as can be seen in this issue: https://github.com/llvm/llvm-project/issues/53348
I vaguely remember that spilling like this could allow high-end CPUs to use something similar to register renaming, i.e. stack locations like [rsp + 96] could be stay in a physical registers during function execution (high-end CPUs often have more physical registers, than logical ones), but could find good references whether such optimization exists in practice or not.
Unfortunately, I think more often than note it causes performance regressions and in some cases it may even cause unnecessary stack spilling of sensitive data: https://github.com/rust-lang/rust/issues/88930#issuecomment-...
Compilers also may even spill data to stack from memory, even when the original location is still available, as can be seen in this issue: https://github.com/llvm/llvm-project/issues/53348
I vaguely remember that spilling like this could allow high-end CPUs to use something similar to register renaming, i.e. stack locations like [rsp + 96] could be stay in a physical registers during function execution (high-end CPUs often have more physical registers, than logical ones), but could find good references whether such optimization exists in practice or not.
Unfortunately, I think more often than note it causes performance regressions and in some cases it may even cause unnecessary stack spilling of sensitive data: https://github.com/rust-lang/rust/issues/88930#issuecomment-...