rust/tests/ui/print-request
Simonas Kazlauskas 6db94dbc25 abi: add a rust-preserve-none calling convention
This is the conceptual opposite of the rust-cold calling convention and
is particularly useful in combination with the new `explicit_tail_calls`
feature.

For relatively tight loops implemented with tail calling (`become`) each
of the function with the regular calling convention is still responsible
for restoring the initial value of the preserved registers. So it is not
unusual to end up with a situation where each step in the tail call loop
is spilling and reloading registers, along the lines of:

    foo:
        push r12
        ; do things
        pop r12
        jmp next_step

This adds up quickly, especially when most of the clobberable registers
are already used to pass arguments or other uses.

I was thinking of making the name of this ABI a little less LLVM-derived
and more like a conceptual inverse of `rust-cold`, but could not come
with a great name (`rust-cold` is itself not a great name: cold in what
context? from which perspective? is it supposed to mean that the
function is rarely called?)
2026-01-24 19:23:17 +02:00
..
backend-has-zstd-unstable.rs Add perma-unstable --print=backend-has-zstd for use by compiletest 2025-12-05 14:27:52 +11:00
backend-has-zstd-unstable.stderr Add perma-unstable --print=backend-has-zstd for use by compiletest 2025-12-05 14:27:52 +11:00
host.rs Add --print host-triple 2024-11-02 21:29:59 +01:00
host.stdout Add --print host-triple 2024-11-02 21:29:59 +01:00
invalid-target.rs compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
invalid-target.stderr move deployment-target tests to print-request 2024-11-02 21:29:59 +01:00
macos-target.rs Remove the -test suffix from normalize directives 2024-12-27 19:58:16 +11:00
macos-target.stdout Print env var in --print=deployment-target 2024-11-22 20:46:05 +01:00
print-calling-conventions.rs cleaned up some tests 2025-07-05 00:45:24 +05:00
print-calling-conventions.stdout abi: add a rust-preserve-none calling convention 2026-01-24 19:23:17 +02:00
print-lints-help.rs UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
print-lints-help.stderr Add perma-unstable --print=backend-has-zstd for use by compiletest 2025-12-05 14:27:52 +11:00
stability.rs Revert overeager warning for misuse of --print native-static-libs 2025-06-16 12:43:36 -07:00
supported-crate-types.linux.stdout Implement supported-crate-types print request 2025-03-23 19:08:54 +08:00
supported-crate-types.musl.stdout Implement supported-crate-types print request 2025-03-23 19:08:54 +08:00
supported-crate-types.rs Ignore failing GCC test 2025-12-05 09:51:27 -05:00
supported-crate-types.wasm.stdout Implement supported-crate-types print request 2025-03-23 19:08:54 +08:00