about summary refs log tree commit diff
path: root/compiler/rustc_codegen_gcc
diff options
context:
space:
mode:
authorStuart Cook <Zalathar@users.noreply.github.com>2025-07-31 15:42:00 +1000
committerGitHub <noreply@github.com>2025-07-31 15:42:00 +1000
commitdcd72a62aba119531fe7b57e50854b7daf842046 (patch)
tree5a8a20f522730e8468d82b7e82af74e134c926b5 /compiler/rustc_codegen_gcc
parent4f8d4ca1908e6179c4094d5843db6a29cb323d4d (diff)
parentd852f7cb123cde2f0ed12ef09ef3bf58de391a4f (diff)
downloadrust-dcd72a62aba119531fe7b57e50854b7daf842046.tar.gz
rust-dcd72a62aba119531fe7b57e50854b7daf842046.zip
Rollup merge of #144232 - xacrimon:explicit-tail-call, r=WaffleLapkin
Implement support for `become` and explicit tail call codegen for the LLVM backend

This PR implements codegen of explicit tail calls via `become` in `rustc_codegen_ssa` and support within the LLVM backend. Completes a task on (https://github.com/rust-lang/rust/issues/112788). This PR implements all the necessary bits to make explicit tail calls usable, other backends have received stubs for now and will ICE if you use `become` on them. I suspect there is some bikeshedding to be done on how we should go about implementing this for other backends, but it should be relatively straightforward for GCC after this is merged.

During development I also put together a POC bytecode VM based on tail call dispatch to test these changes out and analyze the codegen to make sure it generates expected assembly. That is available [here](https://github.com/xacrimon/tcvm).
Diffstat (limited to 'compiler/rustc_codegen_gcc')
0 files changed, 0 insertions, 0 deletions