rust/tests/codegen
bors 284f94f9c0 Auto merge of #121298 - nikic:writable, r=cuviper
Set writable and dead_on_unwind attributes for sret arguments

Set the `writable` and `dead_on_unwind` attributes for `sret` arguments. This allows call slot optimization to remove more memcpy's.

See https://llvm.org/docs/LangRef.html#parameter-attributes for the specification of these attributes. In short, the statement we're making here is that:

 * The return slot is writable.
 * The return slot will not be read if the function unwinds.

Fixes https://github.com/rust-lang/rust/issues/90595.
2024-04-25 04:31:56 +00:00
..
auxiliary Also move the auxiliary file 2023-03-20 10:25:29 +00:00
avr [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
cffi Auto merge of #122053 - erikdesjardins:alloca, r=nikic 2024-04-24 03:00:44 +00:00
cross-crate-inlining [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debug-accessibility [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
dllimports [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
enum Auto merge of #122053 - erikdesjardins:alloca, r=nikic 2024-04-24 03:00:44 +00:00
float Add basic library support for `f16` and `f128` 2024-04-10 13:50:27 -04:00
instrument-coverage Remove unhelpful `DEFINE_INTERNAL` from filecheck flags 2024-02-23 11:29:01 +11:00
instrument-xray [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
intrinsics Fix tests and bless 2024-04-24 13:12:33 +01:00
issues Fix tests and bless 2024-04-24 13:12:33 +01:00
lib-optimizations Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
loongarch-abi Set writable and dead_on_unwind attributes for sret arguments 2024-04-25 11:43:47 +09:00
macos [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
meta-filecheck Allow tests to specify a `//@ filecheck-flags:` header 2024-02-23 11:28:06 +11:00
naked-fn do not add prolog for variadic naked functions 2024-04-12 15:29:39 +03:00
non-terminate [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
remap_path_prefix [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
repr add -O to some tests which depend on attributes being added 2024-03-10 16:04:12 -04:00
riscv-abi [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
sanitizer Fix tests and bless 2024-04-24 13:12:33 +01:00
simd Restore the test checks for `wider_reduce_into_iter` 2024-03-28 21:28:45 +08:00
simd-intrinsic Fix tests and bless 2024-04-24 13:12:33 +01:00
src-hash-algorithm [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
unwind-abis Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
README.md
aarch64-struct-align-128.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
abi-efiapi.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
abi-main-signature-16bit-c-int.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
abi-main-signature-32bit-c-int.rs Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
abi-repr-ext.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
abi-sysv64.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
abi-x86-interrupt.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
abi-x86_64_sysv.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
addr-of-mutate.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
adjustments.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
align-byval-alignment-mismatch.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
align-byval-vector.rs use [N x i8] for byval/sret types 2024-03-05 18:54:45 -05:00
align-byval.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
align-enum.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
align-fn.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
align-offset.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
align-struct.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
alloc-optimisation.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
array-clone.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
array-codegen.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
array-equality.rs Stabilize generic `NonZero`. 2024-04-22 18:48:47 +02:00
array-map.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
array-optimized.rs Remove my `scalar_copy_backend_type` optimization attempt 2024-04-09 08:51:32 -07:00
ascii-char.rs codegen tests: Tolerate `nuw` `nsw` on `trunc` 2024-04-11 17:20:08 +00:00
asm-clobber_abi.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
asm-clobbers.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
asm-goto.rs Add tests for asm goto 2024-02-24 19:49:16 +00:00
asm-may_unwind.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
asm-maybe-uninit.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
asm-multiple-options.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
asm-options.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
asm-powerpc-clobbers.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
asm-sanitize-llvm.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
asm-target-clobbers.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
async-closure-debug.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
async-fn-debug-awaitee-field.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
async-fn-debug-msvc.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
async-fn-debug.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
atomic-operations.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
atomicptr.rs Add the missing inttoptr when we ptrtoint in ptr atomics 2024-03-23 00:07:02 -04:00
autovectorize-f32x4.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
binary-search-index-no-bound-check.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
bool-cmp.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
box-uninit-bytes.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
bpf-alu32.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
branch-protection.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
call-llvm-intrinsics.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
call-metadata.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
cast-target-abi.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
catch-unwind.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
cdylib-external-inline-fns.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
cf-protection.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
cfguard-checks.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
cfguard-disabled.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
cfguard-nochecks.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
cfguard-non-msvc.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
char-ascii-branchless.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
checked_math.rs Make `checked` ops emit *unchecked* LLVM operations where feasible 2024-04-18 18:11:21 -07:00
codemodels.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
coercions.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
cold-call-declare-and-call.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
common_prim_int_ptr.rs refine common_prim test 2024-03-13 01:17:15 -04:00
comparison-operators-2-tuple.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
comparison-operators-newtype.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
const_scalar_pair.rs Fix tests and bless 2024-04-24 13:12:33 +01:00
constant-branch.rs Use `br` instead of conditional when branching on constant 2024-02-23 10:52:55 +00:00
consts.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
coroutine-debug-msvc.rs Error on using `yield` without also using `#[coroutine]` on the closure 2024-04-24 08:05:29 +00:00
coroutine-debug.rs Error on using `yield` without also using `#[coroutine]` on the closure 2024-04-24 08:05:29 +00:00
dealloc-no-unwind.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debug-alignment.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debug-column-msvc.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debug-column.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debug-compile-unit-path.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debug-fndef-size.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
debug-limited.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debug-line-directives-only.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debug-line-tables-only.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debug-linkage-name.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debug-vtable.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debuginfo-constant-locals.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debuginfo-generic-closure-env-names.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
debuginfo-inline-callsite-location.rs Update a test to support Symbol Mangling V0 2024-02-26 18:12:07 +01:00
deduced-param-attrs.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
default-hidden-visibility.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
default-requires-uwtable.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
direct-access-external-data.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
dont_codegen_private_const_fn_only_used_in_const_eval.rs Stop walking the bodies of statics for reachability, and evaluate them instead 2024-03-14 14:10:45 +00:00
drop-in-place-noalias.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
drop.rs Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
dst-offset.rs use ptradd for vtable indexing 2024-03-10 22:47:30 -04:00
dst-vtable-align-nonzero.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
dst-vtable-size-range.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
ehcontguard_disabled.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
ehcontguard_enabled.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
emcripten-catch-unwind.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
enable-lto-unit-splitting.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
export-no-mangle.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
external-no-mangle-fns.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
external-no-mangle-statics.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
fastcall-inreg.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
fatptr.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
fewer-names.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
float_math.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
fn-impl-trait-self.rs Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
foo.s
force-frame-pointers.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
force-no-unwind-tables.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
force-unwind-tables.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
frame-pointer.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
function-arguments-noopt.rs use [N x i8] for byval/sret types 2024-03-05 18:54:45 -05:00
function-arguments.rs Auto merge of #121298 - nikic:writable, r=cuviper 2024-04-25 04:31:56 +00:00
function-return.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
gdb_debug_script_load.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
generic-debug.rs Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
global_asm.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
global_asm_include.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
global_asm_x2.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
i128-x86-align.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
infallible-unwrap-in-opt-z.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
inherit_overflow.rs Codegen const panic messages as function calls 2024-03-22 09:55:50 -04:00
inline-always-works-always.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
inline-debuginfo.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
inline-function-args-debug-info.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
inline-hint.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
instrument-mcount.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
integer-cmp.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
integer-overflow.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
internalize-closures.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
intrinsic-no-unnamed-attr.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
is_val_statically_known.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
issue-97217.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
iter-repeat-n-trivial-drop.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
layout-size-checks.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
lifetime_start_end.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
link-dead-code.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
link_section.rs Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
llvm-ident.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
llvm_module_flags.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
loads.rs Stabilize generic `NonZero`. 2024-04-22 18:48:47 +02:00
local-generics-in-exe-internalized.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
lto-removes-invokes.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
mainsubprogram.rs Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
mainsubprogramstart.rs Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
match-optimized.rs Transforms match into an assignment statement 2024-04-08 19:00:53 +08:00
match-optimizes-away.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
match-unoptimized.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
maybeuninit-rvo.rs Add needs-unwind to codegen test 2024-04-25 11:44:32 +09:00
mem-replace-big-type.rs use [N x i8] for byval/sret types 2024-03-05 18:54:45 -05:00
mem-replace-simple-type.rs At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
merge-functions.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
method-declaration.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
mir-inlined-line-numbers.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
mir_zst_stores.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
move-before-nocapture-ref-arg.rs Update the minimum external LLVM to 17 2024-03-17 10:11:04 -07:00
move-operands.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
no-assumes-on-casts.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
no-dllimport-w-cross-lang-lto.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
no-jump-tables.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
no-plt.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
no-redundant-item-monomorphization.rs Port issue-7349 to a codegen test 2024-04-04 21:59:08 +01:00
no_builtins-at-crate.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
noalias-box-off.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
noalias-box.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
noalias-flag.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
noalias-refcell.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
noalias-rwlockreadguard.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
noalias-unpin.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
noreturn-uninhabited.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
noreturnflag.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
nounwind.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
nrvo.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
optimize-attr-1.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
option-as-slice.rs Stabilize generic `NonZero`. 2024-04-22 18:48:47 +02:00
option-niche-eq.rs Stabilize generic `NonZero`. 2024-04-22 18:48:47 +02:00
overaligned-constant.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
packed.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
panic-abort-windows.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
panic-in-drop-abort.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
panic-unwind-default-uwtable.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
pattern_type_symbols.rs Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
personality_lifetimes.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
pgo-counter-bias.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
pgo-instrumentation.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
pic-relocation-model.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
pie-relocation-model.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
powerpc64le-struct-align-128.rs Fix argument ABI for overaligned structs on ppc64le 2024-04-08 11:15:36 +09:00
precondition-checks.rs Avoid lowering code under dead SwitchInt targets 2024-03-12 19:01:04 -04:00
ptr-arithmetic.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
ptr-read-metadata.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
refs.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
repeat-trusted-len.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
riscv-target-abi.rs Set target-abi module flag for RISC-V targets 2024-04-09 05:25:51 +02:00
scalar-pair-bool.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
set-discriminant-invalid.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
skip-mono-inside-if-false.rs Avoid lowering code under dead SwitchInt targets 2024-03-12 19:01:04 -04:00
slice-as_chunks.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
slice-indexing.rs Use unchecked_sub in str indexing 2024-04-06 14:09:03 -04:00
slice-init.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
slice-iter-fold.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
slice-iter-len-eq-zero.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
slice-iter-nonnull.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
slice-position-bounds-check.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
slice-ref-equality.rs Stabilize generic `NonZero`. 2024-04-22 18:48:47 +02:00
slice-reverse.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
slice-windows-no-bounds-check.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
slice_as_from_ptr_range.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
some-abis-do-extend-params-to-32-bits.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
some-global-nonnull.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
sparc-struct-abi.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
split-lto-unit.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
sroa-fragment-debuginfo.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
sse42-implies-crc32.rs Rollup merge of #120820 - CKingX:cpu-base-minimum, r=petrochenkov,ChrisDenton 2024-02-29 17:08:36 +01:00
stack-probes-inline.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
stack-protector.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
static-relocation-model-msvc.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
staticlib-external-inline-fns.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
step_by-overflow-checks.rs Don't emit divide-by-zero panic paths in `StepBy::len` 2024-04-06 11:37:57 -07:00
stores.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
swap-large-types.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
swap-small-types.rs use [N x i8] for alloca types 2024-04-11 21:42:35 -04:00
target-cpu-on-functions.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
target-feature-inline-closure.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
target-feature-overrides.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
thin-lto.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
thread-local.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
tied-features-strength.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
to_vec.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
trailing_zeros.rs Update the minimum external LLVM to 17 2024-03-17 10:11:04 -07:00
transmute-optimized.rs Stabilize generic `NonZero`. 2024-04-22 18:48:47 +02:00
transmute-scalar.rs Lower transmutes from int to pointer type as gep on null 2024-03-11 18:19:17 -04:00
try_identity.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
try_question_mark_nop.rs allow using scalarpair with a common prim of ptr/ptr-sized-int 2024-02-27 00:09:12 -05:00
tune-cpu-on-functions.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
tuple-layout-opt.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
ub-checks.rs Put checks that detect UB under their own flag below debug_assertions 2024-04-06 11:21:47 -04:00
unchecked-float-casts.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
unchecked_shifts.rs codegen tests: Tolerate `nuw` `nsw` on `trunc` 2024-04-11 17:20:08 +00:00
uninit-consts.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
union-abi.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
unwind-and-panic-abort.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
unwind-extern-exports.rs Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
unwind-extern-imports.rs Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
unwind-landingpad-cold.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
unwind-landingpad-inline.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
used_with_arg.rs
var-names.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
vec-as-ptr.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
vec-calloc.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
vec-in-place.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
vec-iter-collect-len.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
vec-iter.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
vec-len-invariant.rs Avoid reloading Vec::len across grow_one in push 2024-04-20 21:07:00 -04:00
vec-optimizes-away.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
vec-reserve-extend.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
vec-shrink-panik.rs Update the minimum external LLVM to 17 2024-03-17 10:11:04 -07:00
vec-with-capacity.rs try_with_capacity for Vec, VecDeque, String 2024-03-01 18:24:02 +00:00
vec_pop_push_noop.rs Fix test. 2024-03-29 15:37:43 -07:00
vecdeque-drain.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
vecdeque-nonempty-get-no-panic.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
vecdeque_no_panic.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
vecdeque_pop_push.rs Add invariant to VecDeque::pop_* that len < cap if pop successful 2024-04-08 12:12:13 +02:00
virtual-function-elimination-32bit.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
virtual-function-elimination.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
vtable-upcast.rs use ptradd for vtable indexing 2024-03-10 22:47:30 -04:00
wasm_casts_trapping.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
wasm_exceptions.rs Update test directives for `wasm32-wasip1` 2024-03-11 09:36:35 -07:00
zip.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
zst-offset.rs use GEP inbounds for ZST and DST field offsets 2024-03-04 09:32:33 -05:00

README.md

The files here use the LLVM FileCheck framework, documented at https://llvm.org/docs/CommandGuide/FileCheck.html.

One extension worth noting is the use of revisions as custom prefixes for FileCheck. If your codegen test has different behavior based on the chosen target or different compiler flags that you want to exercise, you can use a revisions annotation, like so:

// revisions: aaa bbb
// [bbb] compile-flags: --flags-for-bbb

After specifying those variations, you can write different expected, or explicitly unexpected output by using <prefix>-SAME: and <prefix>-NOT:, like so:

// CHECK: expected code
// aaa-SAME: emitted-only-for-aaa
// aaa-NOT:                        emitted-only-for-bbb
// bbb-NOT:  emitted-only-for-aaa
// bbb-SAME:                       emitted-only-for-bbb