rust/tests/mir-opt
bors 9629b90b3f Auto merge of #127722 - BoxyUwU:new_adt_const_params_limitations, r=compiler-errors
Forbid borrows and unsized types from being used as the type of a const generic under `adt_const_params`

Fixes #112219
Fixes #112124
Fixes #112125

### Motivation

Currently the `adt_const_params` feature allows writing `Foo<const N: [u8]>` this is entirely useless as it is not possible to write an expression which evaluates to a type that is not `Sized`. In order to actually use unsized types in const generics they are typically written as `const N: &[u8]` which *is* possible to provide a value of.

Unfortunately allowing the types of const parameters to contain references is non trivial (#120961) as it introduces a number of difficult questions about how equality of references in the type system should behave. References in the types of const generics is largely only useful for using unsized types in const generics.

This PR introduces a new feature gate `unsized_const_parameters` and moves support for `const N: [u8]` and `const N: &...` from `adt_const_params` into it. The goal here hopefully is to experiment with allowing `const N: [u8]` to work without references and then eventually completely forbid references in const generics.

Splitting this out into a new feature gate means that stabilization of `adt_const_params` does not have to resolve #120961 which is the only remaining "big" blocker for the feature. Remaining issues after this are a few ICEs and naming bikeshed for `ConstParamTy`.

### Implementation

The implementation is slightly subtle here as we would like to ensure that a stabilization of `adt_const_params` is forwards compatible with any outcome of `unsized_const_parameters`. This is inherently tricky as we do not support unstable trait implementations and we determine whether a type is valid as the type of a const parameter via a trait bound.

There are a few constraints here:
- We would like to *allow for the possibility* of adding a `Sized` supertrait to `ConstParamTy` in the event that we wind up opting to not support unsized types and instead requiring people to write the 'sized version', e.g. `const N: [u8; M]` instead of `const N: [u8]`.
- Crates should be able to enable `unsized_const_parameters` and write trait implementations of `ConstParamTy` for `!Sized` types without downstream crates that only enable `adt_const_params` being able to observe this (required for std to be able to `impl<T> ConstParamTy for [T]`

Ultimately the way this is accomplished is via having two traits (sad), `ConstParamTy` and `UnsizedConstParamTy`. Depending on whether `unsized_const_parameters` is enabled or not we change which trait is used to check whether a type is allowed to be a const parameter.

Long term (when stabilizing `UnsizedConstParamTy`) it should be possible to completely merge these traits (and derive macros), only having a single `trait ConstParamTy` and `macro ConstParamTy`.

Under `adt_const_params` it is now illegal to directly refer to `ConstParamTy` it is only used as an internal impl detail by `derive(ConstParamTy)` and checking const parameters are well formed. This is necessary in order to ensure forwards compatibility with all possible future directions for `feature(unsized_const_parameters)`.

Generally the intuition here should be that `ConstParamTy` is the stable trait that everything uses, and `UnsizedConstParamTy` is that plus unstable implementations (well, I suppose `ConstParamTy` isn't stable yet :P).
2024-07-21 05:36:21 +00:00
..
building Return the `otherwise_block` instead of passing it as argument 2024-07-09 22:47:35 +02:00
const_prop Split part of `adt_const_params` into `unsized_const_params` 2024-07-17 11:01:29 +01:00
copy-prop rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
coverage coverage: Replace the old span refiner with a single function 2024-06-12 22:59:24 +10:00
dataflow-const-prop Ignore allocation bytes in one more mir-opt test 2024-07-15 10:18:06 +02:00
dead-store-elimination Reformat `mir!` macro invocations to use braces. 2024-06-03 13:24:44 +10:00
dest-prop Rollup merge of #122300 - CastilloDel:master, r=cjgillot 2024-07-13 20:19:45 -07:00
inline Avoid MIR bloat in inlining 2024-07-01 05:17:13 -07:00
instsimplify Ban `ArrayToPointer` and `MutToConstPointer` from runtime MIR 2024-06-19 10:44:01 -07:00
issues rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
nll rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
pre-codegen Rollup merge of #126502 - cuviper:dump-mir-exclude-alloc-bytes, r=estebank 2024-07-12 13:47:05 -07:00
sroa rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
unnamed-fields rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
README.md mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
address_of.address_of_reborrow.SimplifyCfg-initial.after.mir bless mir-opt tests 2024-04-08 15:08:06 +00:00
address_of.borrow_and_cast.SimplifyCfg-initial.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
address_of.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
array_index_is_temporary.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
array_index_is_temporary.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
array_index_is_temporary.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
asm_unwind_panic_abort.main.AbortUnwindingCalls.after.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
asm_unwind_panic_abort.rs Remove some only- clauses from mir-opt tests 2024-03-18 10:07:43 -04:00
async_closure_shims.main-{closure#0}-{closure#0}-{closure#0}.coroutine_by_move.0.panic-abort.mir Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
async_closure_shims.main-{closure#0}-{closure#0}-{closure#0}.coroutine_by_move.0.panic-unwind.mir Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
async_closure_shims.main-{closure#0}-{closure#0}.coroutine_closure_by_move.0.panic-abort.mir Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
async_closure_shims.main-{closure#0}-{closure#0}.coroutine_closure_by_move.0.panic-unwind.mir Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
async_closure_shims.main-{closure#0}-{closure#1}-{closure#0}.coroutine_by_move.0.panic-abort.mir Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
async_closure_shims.main-{closure#0}-{closure#1}-{closure#0}.coroutine_by_move.0.panic-unwind.mir Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
async_closure_shims.main-{closure#0}-{closure#1}.coroutine_closure_by_move.0.panic-abort.mir Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
async_closure_shims.main-{closure#0}-{closure#1}.coroutine_closure_by_move.0.panic-unwind.mir Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
async_closure_shims.main-{closure#0}-{closure#1}.coroutine_closure_by_ref.0.panic-abort.mir Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
async_closure_shims.main-{closure#0}-{closure#1}.coroutine_closure_by_ref.0.panic-unwind.mir Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
async_closure_shims.rs Fix FnMut/Fn shim for coroutine-closures that capture references 2024-06-29 17:38:02 -04:00
basic_assignment.main.ElaborateDrops.diff make MIR less verbose 2023-08-24 14:26:26 +02:00
basic_assignment.main.SimplifyCfg-initial.after.mir bless mir-opt tests 2024-04-08 15:08:06 +00:00
basic_assignment.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
box_expr.main.ElaborateDrops.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
box_expr.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
byte_slice.main.SimplifyCfg-pre-optimizations.after.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
byte_slice.rs simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
const_allocation.main.GVN.after.32bit.mir Avoid recording no-op replacements. 2024-01-07 13:54:05 +00:00
const_allocation.main.GVN.after.64bit.mir Avoid recording no-op replacements. 2024-01-07 13:54:05 +00:00
const_allocation.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
const_allocation2.main.GVN.after.32bit.mir Avoid recording no-op replacements. 2024-01-07 13:54:05 +00:00
const_allocation2.main.GVN.after.64bit.mir Avoid recording no-op replacements. 2024-01-07 13:54:05 +00:00
const_allocation2.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
const_allocation3.main.GVN.after.32bit.mir Avoid recording no-op replacements. 2024-01-07 13:54:05 +00:00
const_allocation3.main.GVN.after.64bit.mir Avoid recording no-op replacements. 2024-01-07 13:54:05 +00:00
const_allocation3.rs don't inhibit random field reordering on repr(packed(1)) 2024-05-21 19:22:04 +02:00
const_debuginfo.main.SingleUseConsts.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
const_debuginfo.rs Use `-Zdump-mir-exclude-alloc-bytes` in some mir-opt tests 2024-06-26 15:05:01 -07:00
const_goto_const_eval_fail.f.JumpThreading.diff Remove ConstGoto and SeparateConstSwitch. 2024-02-09 21:13:53 +00:00
const_goto_const_eval_fail.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
const_promotion_extern_static.BAR-promoted[0].SimplifyCfg-pre-optimizations.after.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
const_promotion_extern_static.BAR.PromoteTemps.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
const_promotion_extern_static.BOP.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_promotion_extern_static.FOO-promoted[0].SimplifyCfg-pre-optimizations.after.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
const_promotion_extern_static.FOO.PromoteTemps.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
const_promotion_extern_static.rs simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
coroutine_drop_cleanup.main-{closure#0}.coroutine_drop.0.panic-abort.mir Error on using `yield` without also using `#[coroutine]` on the closure 2024-04-24 08:05:29 +00:00
coroutine_drop_cleanup.main-{closure#0}.coroutine_drop.0.panic-unwind.mir Error on using `yield` without also using `#[coroutine]` on the closure 2024-04-24 08:05:29 +00:00
coroutine_drop_cleanup.rs Error on using `yield` without also using `#[coroutine]` on the closure 2024-04-24 08:05:29 +00:00
coroutine_storage_dead_unwind.main-{closure#0}.StateTransform.before.panic-abort.mir Error on using `yield` without also using `#[coroutine]` on the closure 2024-04-24 08:05:29 +00:00
coroutine_storage_dead_unwind.main-{closure#0}.StateTransform.before.panic-unwind.mir Error on using `yield` without also using `#[coroutine]` on the closure 2024-04-24 08:05:29 +00:00
coroutine_storage_dead_unwind.rs Error on using `yield` without also using `#[coroutine]` on the closure 2024-04-24 08:05:29 +00:00
coroutine_tiny.main-{closure#0}.coroutine_resume.0.mir Error on using `yield` without also using `#[coroutine]` on the closure 2024-04-24 08:05:29 +00:00
coroutine_tiny.rs Error on using `yield` without also using `#[coroutine]` on the closure 2024-04-24 08:05:29 +00:00
deduplicate_blocks.is_line_doc_comment_2.DeduplicateBlocks.panic-abort.diff Don't try to save an extra block 2024-07-09 22:47:35 +02:00
deduplicate_blocks.is_line_doc_comment_2.DeduplicateBlocks.panic-unwind.diff Don't try to save an extra block 2024-07-09 22:47:35 +02:00
deduplicate_blocks.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
derefer_complex_case.main.Derefer.panic-abort.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
derefer_complex_case.main.Derefer.panic-unwind.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
derefer_complex_case.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
derefer_inline_test.main.Derefer.panic-abort.diff make MIR less verbose 2023-08-24 14:26:26 +02:00
derefer_inline_test.main.Derefer.panic-unwind.diff make MIR less verbose 2023-08-24 14:26:26 +02:00
derefer_inline_test.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
derefer_terminator_test.main.Derefer.panic-abort.diff Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
derefer_terminator_test.main.Derefer.panic-unwind.diff Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
derefer_terminator_test.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
derefer_test.main.Derefer.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
derefer_test.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
derefer_test_multiple.main.Derefer.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
derefer_test_multiple.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
dont_inline_type_id.call.Inline.diff Don't resolve generic instances if they may be shadowed by dyn 2023-09-19 05:42:23 +00:00
dont_inline_type_id.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
early_otherwise_branch.opt1.EarlyOtherwiseBranch.diff Resolve unsound hoisting of discriminant in `EarlyOtherwiseBranch` 2024-04-07 21:14:26 +08:00
early_otherwise_branch.opt2.EarlyOtherwiseBranch.diff Resolve unsound hoisting of discriminant in `EarlyOtherwiseBranch` 2024-04-07 21:14:26 +08:00
early_otherwise_branch.opt3.EarlyOtherwiseBranch.diff Don't change the otherwise of the switch 2024-04-08 19:20:07 +08:00
early_otherwise_branch.opt4.EarlyOtherwiseBranch.diff Don't change the otherwise of the switch 2024-04-08 19:20:07 +08:00
early_otherwise_branch.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
early_otherwise_branch_3_element_tuple.opt1.EarlyOtherwiseBranch.diff Resolve unsound hoisting of discriminant in `EarlyOtherwiseBranch` 2024-04-07 21:14:26 +08:00
early_otherwise_branch_3_element_tuple.opt2.EarlyOtherwiseBranch.diff Don't change the otherwise of the switch 2024-04-08 19:20:07 +08:00
early_otherwise_branch_3_element_tuple.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
early_otherwise_branch_68867.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
early_otherwise_branch_68867.try_sum.EarlyOtherwiseBranch.diff Resolve unsound hoisting of discriminant in `EarlyOtherwiseBranch` 2024-04-07 21:14:26 +08:00
early_otherwise_branch_noopt.noopt1.EarlyOtherwiseBranch.diff Rollup merge of #121908 - Nadrieril:dynamic-variant-collection, r=matthewjasper 2024-03-13 06:41:21 +01:00
early_otherwise_branch_noopt.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
early_otherwise_branch_soundness.no_deref_ptr.EarlyOtherwiseBranch.diff Resolve unsound hoisting of discriminant in `EarlyOtherwiseBranch` 2024-04-07 21:14:26 +08:00
early_otherwise_branch_soundness.no_downcast.EarlyOtherwiseBranch.diff Resolve unsound hoisting of discriminant in `EarlyOtherwiseBranch` 2024-04-07 21:14:26 +08:00
early_otherwise_branch_soundness.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
enum_opt.cand.EnumSizeOpt.32bit.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
enum_opt.cand.EnumSizeOpt.64bit.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
enum_opt.invalid.EnumSizeOpt.32bit.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
enum_opt.invalid.EnumSizeOpt.64bit.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
enum_opt.rs Use `-Zdump-mir-exclude-alloc-bytes` in some mir-opt tests 2024-06-26 15:05:01 -07:00
enum_opt.trunc.EnumSizeOpt.32bit.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
enum_opt.trunc.EnumSizeOpt.64bit.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
enum_opt.unin.EnumSizeOpt.32bit.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
enum_opt.unin.EnumSizeOpt.64bit.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
fn_ptr_shim.core.ops-function-Fn-call.AddMovesForPackedDrops.before.mir Auto merge of #112307 - lcnr:operand-ref, r=compiler-errors 2023-06-28 00:41:37 +00:00
fn_ptr_shim.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
funky_arms.float_to_exponential_common.GVN.panic-abort.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
funky_arms.float_to_exponential_common.GVN.panic-unwind.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
funky_arms.rs Enable more mir-opt tests in debug builds 2024-03-22 20:14:39 -04:00
graphviz.main.built.after.dot Move /src/test to /tests 2023-01-11 09:32:08 +00:00
graphviz.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
gvn.arithmetic.GVN.panic-abort.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
gvn.arithmetic.GVN.panic-unwind.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
gvn.arithmetic_checked.GVN.panic-abort.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
gvn.arithmetic_checked.GVN.panic-unwind.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
gvn.arithmetic_float.GVN.panic-abort.diff Do not remove unused definitions inside GVN. 2023-10-25 06:46:45 +00:00
gvn.arithmetic_float.GVN.panic-unwind.diff Do not remove unused definitions inside GVN. 2023-10-25 06:46:45 +00:00
gvn.array_len.GVN.panic-abort.diff More GVN for PtrMetadata 2024-06-20 22:16:59 -07:00
gvn.array_len.GVN.panic-unwind.diff More GVN for PtrMetadata 2024-06-20 22:16:59 -07:00
gvn.borrowed.GVN.panic-abort.diff Use newly exposed Freeze trait. 2024-04-20 19:25:20 +00:00
gvn.borrowed.GVN.panic-unwind.diff Use newly exposed Freeze trait. 2024-04-20 19:25:20 +00:00
gvn.cast.GVN.panic-abort.diff Evaluate computed values to constants. 2023-10-25 06:46:47 +00:00
gvn.cast.GVN.panic-unwind.diff Evaluate computed values to constants. 2023-10-25 06:46:47 +00:00
gvn.cast_pointer_eq.GVN.panic-abort.diff GVN away PtrToPtr before comparisons 2024-06-22 20:27:08 -07:00
gvn.cast_pointer_eq.GVN.panic-unwind.diff GVN away PtrToPtr before comparisons 2024-06-22 20:27:08 -07:00
gvn.cast_pointer_then_transmute.GVN.panic-abort.diff GVN away PtrToPtr-then-Transmute when possible 2024-06-22 20:34:09 -07:00
gvn.cast_pointer_then_transmute.GVN.panic-unwind.diff GVN away PtrToPtr-then-Transmute when possible 2024-06-22 20:34:09 -07:00
gvn.casts_before_aggregate_raw_ptr.GVN.panic-abort.diff Enable GVN for `AggregateKind::RawPtr` & `UnOp::PtrMetadata` 2024-06-06 00:25:58 -07:00
gvn.casts_before_aggregate_raw_ptr.GVN.panic-unwind.diff Enable GVN for `AggregateKind::RawPtr` & `UnOp::PtrMetadata` 2024-06-06 00:25:58 -07:00
gvn.comparison.GVN.panic-abort.diff Simplify binary ops. 2024-01-16 22:20:53 +00:00
gvn.comparison.GVN.panic-unwind.diff Simplify binary ops. 2024-01-16 22:20:53 +00:00
gvn.constant_index_overflow.GVN.panic-abort.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
gvn.constant_index_overflow.GVN.panic-unwind.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
gvn.dereferences.GVN.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
gvn.dereferences.GVN.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
gvn.duplicate_slice.GVN.panic-abort.diff Disambiguate non-deterministic constants. 2023-10-25 06:46:48 +00:00
gvn.duplicate_slice.GVN.panic-unwind.diff Disambiguate non-deterministic constants. 2023-10-25 06:46:48 +00:00
gvn.fn_pointers.GVN.panic-abort.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
gvn.fn_pointers.GVN.panic-unwind.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
gvn.generic_cast_metadata.GVN.panic-abort.diff [GVN] Add tests for generic pointees with PtrMetadata 2024-06-20 22:16:59 -07:00
gvn.generic_cast_metadata.GVN.panic-unwind.diff [GVN] Add tests for generic pointees with PtrMetadata 2024-06-20 22:16:59 -07:00
gvn.indirect_static.GVN.panic-abort.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
gvn.indirect_static.GVN.panic-unwind.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
gvn.manual_slice_mut_len.GVN.panic-abort.diff More GVN for PtrMetadata 2024-06-20 22:16:59 -07:00
gvn.manual_slice_mut_len.GVN.panic-unwind.diff More GVN for PtrMetadata 2024-06-20 22:16:59 -07:00
gvn.meta_of_ref_to_slice.GVN.panic-abort.diff Enable GVN for `AggregateKind::RawPtr` & `UnOp::PtrMetadata` 2024-06-06 00:25:58 -07:00
gvn.meta_of_ref_to_slice.GVN.panic-unwind.diff Enable GVN for `AggregateKind::RawPtr` & `UnOp::PtrMetadata` 2024-06-06 00:25:58 -07:00
gvn.multiple_branches.GVN.panic-abort.diff Do not remove unused definitions inside GVN. 2023-10-25 06:46:45 +00:00
gvn.multiple_branches.GVN.panic-unwind.diff Do not remove unused definitions inside GVN. 2023-10-25 06:46:45 +00:00
gvn.non_freeze.GVN.panic-abort.diff Add tests. 2024-04-20 19:10:23 +00:00
gvn.non_freeze.GVN.panic-unwind.diff Add tests. 2024-04-20 19:10:23 +00:00
gvn.references.GVN.panic-abort.diff Simplify aggregate projections. 2023-10-25 06:46:47 +00:00
gvn.references.GVN.panic-unwind.diff Simplify aggregate projections. 2023-10-25 06:46:47 +00:00
gvn.remove_casts_must_change_both_sides.GVN.panic-abort.diff Add a GVN test for 127089 that doesn't optimize to a constant 2024-06-30 11:30:54 -07:00
gvn.remove_casts_must_change_both_sides.GVN.panic-unwind.diff Add a GVN test for 127089 that doesn't optimize to a constant 2024-06-30 11:30:54 -07:00
gvn.repeat.GVN.panic-abort.diff FileCheck gvn. 2023-10-25 06:46:48 +00:00
gvn.repeat.GVN.panic-unwind.diff FileCheck gvn. 2023-10-25 06:46:48 +00:00
gvn.repeated_index.GVN.panic-abort.diff Simplify Len. 2024-01-16 22:20:54 +00:00
gvn.repeated_index.GVN.panic-unwind.diff Simplify Len. 2024-01-16 22:20:54 +00:00
gvn.rs Rollup merge of #126502 - cuviper:dump-mir-exclude-alloc-bytes, r=estebank 2024-07-12 13:47:05 -07:00
gvn.slice_const_length.GVN.panic-abort.diff Enable GVN for `AggregateKind::RawPtr` & `UnOp::PtrMetadata` 2024-06-06 00:25:58 -07:00
gvn.slice_const_length.GVN.panic-unwind.diff Enable GVN for `AggregateKind::RawPtr` & `UnOp::PtrMetadata` 2024-06-06 00:25:58 -07:00
gvn.slice_from_raw_parts_as_ptr.GVN.panic-abort.diff Enable GVN for `AggregateKind::RawPtr` & `UnOp::PtrMetadata` 2024-06-06 00:25:58 -07:00
gvn.slice_from_raw_parts_as_ptr.GVN.panic-unwind.diff Enable GVN for `AggregateKind::RawPtr` & `UnOp::PtrMetadata` 2024-06-06 00:25:58 -07:00
gvn.slices.GVN.panic-abort.diff Dereference immutable borrows in GVN. 2024-04-20 19:22:13 +00:00
gvn.slices.GVN.panic-unwind.diff Dereference immutable borrows in GVN. 2024-04-20 19:22:13 +00:00
gvn.subexpression_elimination.GVN.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
gvn.subexpression_elimination.GVN.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
gvn.unary.GVN.panic-abort.diff Simplify unary operations. 2024-01-16 22:20:54 +00:00
gvn.unary.GVN.panic-unwind.diff Simplify unary operations. 2024-01-16 22:20:54 +00:00
gvn.wide_ptr_integer.GVN.panic-abort.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
gvn.wide_ptr_integer.GVN.panic-unwind.diff Bless mir-opt for excluded alloc bytes 2024-06-26 15:30:47 -07:00
gvn.wide_ptr_provenance.GVN.panic-abort.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
gvn.wide_ptr_provenance.GVN.panic-unwind.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
gvn.wide_ptr_same_provenance.GVN.panic-abort.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
gvn.wide_ptr_same_provenance.GVN.panic-unwind.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
gvn.wrap_unwrap.GVN.panic-abort.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
gvn.wrap_unwrap.GVN.panic-unwind.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
gvn_copy_moves.fn0.GVN.diff Also turn moves into copies even if through projections. 2024-02-05 23:31:54 +00:00
gvn_copy_moves.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
gvn_ptr_eq_with_constant.main.GVN.diff Only update `Eq` operands in GVN if you can update both sides 2024-06-28 19:05:01 -07:00
gvn_ptr_eq_with_constant.rs Only update `Eq` operands in GVN if you can update both sides 2024-06-28 19:05:01 -07:00
gvn_uninhabited.f.GVN.panic-abort.diff Dereference immutable borrows in GVN. 2024-04-20 19:22:13 +00:00
gvn_uninhabited.f.GVN.panic-unwind.diff Dereference immutable borrows in GVN. 2024-04-20 19:22:13 +00:00
gvn_uninhabited.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
if_condition_int.dont_opt_bool.SimplifyComparisonIntegral.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
if_condition_int.dont_opt_floats.SimplifyComparisonIntegral.diff lower ExprKind::Use, LogicalOp::Or and UnOp::Not 2023-08-30 17:24:10 +08:00
if_condition_int.dont_remove_comparison.SimplifyComparisonIntegral.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
if_condition_int.opt_char.SimplifyComparisonIntegral.diff lower ExprKind::Use, LogicalOp::Or and UnOp::Not 2023-08-30 17:24:10 +08:00
if_condition_int.opt_i8.SimplifyComparisonIntegral.diff lower ExprKind::Use, LogicalOp::Or and UnOp::Not 2023-08-30 17:24:10 +08:00
if_condition_int.opt_multiple_ifs.SimplifyComparisonIntegral.diff lower ExprKind::Use, LogicalOp::Or and UnOp::Not 2023-08-30 17:24:10 +08:00
if_condition_int.opt_negative.SimplifyComparisonIntegral.diff lower ExprKind::Use, LogicalOp::Or and UnOp::Not 2023-08-30 17:24:10 +08:00
if_condition_int.opt_u32.SimplifyComparisonIntegral.diff lower ExprKind::Use, LogicalOp::Or and UnOp::Not 2023-08-30 17:24:10 +08:00
if_condition_int.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
inline_coroutine_body.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
inline_coroutine_body.run2-{closure#0}.Inline.panic-abort.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
inline_coroutine_body.run2-{closure#0}.Inline.panic-unwind.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
inline_generically_if_sized.call.Inline.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
inline_generically_if_sized.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
issue_38669.main.SimplifyCfg-initial.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_38669.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
issue_41110.main.ElaborateDrops.panic-abort.diff make MIR less verbose 2023-08-24 14:26:26 +02:00
issue_41110.main.ElaborateDrops.panic-unwind.diff make MIR less verbose 2023-08-24 14:26:26 +02:00
issue_41110.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
issue_41110.test.ElaborateDrops.panic-abort.diff make MIR less verbose 2023-08-24 14:26:26 +02:00
issue_41110.test.ElaborateDrops.panic-unwind.diff make MIR less verbose 2023-08-24 14:26:26 +02:00
issue_41697.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
issue_41697.{impl#0}-{constant#0}.SimplifyCfg-promote-consts.after.mir rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
issue_41888.main.ElaborateDrops.panic-abort.diff Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
issue_41888.main.ElaborateDrops.panic-unwind.diff Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
issue_41888.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
issue_62289.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
issue_62289.test.ElaborateDrops.before.panic-abort.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
issue_62289.test.ElaborateDrops.before.panic-unwind.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
issue_72181.bar.built.after.mir Return the `otherwise_block` instead of passing it as argument 2024-07-09 22:47:35 +02:00
issue_72181.foo.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_72181.main.built.after.mir Return the `otherwise_block` instead of passing it as argument 2024-07-09 22:47:35 +02:00
issue_72181.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
issue_72181_1.f.built.after.mir Return the `otherwise_block` instead of passing it as argument 2024-07-09 22:47:35 +02:00
issue_72181_1.main.built.after.mir bless mir-opt tests 2024-04-08 15:08:06 +00:00
issue_72181_1.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
issue_76432.rs Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
issue_76432.test.SimplifyComparisonIntegral.panic-abort.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
issue_76432.test.SimplifyComparisonIntegral.panic-unwind.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
issue_78192.f.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_78192.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
issue_91633.bar.built.after.mir Return the `otherwise_block` instead of passing it as argument 2024-07-09 22:47:35 +02:00
issue_91633.foo.built.after.mir make MIR less verbose 2023-08-24 14:26:26 +02:00
issue_91633.fun.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_91633.hey.built.after.mir Return the `otherwise_block` instead of passing it as argument 2024-07-09 22:47:35 +02:00
issue_91633.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
issue_99325.main.built.after.32bit.mir Return the `otherwise_block` instead of passing it as argument 2024-07-09 22:47:35 +02:00
issue_99325.main.built.after.64bit.mir Return the `otherwise_block` instead of passing it as argument 2024-07-09 22:47:35 +02:00
issue_99325.rs Split part of `adt_const_params` into `unsized_const_params` 2024-07-17 11:01:29 +01:00
issue_101973.inner.GVN.panic-abort.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
issue_101973.inner.GVN.panic-unwind.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
issue_101973.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
issue_104451_unwindable_intrinsics.main.AbortUnwindingCalls.after.panic-abort.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
issue_104451_unwindable_intrinsics.main.AbortUnwindingCalls.after.panic-unwind.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
issue_104451_unwindable_intrinsics.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
issue_120925_unsafefncast.rs Add test. 2024-02-13 17:21:53 +00:00
jump_threading.aggregate.JumpThreading.panic-abort.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
jump_threading.aggregate.JumpThreading.panic-unwind.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
jump_threading.aggregate_copy.JumpThreading.panic-abort.diff Propagate places through assignments. 2024-07-13 12:02:10 +00:00
jump_threading.aggregate_copy.JumpThreading.panic-unwind.diff Propagate places through assignments. 2024-07-13 12:02:10 +00:00
jump_threading.assume.JumpThreading.panic-abort.diff Add test for jump-threading assume. 2024-01-23 00:00:22 +00:00
jump_threading.assume.JumpThreading.panic-unwind.diff Add test for jump-threading assume. 2024-01-23 00:00:22 +00:00
jump_threading.custom_discr.JumpThreading.panic-abort.diff Implement JumpThreading pass. 2023-10-21 06:58:38 +00:00
jump_threading.custom_discr.JumpThreading.panic-unwind.diff Implement JumpThreading pass. 2023-10-21 06:58:38 +00:00
jump_threading.dfa.JumpThreading.panic-abort.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
jump_threading.dfa.JumpThreading.panic-unwind.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
jump_threading.disappearing_bb.JumpThreading.panic-abort.diff FileCheck annotations. 2023-10-21 07:08:53 +00:00
jump_threading.disappearing_bb.JumpThreading.panic-unwind.diff FileCheck annotations. 2023-10-21 07:08:53 +00:00
jump_threading.duplicate_chain.JumpThreading.panic-abort.diff Implement JumpThreading pass. 2023-10-21 06:58:38 +00:00
jump_threading.duplicate_chain.JumpThreading.panic-unwind.diff Implement JumpThreading pass. 2023-10-21 06:58:38 +00:00
jump_threading.identity.JumpThreading.panic-abort.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
jump_threading.identity.JumpThreading.panic-unwind.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
jump_threading.multiple_match.JumpThreading.panic-abort.diff Implement JumpThreading pass. 2023-10-21 06:58:38 +00:00
jump_threading.multiple_match.JumpThreading.panic-unwind.diff Implement JumpThreading pass. 2023-10-21 06:58:38 +00:00
jump_threading.mutable_ref.JumpThreading.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
jump_threading.mutable_ref.JumpThreading.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
jump_threading.mutate_discriminant.JumpThreading.panic-abort.diff Implement JumpThreading pass. 2023-10-21 06:58:38 +00:00
jump_threading.mutate_discriminant.JumpThreading.panic-unwind.diff Implement JumpThreading pass. 2023-10-21 06:58:38 +00:00
jump_threading.renumbered_bb.JumpThreading.panic-abort.diff Handle more terminators. 2023-10-21 07:01:24 +00:00
jump_threading.renumbered_bb.JumpThreading.panic-unwind.diff Handle more terminators. 2023-10-21 07:01:24 +00:00
jump_threading.rs Propagate places through assignments. 2024-07-13 12:02:10 +00:00
jump_threading.too_complex.JumpThreading.panic-abort.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
jump_threading.too_complex.JumpThreading.panic-unwind.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
loop_test.main.SimplifyCfg-promote-consts.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
loop_test.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
lower_array_len.array_bound.GVN.panic-abort.diff Add a `pointee_metadata_ty_or_projection` helper 2024-06-22 20:27:08 -07:00
lower_array_len.array_bound.GVN.panic-unwind.diff Add a `pointee_metadata_ty_or_projection` helper 2024-06-22 20:27:08 -07:00
lower_array_len.array_bound_mut.GVN.panic-abort.diff Add a `pointee_metadata_ty_or_projection` helper 2024-06-22 20:27:08 -07:00
lower_array_len.array_bound_mut.GVN.panic-unwind.diff Add a `pointee_metadata_ty_or_projection` helper 2024-06-22 20:27:08 -07:00
lower_array_len.array_len.GVN.panic-abort.diff Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
lower_array_len.array_len.GVN.panic-unwind.diff Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
lower_array_len.array_len_by_value.GVN.panic-abort.diff Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
lower_array_len.array_len_by_value.GVN.panic-unwind.diff Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
lower_array_len.array_len_raw.GVN.panic-abort.diff Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
lower_array_len.array_len_raw.GVN.panic-unwind.diff Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
lower_array_len.array_len_reborrow.GVN.panic-abort.diff Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
lower_array_len.array_len_reborrow.GVN.panic-unwind.diff Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
lower_array_len.rs Add a `pointee_metadata_ty_or_projection` helper 2024-06-22 20:27:08 -07:00
lower_intrinsics.align_of.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.align_of.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.assume.LowerIntrinsics.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.assume.LowerIntrinsics.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.discriminant.LowerIntrinsics.panic-abort.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
lower_intrinsics.discriminant.LowerIntrinsics.panic-unwind.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
lower_intrinsics.f_copy_nonoverlapping.LowerIntrinsics.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.f_copy_nonoverlapping.LowerIntrinsics.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.forget.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.forget.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.get_metadata.LowerIntrinsics.panic-abort.diff Add an intrinsic for `ptr::metadata` 2024-05-28 09:28:51 -07:00
lower_intrinsics.get_metadata.LowerIntrinsics.panic-unwind.diff Add an intrinsic for `ptr::metadata` 2024-05-28 09:28:51 -07:00
lower_intrinsics.make_pointers.LowerIntrinsics.panic-abort.diff Add an intrinsic that lowers to AggregateKind::RawPtr 2024-04-21 11:08:37 -07:00
lower_intrinsics.make_pointers.LowerIntrinsics.panic-unwind.diff Add an intrinsic that lowers to AggregateKind::RawPtr 2024-04-21 11:08:37 -07:00
lower_intrinsics.non_const.LowerIntrinsics.panic-abort.diff Fix tests after intrinsic Abi change 2024-07-04 16:12:52 -07:00
lower_intrinsics.non_const.LowerIntrinsics.panic-unwind.diff Fix tests after intrinsic Abi change 2024-07-04 16:12:52 -07:00
lower_intrinsics.ptr_offset.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.ptr_offset.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.read_via_copy_primitive.LowerIntrinsics.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.read_via_copy_primitive.LowerIntrinsics.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.read_via_copy_uninhabited.LowerIntrinsics.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.read_via_copy_uninhabited.LowerIntrinsics.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.rs Add an intrinsic for `ptr::metadata` 2024-05-28 09:28:51 -07:00
lower_intrinsics.size_of.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.size_of.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.three_way_compare_char.LowerIntrinsics.panic-abort.diff Add+Use `mir::BinOp::Cmp` 2024-03-23 23:23:41 -07:00
lower_intrinsics.three_way_compare_char.LowerIntrinsics.panic-unwind.diff Add+Use `mir::BinOp::Cmp` 2024-03-23 23:23:41 -07:00
lower_intrinsics.three_way_compare_signed.LowerIntrinsics.panic-abort.diff Add+Use `mir::BinOp::Cmp` 2024-03-23 23:23:41 -07:00
lower_intrinsics.three_way_compare_signed.LowerIntrinsics.panic-unwind.diff Add+Use `mir::BinOp::Cmp` 2024-03-23 23:23:41 -07:00
lower_intrinsics.three_way_compare_unsigned.LowerIntrinsics.panic-abort.diff Add+Use `mir::BinOp::Cmp` 2024-03-23 23:23:41 -07:00
lower_intrinsics.three_way_compare_unsigned.LowerIntrinsics.panic-unwind.diff Add+Use `mir::BinOp::Cmp` 2024-03-23 23:23:41 -07:00
lower_intrinsics.transmute_inhabited.LowerIntrinsics.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.transmute_inhabited.LowerIntrinsics.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.transmute_ref_dst.LowerIntrinsics.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.transmute_ref_dst.LowerIntrinsics.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.transmute_to_box_uninhabited.LowerIntrinsics.panic-abort.diff Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
lower_intrinsics.transmute_to_box_uninhabited.LowerIntrinsics.panic-unwind.diff Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
lower_intrinsics.transmute_to_mut_uninhabited.LowerIntrinsics.panic-abort.diff Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
lower_intrinsics.transmute_to_mut_uninhabited.LowerIntrinsics.panic-unwind.diff Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
lower_intrinsics.transmute_to_ref_uninhabited.LowerIntrinsics.panic-abort.diff Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
lower_intrinsics.transmute_to_ref_uninhabited.LowerIntrinsics.panic-unwind.diff Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
lower_intrinsics.transmute_uninhabited.LowerIntrinsics.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.transmute_uninhabited.LowerIntrinsics.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.unchecked.LowerIntrinsics.panic-abort.diff De-LLVM the unchecked shifts [MCP#693] 2024-03-30 03:32:11 -07:00
lower_intrinsics.unchecked.LowerIntrinsics.panic-unwind.diff De-LLVM the unchecked shifts [MCP#693] 2024-03-30 03:32:11 -07:00
lower_intrinsics.unreachable.LowerIntrinsics.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.unreachable.LowerIntrinsics.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.with_overflow.LowerIntrinsics.panic-abort.diff Remove `Rvalue::CheckedBinaryOp` 2024-05-17 20:33:02 -07:00
lower_intrinsics.with_overflow.LowerIntrinsics.panic-unwind.diff Remove `Rvalue::CheckedBinaryOp` 2024-05-17 20:33:02 -07:00
lower_intrinsics.wrapping.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.wrapping.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.write_via_move_string.LowerIntrinsics.panic-abort.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_intrinsics.write_via_move_string.LowerIntrinsics.panic-unwind.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lower_slice_len.bound.LowerSliceLenCalls.panic-abort.diff Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
lower_slice_len.bound.LowerSliceLenCalls.panic-unwind.diff Replace `NormalizeArrayLen` with `GVN` 2024-06-20 22:16:59 -07:00
lower_slice_len.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
match_arm_scopes.complicated_match.panic-abort.SimplifyCfg-initial.after-ElaborateDrops.after.diff Don't try to save an extra block 2024-07-09 22:47:35 +02:00
match_arm_scopes.complicated_match.panic-unwind.SimplifyCfg-initial.after-ElaborateDrops.after.diff Don't try to save an extra block 2024-07-09 22:47:35 +02:00
match_arm_scopes.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
matches_reduce_branches.bar.MatchBranchSimplification.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
matches_reduce_branches.foo.MatchBranchSimplification.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
matches_reduce_branches.match_i8_i16.MatchBranchSimplification.diff Disable SimplifyToExp in MatchBranchSimplification 2024-04-20 05:37:53 +08:00
matches_reduce_branches.match_i8_i16_failed.MatchBranchSimplification.diff Update matches_reduce_branches.rs 2024-04-08 18:54:33 +08:00
matches_reduce_branches.match_i16_i8.MatchBranchSimplification.diff Disable SimplifyToExp in MatchBranchSimplification 2024-04-20 05:37:53 +08:00
matches_reduce_branches.match_i128_u128.MatchBranchSimplification.diff Disable SimplifyToExp in MatchBranchSimplification 2024-04-20 05:37:53 +08:00
matches_reduce_branches.match_nested_if.MatchBranchSimplification.diff lower ExprKind::Use, LogicalOp::Or and UnOp::Not 2023-08-30 17:24:10 +08:00
matches_reduce_branches.match_u8_i16.MatchBranchSimplification.diff Disable SimplifyToExp in MatchBranchSimplification 2024-04-20 05:37:53 +08:00
matches_reduce_branches.match_u8_i16_2.MatchBranchSimplification.diff Update matches_reduce_branches.rs 2024-04-08 18:54:33 +08:00
matches_reduce_branches.match_u8_i16_failed.MatchBranchSimplification.diff Update matches_reduce_branches.rs 2024-04-08 18:54:33 +08:00
matches_reduce_branches.match_u8_i16_fallback.MatchBranchSimplification.diff Update matches_reduce_branches.rs 2024-04-08 18:54:33 +08:00
matches_reduce_branches.match_u8_u16.MatchBranchSimplification.diff Disable SimplifyToExp in MatchBranchSimplification 2024-04-20 05:37:53 +08:00
matches_reduce_branches.match_u8_u16_2.MatchBranchSimplification.diff Update matches_reduce_branches.rs 2024-04-08 18:54:33 +08:00
matches_reduce_branches.rs Reformat `mir!` macro invocations to use braces. 2024-06-03 13:24:44 +10:00
matches_u8.exhaustive_match.MatchBranchSimplification.diff Disable SimplifyToExp in MatchBranchSimplification 2024-04-20 05:37:53 +08:00
matches_u8.exhaustive_match_i8.MatchBranchSimplification.diff Disable SimplifyToExp in MatchBranchSimplification 2024-04-20 05:37:53 +08:00
matches_u8.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
multiple_return_terminators.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
multiple_return_terminators.test.MultipleReturnTerminators.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
no_drop_for_inactive_variant.rs simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
no_drop_for_inactive_variant.unwrap.SimplifyCfg-pre-optimizations.after.panic-abort.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
no_drop_for_inactive_variant.unwrap.SimplifyCfg-pre-optimizations.after.panic-unwind.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
no_spurious_drop_after_call.main.ElaborateDrops.before.panic-abort.mir make MIR less verbose 2023-08-24 14:26:26 +02:00
no_spurious_drop_after_call.main.ElaborateDrops.before.panic-unwind.mir make MIR less verbose 2023-08-24 14:26:26 +02:00
no_spurious_drop_after_call.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
nrvo_miscompile_111005.rs Reformat `mir!` macro invocations to use braces. 2024-06-03 13:24:44 +10:00
nrvo_miscompile_111005.wrong.RenameReturnPlace.diff Revert "Auto merge of #115105 - cjgillot:dest-prop-default, r=oli-obk" 2024-05-31 00:22:40 +00:00
nrvo_simple.nrvo.RenameReturnPlace.panic-abort.diff Revert "Auto merge of #115105 - cjgillot:dest-prop-default, r=oli-obk" 2024-05-31 00:22:40 +00:00
nrvo_simple.nrvo.RenameReturnPlace.panic-unwind.diff Revert "Auto merge of #115105 - cjgillot:dest-prop-default, r=oli-obk" 2024-05-31 00:22:40 +00:00
nrvo_simple.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
or_pattern.rs Add tests 2024-06-16 18:23:48 +02:00
or_pattern.shortcut_second_or.SimplifyCfg-initial.after.mir Return the `otherwise_block` instead of passing it as argument 2024-07-09 22:47:35 +02:00
or_pattern.single_switchint.SimplifyCfg-initial.after.mir Expand or-candidates mixed with candidates above 2024-06-16 18:39:50 +02:00
packed_struct_drop_aligned.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
packed_struct_drop_aligned.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
packed_struct_drop_aligned.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
reference_prop.debuginfo.ReferencePropagation.diff MIR printing: print the path of uneval'd const; refer to promoteds in a consistent way 2024-03-10 14:59:41 +01:00
reference_prop.dominate_storage.ReferencePropagation.diff Bless tests 2023-06-23 18:36:25 +01:00
reference_prop.maybe_dead.ReferencePropagation.diff Bless tests 2023-06-23 18:36:25 +01:00
reference_prop.multiple_storage.ReferencePropagation.diff Bless tests 2023-06-23 18:36:25 +01:00
reference_prop.mut_raw_then_mut_shr.ReferencePropagation.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
reference_prop.read_through_raw.ReferencePropagation.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
reference_prop.reference_propagation.ReferencePropagation.diff GVN borrowed locals too. 2024-04-20 19:19:06 +00:00
reference_prop.reference_propagation_const_ptr.ReferencePropagation.diff GVN borrowed locals too. 2024-04-20 19:19:06 +00:00
reference_prop.reference_propagation_mut.ReferencePropagation.diff Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
reference_prop.reference_propagation_mut_ptr.ReferencePropagation.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
reference_prop.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
reference_prop.unique_with_copies.ReferencePropagation.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
remove_fake_borrows.match_guard.CleanupPostBorrowck.panic-abort.diff Add a non-shallow fake borrow 2024-04-20 16:01:35 +02:00
remove_fake_borrows.match_guard.CleanupPostBorrowck.panic-unwind.diff Add a non-shallow fake borrow 2024-04-20 16:01:35 +02:00
remove_fake_borrows.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
remove_never_const.no_codegen.PreCodegen.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_never_const.rs Run Miri and mir-opt tests without a target linker 2024-01-06 14:17:33 -05:00
remove_storage_markers.main.RemoveStorageMarkers.panic-abort.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
remove_storage_markers.main.RemoveStorageMarkers.panic-unwind.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
remove_storage_markers.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
remove_unneeded_drops.cannot_opt_generic.RemoveUnneededDrops.panic-abort.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
remove_unneeded_drops.cannot_opt_generic.RemoveUnneededDrops.panic-unwind.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
remove_unneeded_drops.dont_opt.RemoveUnneededDrops.panic-abort.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
remove_unneeded_drops.dont_opt.RemoveUnneededDrops.panic-unwind.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
remove_unneeded_drops.opt.RemoveUnneededDrops.panic-abort.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
remove_unneeded_drops.opt.RemoveUnneededDrops.panic-unwind.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
remove_unneeded_drops.opt_generic_copy.RemoveUnneededDrops.panic-abort.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
remove_unneeded_drops.opt_generic_copy.RemoveUnneededDrops.panic-unwind.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
remove_unneeded_drops.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
remove_zsts.get_union.PreCodegen.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_zsts.get_union.RemoveZsts.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_zsts.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
retag.array_casts.SimplifyCfg-pre-optimizations.after.panic-abort.mir Ban `ArrayToPointer` and `MutToConstPointer` from runtime MIR 2024-06-19 10:44:01 -07:00
retag.array_casts.SimplifyCfg-pre-optimizations.after.panic-unwind.mir Ban `ArrayToPointer` and `MutToConstPointer` from runtime MIR 2024-06-19 10:44:01 -07:00
retag.box_to_raw_mut.SimplifyCfg-pre-optimizations.after.panic-abort.mir add_retag: ensure box-to-raw-ptr casts are preserved for Miri 2024-03-18 10:32:25 +01:00
retag.box_to_raw_mut.SimplifyCfg-pre-optimizations.after.panic-unwind.mir add_retag: ensure box-to-raw-ptr casts are preserved for Miri 2024-03-18 10:32:25 +01:00
retag.core.ptr-drop_in_place.Test.SimplifyCfg-make_shim.after.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
retag.core.ptr-drop_in_place.Test.SimplifyCfg-make_shim.after.panic-unwind.mir Bless tests 2023-06-23 18:36:25 +01:00
retag.main-{closure#0}.SimplifyCfg-pre-optimizations.after.panic-abort.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
retag.main-{closure#0}.SimplifyCfg-pre-optimizations.after.panic-unwind.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
retag.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir Rename Unsafe to Safety 2024-05-17 18:33:37 -03:00
retag.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir Rename Unsafe to Safety 2024-05-17 18:33:37 -03:00
retag.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
retag.{impl#0}-foo.SimplifyCfg-pre-optimizations.after.panic-abort.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
retag.{impl#0}-foo.SimplifyCfg-pre-optimizations.after.panic-unwind.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
retag.{impl#0}-foo_shr.SimplifyCfg-pre-optimizations.after.panic-abort.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
retag.{impl#0}-foo_shr.SimplifyCfg-pre-optimizations.after.panic-unwind.mir simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
return_an_array.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
separate_const_switch.identity.JumpThreading.diff At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
separate_const_switch.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
separate_const_switch.too_complex.JumpThreading.diff Update MIR with `MirPatch` in `UninhabitedEnumBranching` 2024-03-08 08:15:14 +08:00
set_no_discriminant.f.JumpThreading.diff Skip threading over no-op SetDiscriminant. 2024-01-07 00:28:20 +00:00
set_no_discriminant.generic.JumpThreading.diff Skip threading over no-op SetDiscriminant. 2024-01-07 00:28:20 +00:00
set_no_discriminant.rs Reformat `mir!` macro invocations to use braces. 2024-06-03 13:24:44 +10:00
simplify_arm.id_try.SimplifyArmIdentity.diff Move /src/test to /tests 2023-01-11 09:32:08 +00:00
simplify_arm.id_try.SimplifyBranchSame.diff Move /src/test to /tests 2023-01-11 09:32:08 +00:00
simplify_arm.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
simplify_arm_identity.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
simplify_cfg.main.SimplifyCfg-initial.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_cfg.main.SimplifyCfg-post-analysis.diff simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
simplify_cfg.rs simplify_cfg: rename some passes so that they make more sense 2024-03-17 19:59:15 +01:00
simplify_dead_blocks.assert_nonzero_nonmax.SimplifyCfg-after-unreachable-enum-branching.diff Update the test case for `SimplifyCfg-after-unreachable-enum-branching` 2024-03-13 22:35:11 +08:00
simplify_dead_blocks.rs Reformat `mir!` macro invocations to use braces. 2024-06-03 13:24:44 +10:00
simplify_if.main.SimplifyConstCondition-after-const-prop.panic-abort.diff Reorder early post-inlining passes. 2024-01-07 01:42:57 +00:00
simplify_if.main.SimplifyConstCondition-after-const-prop.panic-unwind.diff Reorder early post-inlining passes. 2024-01-07 01:42:57 +00:00
simplify_if.rs Enable `simplify` MIR-opt test 2024-01-28 13:50:20 -06:00
simplify_locals.c.SimplifyLocals-before-const-prop.diff Rename `adjustment::PointerCast` and variants using it to `PointerCoercion` 2023-07-07 18:17:16 +02:00
simplify_locals.d1.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals.d2.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals.expose_provenance.SimplifyLocals-before-const-prop.diff rename `expose_addr` to `expose_provenance` 2024-04-03 16:00:38 +02:00
simplify_locals.r.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
simplify_locals.t1.SimplifyLocals-before-const-prop.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
simplify_locals.t2.SimplifyLocals-before-const-prop.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
simplify_locals.t3.SimplifyLocals-before-const-prop.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
simplify_locals.t4.SimplifyLocals-before-const-prop.diff Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
simplify_locals_fixedpoint.foo.SimplifyLocals-final.panic-abort.diff Get all variants to eliminate the default branching if we cannot get the layout of type 2024-03-07 22:58:51 +08:00
simplify_locals_fixedpoint.foo.SimplifyLocals-final.panic-unwind.diff Get all variants to eliminate the default branching if we cannot get the layout of type 2024-03-07 22:58:51 +08:00
simplify_locals_fixedpoint.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
simplify_locals_removes_unused_consts.main.SimplifyLocals-before-const-prop.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals_removes_unused_consts.main.SimplifyLocals-before-const-prop.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
simplify_locals_removes_unused_consts.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
simplify_locals_removes_unused_discriminant_reads.map.SimplifyLocals-before-const-prop.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
simplify_locals_removes_unused_discriminant_reads.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
simplify_match.main.GVN.panic-abort.diff Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
simplify_match.main.GVN.panic-unwind.diff Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
simplify_match.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
simplify_try_if_let.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
simplify_try_if_let.{impl#0}-append.SimplifyArmIdentity.diff Move /src/test to /tests 2023-01-11 09:32:08 +00:00
single_use_consts.assign_const_to_return.SingleUseConsts.panic-abort.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.assign_const_to_return.SingleUseConsts.panic-unwind.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.if_const.SingleUseConsts.panic-abort.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.if_const.SingleUseConsts.panic-unwind.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.if_const_debug.SingleUseConsts.panic-abort.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.if_const_debug.SingleUseConsts.panic-unwind.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.keep_parameter.SingleUseConsts.panic-abort.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.keep_parameter.SingleUseConsts.panic-unwind.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.match_const.SingleUseConsts.panic-abort.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.match_const.SingleUseConsts.panic-unwind.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.match_const_debug.SingleUseConsts.panic-abort.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.match_const_debug.SingleUseConsts.panic-unwind.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.never_used_debug.SingleUseConsts.panic-abort.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.never_used_debug.SingleUseConsts.panic-unwind.diff Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
single_use_consts.rs Add `SingleUseConsts` mir-opt pass 2024-06-10 00:06:02 -07:00
slice_drop_shim.core.ptr-drop_in_place.[String].AddMovesForPackedDrops.before.mir make MIR less verbose 2023-08-24 14:26:26 +02:00
slice_drop_shim.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
ssa_unreachable_116212.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
storage_ranges.main.nll.0.mir Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
storage_ranges.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
switch_to_self.rs Reformat `mir!` macro invocations to use braces. 2024-06-03 13:24:44 +10:00
switch_to_self.test.MatchBranchSimplification.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
tail_call_drops.f.ElaborateDrops.panic-abort.diff Properly handle drops for tail calls 2024-07-07 17:11:05 +02:00
tail_call_drops.f.ElaborateDrops.panic-unwind.diff Properly handle drops for tail calls 2024-07-07 17:11:05 +02:00
tail_call_drops.f.built.after.panic-abort.mir Properly handle drops for tail calls 2024-07-07 17:11:05 +02:00
tail_call_drops.f.built.after.panic-unwind.mir Properly handle drops for tail calls 2024-07-07 17:11:05 +02:00
tail_call_drops.f_with_arg.ElaborateDrops.panic-abort.diff Properly handle drops for tail calls 2024-07-07 17:11:05 +02:00
tail_call_drops.f_with_arg.ElaborateDrops.panic-unwind.diff Properly handle drops for tail calls 2024-07-07 17:11:05 +02:00
tail_call_drops.f_with_arg.built.after.panic-abort.mir Properly handle drops for tail calls 2024-07-07 17:11:05 +02:00
tail_call_drops.f_with_arg.built.after.panic-unwind.mir Properly handle drops for tail calls 2024-07-07 17:11:05 +02:00
tail_call_drops.rs Properly handle drops for tail calls 2024-07-07 17:11:05 +02:00
tls_access.main.PreCodegen.after.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
tls_access.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
uninhabited_enum.process_never.SimplifyLocals-final.after.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
uninhabited_enum.process_void.SimplifyLocals-final.after.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
uninhabited_enum.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
uninhabited_fallthrough_elimination.eliminate_fallthrough.UnreachableEnumBranching.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
uninhabited_fallthrough_elimination.keep_fallthrough.UnreachableEnumBranching.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
uninhabited_fallthrough_elimination.rs Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable.as_match.UnreachablePropagation.panic-abort.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
unreachable.as_match.UnreachablePropagation.panic-unwind.diff Start blocks eagerly 2024-02-12 17:37:05 +01:00
unreachable.if_let.UnreachablePropagation.panic-abort.diff Only emit `!=` assumptions if the otherwise target is reachable. 2023-10-31 11:44:23 +00:00
unreachable.if_let.UnreachablePropagation.panic-unwind.diff Only emit `!=` assumptions if the otherwise target is reachable. 2023-10-31 11:44:23 +00:00
unreachable.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
unreachable_diverging.main.UnreachablePropagation.panic-abort.diff Replace SwitchInt to unreachable by an assumption. 2023-10-31 11:44:23 +00:00
unreachable_diverging.main.UnreachablePropagation.panic-unwind.diff Replace SwitchInt to unreachable by an assumption. 2023-10-31 11:44:23 +00:00
unreachable_diverging.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
unreachable_enum_branching.byref.UnreachableEnumBranching.panic-abort.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.byref.UnreachableEnumBranching.panic-unwind.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.custom_discriminant.UnreachableEnumBranching.panic-abort.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.custom_discriminant.UnreachableEnumBranching.panic-unwind.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t1.UnreachableEnumBranching.panic-abort.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t1.UnreachableEnumBranching.panic-unwind.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t2.UnreachableEnumBranching.panic-abort.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t2.UnreachableEnumBranching.panic-unwind.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t3.UnreachableEnumBranching.panic-abort.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t3.UnreachableEnumBranching.panic-unwind.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t4.UnreachableEnumBranching.panic-abort.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t4.UnreachableEnumBranching.panic-unwind.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t4_unreachable_default.UnreachableEnumBranching.panic-abort.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t4_unreachable_default.UnreachableEnumBranching.panic-unwind.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t4_unreachable_default_2.UnreachableEnumBranching.panic-abort.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t4_unreachable_default_2.UnreachableEnumBranching.panic-unwind.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t5_unreachable_default.UnreachableEnumBranching.panic-abort.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.otherwise_t5_unreachable_default.UnreachableEnumBranching.panic-unwind.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
unreachable_enum_branching.simple.UnreachableEnumBranching.panic-abort.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unreachable_enum_branching.simple.UnreachableEnumBranching.panic-unwind.diff Rename `UninhabitedEnumBranching` to `UnreachableEnumBranching` 2024-03-09 14:32:27 +08:00
unusual_item_types.E-V-{constant#0}.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
unusual_item_types.Test-X-{constructor#0}.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
unusual_item_types.core.ptr-drop_in_place.Vec_i32_.AddMovesForPackedDrops.before.mir make MIR less verbose 2023-08-24 14:26:26 +02:00
unusual_item_types.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
unusual_item_types.{impl#0}-ASSOCIATED_CONSTANT.built.after.mir rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00

README.md

This folder contains tests for MIR optimizations.

The mir-opt test format emits MIR to extra files that you can automatically update by specifying --bless on the command line (just like ui tests updating .stderr files).

--blessable test format

By default 32 bit and 64 bit targets use the same dump files, which can be problematic in the presence of pointers in constants or other bit width dependent things. In that case you can add

// EMIT_MIR_FOR_EACH_BIT_WIDTH

to your test, causing separate files to be generated for 32bit and 64bit systems.

Testing a particular MIR pass

If you are only testing the behavior of a particular mir-opt pass on some specific input (as is usually the case), you should add

//@ test-mir-pass: PassName

to the top of the file. This makes sure that other passes don't run which means you'll get the input you expected and your test won't break when other code changes. This also lets you test passes that are disabled by default.

Emit a diff of the mir for a specific optimization

This is what you want most often when you want to see how an optimization changes the MIR.

// EMIT_MIR $file_name_of_some_mir_dump.diff

Emit mir after a specific optimization

Use this if you are just interested in the final state after an optimization.

// EMIT_MIR $file_name_of_some_mir_dump.after.mir

Emit mir before a specific optimization

This exists mainly for completeness and is rarely useful.

// EMIT_MIR $file_name_of_some_mir_dump.before.mir

FileCheck directives

The LLVM FileCheck tool is used to verify the contents of output MIR against CHECK directives present in the test file. This works on the runtime MIR, generated by --emit=mir, and not on the output of a individual passes.

Use // skip-filecheck to prevent FileCheck from running.

To check MIR for function foo, start with a // CHECK-LABEL fn foo( directive.

{{regex}} syntax allows to match regex.

[[name:regex]] syntax allows to bind name to a string matching regex, and refer to it as [[name]] in later directives, regex should be written not to match a leading space. Use [[my_local:_.*]] to name a local, and [[my_bb:bb.*]] to name a block.

Documentation for FileCheck is available here: https://www.llvm.org/docs/CommandGuide/FileCheck.html