rust/tests/mir-opt
Jacob Pratt 575405161f
Rollup merge of #134090 - veluca93:stable-tf11, r=oli-obk
Stabilize target_feature_11

# Stabilization report

This is an updated version of https://github.com/rust-lang/rust/pull/116114, which is itself a redo of https://github.com/rust-lang/rust/pull/99767. Most of this commit and report were copied from those PRs. Thanks ```@LeSeulArtichaut``` and ```@calebzulawski!```

## Summary
Allows for safe functions to be marked with `#[target_feature]` attributes.

Functions marked with `#[target_feature]` are generally considered as unsafe functions: they are unsafe to call, cannot *generally* be assigned to safe function pointers, and don't implement the `Fn*` traits.

However, calling them from other `#[target_feature]` functions with a superset of features is safe.

```rust
// Demonstration function
#[target_feature(enable = "avx2")]
fn avx2() {}

fn foo() {
    // Calling `avx2` here is unsafe, as we must ensure
    // that AVX is available first.
    unsafe {
        avx2();
    }
}

#[target_feature(enable = "avx2")]
fn bar() {
    // Calling `avx2` here is safe.
    avx2();
}
```

Moreover, once https://github.com/rust-lang/rust/pull/135504 is merged, they can be converted to safe function pointers in a context in which calling them is safe:

```rust
// Demonstration function
#[target_feature(enable = "avx2")]
fn avx2() {}

fn foo() -> fn() {
    // Converting `avx2` to fn() is a compilation error here.
    avx2
}

#[target_feature(enable = "avx2")]
fn bar() -> fn() {
    // `avx2` coerces to fn() here
    avx2
}
```

See the section "Closures" below for justification of this behaviour.

## Test cases
Tests for this feature can be found in [`tests/ui/target_feature/`](f6cb952dc1/tests/ui/target-feature).

## Edge cases
### Closures
 * [target-feature 1.1: should closures inherit target-feature annotations? #73631](https://github.com/rust-lang/rust/issues/73631)

Closures defined inside functions marked with #[target_feature] inherit the target features of their parent function. They can still be assigned to safe function pointers and implement the appropriate `Fn*` traits.

```rust
#[target_feature(enable = "avx2")]
fn qux() {
    let my_closure = || avx2(); // this call to `avx2` is safe
    let f: fn() = my_closure;
}
```
This means that in order to call a function with #[target_feature], you must guarantee that the target-feature is available while the function, any closures defined inside it, as well as any safe function pointers obtained from target-feature functions inside it, execute.

This is usually ensured because target features are assumed to never disappear, and:
- on any unsafe call to a `#[target_feature]` function, presence of the target feature is guaranteed by the programmer through the safety requirements of the unsafe call.
- on any safe call, this is guaranteed recursively by the caller.

If you work in an environment where target features can be disabled, it is your responsibility to ensure that no code inside a target feature function (including inside a closure) runs after this (until the feature is enabled again).

**Note:** this has an effect on existing code, as nowadays closures do not inherit features from the enclosing function, and thus this strengthens a safety requirement. It was originally proposed in #73631 to solve this by adding a new type of UB: “taking a target feature away from your process after having run code that uses that target feature is UB” .
This was motivated by userspace code already assuming in a few places that CPU features never disappear from a program during execution (see i.e. 2e29bdf908/crates/std_detect/src/detect/arch/x86.rs); however, concerns were raised in the context of the Linux kernel; thus, we propose to relax that requirement to "causing the set of usable features to be reduced is unsafe; when doing so, the programmer is required to ensure that no closures or safe fn pointers that use removed features are still in scope".

* [Fix #[inline(always)] on closures with target feature 1.1 #111836](https://github.com/rust-lang/rust/pull/111836)

Closures accept `#[inline(always)]`, even within functions marked with `#[target_feature]`. Since these attributes conflict, `#[inline(always)]` wins out to maintain compatibility.

### ABI concerns
* [The extern "C" ABI of SIMD vector types depends on target features #116558](https://github.com/rust-lang/rust/issues/116558)

The ABI of some types can change when compiling a function with different target features. This could have introduced unsoundness with target_feature_11, but recent fixes (#133102, #132173) either make those situations invalid or make the ABI no longer dependent on features. Thus, those issues should no longer occur.

### Special functions
The `#[target_feature]` attribute is forbidden from a variety of special functions, such as main, current and future lang items (e.g. `#[start]`, `#[panic_handler]`), safe default trait implementations and safe trait methods.

This was not disallowed at the time of the first stabilization PR for target_features_11, and resulted in the following issues/PRs:
* [`#[target_feature]` is allowed on `main` #108645](https://github.com/rust-lang/rust/issues/108645)
* [`#[target_feature]` is allowed on default implementations #108646](https://github.com/rust-lang/rust/issues/108646)
* [#[target_feature] is allowed on #[panic_handler] with target_feature 1.1 #109411](https://github.com/rust-lang/rust/issues/109411)
* [Prevent using `#[target_feature]` on lang item functions #115910](https://github.com/rust-lang/rust/pull/115910)

## Documentation
 * Reference: [Document the `target_feature_11` feature reference#1181](https://github.com/rust-lang/reference/pull/1181)
---

cc tracking issue https://github.com/rust-lang/rust/issues/69098
cc ```@workingjubilee```
cc ```@RalfJung```
r? ```@rust-lang/lang```
2025-02-12 20:09:56 -05:00
..
building Rollup merge of #135964 - ehuss:cenum_impl_drop_cast, r=Nadrieril 2025-02-05 19:09:33 +08:00
const_prop Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
copy-prop Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
coverage coverage: Defer part of counter-creation until codegen 2025-02-06 21:44:31 +11:00
dataflow-const-prop Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
dead-store-elimination Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
dest-prop Emit error on skip-filecheck test containing filecheck directives 2024-10-19 13:24:07 +00:00
inline Stabilize target_feature_11 2025-01-27 23:44:47 +01:00
instsimplify Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
issues MatchBranchSimplification: Consider empty-unreachable otherwise branch 2024-12-27 10:57:46 +00:00
nll Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
pre-codegen Auto merge of #135701 - calebzulawski:sync-from-portable-simd-2025-01-18, r=workingjubilee 2025-02-10 15:19:51 +00:00
sroa be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
address_of.address_of_reborrow.SimplifyCfg-initial.after.mir bless mir-opt tests 2024-10-17 10:22:55 +02: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 Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
array_index_is_temporary.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
array_index_is_temporary.rs Update mir-opt filechecks 2024-08-18 15:52:23 -07:00
asm_unwind_panic_abort.main.AbortUnwindingCalls.after.mir Add and adapt tests 2024-09-27 14:40:38 +01:00
asm_unwind_panic_abort.rs Add and adapt tests 2024-09-27 14:40:38 +01:00
async_closure_shims.main-{closure#0}-{closure#0}-{closure#0}.built.after.mir Stabilize async closures 2024-12-13 00:04:56 +00:00
async_closure_shims.main-{closure#0}-{closure#0}-{closure#1}.built.after.mir Stabilize async closures 2024-12-13 00:04:56 +00:00
async_closure_shims.main-{closure#0}-{closure#0}.coroutine_closure_by_move.0.mir Stabilize async closures 2024-12-13 00:04:56 +00:00
async_closure_shims.main-{closure#0}-{closure#1}-{closure#0}.built.after.mir Stabilize async closures 2024-12-13 00:04:56 +00:00
async_closure_shims.main-{closure#0}-{closure#1}-{closure#1}.built.after.mir Stabilize async closures 2024-12-13 00:04:56 +00:00
async_closure_shims.main-{closure#0}-{closure#1}.coroutine_closure_by_move.0.mir Stabilize async closures 2024-12-13 00:04:56 +00:00
async_closure_shims.main-{closure#0}-{closure#1}.coroutine_closure_by_ref.0.mir Stabilize async closures 2024-12-13 00:04:56 +00:00
async_closure_shims.rs Stabilize async closures 2024-12-13 00:04:56 +00:00
basic_assignment.main.ElaborateDrops.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
basic_assignment.main.SimplifyCfg-initial.after.mir bless mir-opt tests 2024-10-17 10:22:55 +02: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 Transmute from NonNull to pointer when elaborating a box deref (MCP807) 2025-01-06 18:43:40 -08:00
build_correct_coerce.main.built.after.mir be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
build_correct_coerce.rs Test showing previous behavior 2024-08-13 16:23:18 -04: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
c_unwind_terminate.rs Add and adapt tests 2024-09-27 14:40:38 +01:00
c_unwind_terminate.test.AbortUnwindingCalls.after.mir Add and adapt tests 2024-09-27 14:40:38 +01:00
const_allocation.main.GVN.after.32bit.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
const_allocation.main.GVN.after.64bit.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
const_allocation2.main.GVN.after.64bit.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
const_allocation3.main.GVN.after.64bit.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Fix cycle error only occurring with -Zdump-mir 2025-01-10 08:57:54 +00:00
const_promotion_extern_static.BAR.PromoteTemps.diff Fix cycle error only occurring with -Zdump-mir 2025-01-10 08:57:54 +00: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 be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02: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
dataflow.main.maybe_init.borrowck.dot Add test for -Zdump-mir-dataflow. 2024-12-02 16:19:17 +11:00
dataflow.rs Add test for -Zdump-mir-dataflow. 2024-12-02 16:19:17 +11:00
derefer_complex_case.main.Derefer.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
derefer_complex_case.main.Derefer.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
derefer_terminator_test.main.Derefer.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Reformat use declarations. 2024-07-29 08:26:52 +10:00
dont_reset_cast_kind_without_updating_operand.rs Don't reset cast kind without also updating the operand in simplify_cast 2025-02-06 18:39:35 +00:00
dont_reset_cast_kind_without_updating_operand.test.GVN.panic-abort.diff Don't reset cast kind without also updating the operand in simplify_cast 2025-02-06 18:39:35 +00:00
dont_reset_cast_kind_without_updating_operand.test.GVN.panic-unwind.diff Don't reset cast kind without also updating the operand in simplify_cast 2025-02-06 18:39:35 +00:00
early_otherwise_branch.opt1.EarlyOtherwiseBranch.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
early_otherwise_branch.opt2.EarlyOtherwiseBranch.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
early_otherwise_branch.opt3.EarlyOtherwiseBranch.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
early_otherwise_branch.opt4.EarlyOtherwiseBranch.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
early_otherwise_branch.opt5.EarlyOtherwiseBranch.diff Reapply "Auto merge of #129047 - DianQK:early_otherwise_branch_scalar, r=cjgillot" 2024-12-18 20:43:54 +08:00
early_otherwise_branch.opt5_failed.EarlyOtherwiseBranch.diff Reapply "Auto merge of #129047 - DianQK:early_otherwise_branch_scalar, r=cjgillot" 2024-12-18 20:43:54 +08:00
early_otherwise_branch.opt5_failed_type.EarlyOtherwiseBranch.diff Reapply "Auto merge of #129047 - DianQK:early_otherwise_branch_scalar, r=cjgillot" 2024-12-18 20:43:54 +08:00
early_otherwise_branch.rs Reapply "Auto merge of #129047 - DianQK:early_otherwise_branch_scalar, r=cjgillot" 2024-12-18 20:43:54 +08:00
early_otherwise_branch_3_element_tuple.opt1.EarlyOtherwiseBranch.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
early_otherwise_branch_3_element_tuple.opt2.EarlyOtherwiseBranch.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
early_otherwise_branch_3_element_tuple.rs Update mir-opt filechecks 2024-08-18 15:52:23 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
early_otherwise_branch_noopt.noopt1.EarlyOtherwiseBranch.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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
early_otherwise_branch_unwind.poll.EarlyOtherwiseBranch.diff mir-opt: Do not handle the cleanup BB in the EarlyOtherwiseBranch 2024-12-18 20:43:55 +08:00
early_otherwise_branch_unwind.rs mir-opt: Do not handle the cleanup BB in the EarlyOtherwiseBranch 2024-12-18 20:43:55 +08:00
early_otherwise_branch_unwind.unwind.EarlyOtherwiseBranch.diff mir-opt: Do not handle the cleanup BB in the EarlyOtherwiseBranch 2024-12-18 20:43:55 +08:00
elaborate_box_deref_in_debuginfo.pointee.ElaborateBoxDerefs.diff Stop doing weird index stuff in ElaborateBoxDerefs 2024-08-02 17:45:55 -04:00
elaborate_box_deref_in_debuginfo.rs Stop doing weird index stuff in ElaborateBoxDerefs 2024-08-02 17:45:55 -04:00
enum_opt.cand.EnumSizeOpt.32bit.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
enum_opt.cand.EnumSizeOpt.64bit.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -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 *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
enum_opt.unin.EnumSizeOpt.64bit.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -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 Access members of FormattingOptions directly instead of via getters/setters 2024-12-05 21:48:36 +01:00
funky_arms.float_to_exponential_common.GVN.panic-unwind.diff Access members of FormattingOptions directly instead of via getters/setters 2024-12-05 21:48:36 +01: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.aggregate_struct_then_transmute.GVN.panic-abort.diff Make the aggregate-then-transmute handling more general 2025-01-08 18:46:31 -08:00
gvn.aggregate_struct_then_transmute.GVN.panic-unwind.diff Make the aggregate-then-transmute handling more general 2025-01-08 18:46:31 -08:00
gvn.arithmetic.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.arithmetic.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.arithmetic_checked.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.arithmetic_checked.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.arithmetic_float.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.arithmetic_float.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.array_len.GVN.panic-abort.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
gvn.array_len.GVN.panic-unwind.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
gvn.borrowed.GVN.panic-abort.diff Do not unify dereferences in GVN. 2024-11-25 20:19:08 +01:00
gvn.borrowed.GVN.panic-unwind.diff Do not unify dereferences in GVN. 2024-11-25 20:19:08 +01:00
gvn.cast.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.cast.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.cast_pointer_eq.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.cast_pointer_eq.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.cast_pointer_then_transmute.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.cast_pointer_then_transmute.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.casts_before_aggregate_raw_ptr.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.casts_before_aggregate_raw_ptr.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.comparison.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.comparison.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.constant_index_overflow.GVN.panic-abort.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
gvn.constant_index_overflow.GVN.panic-unwind.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
gvn.dedup_multiple_bounds_checks_lengths.GVN.panic-abort.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
gvn.dedup_multiple_bounds_checks_lengths.GVN.panic-unwind.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
gvn.dereferences.GVN.panic-abort.diff Do not unify dereferences in GVN. 2024-11-25 20:19:08 +01:00
gvn.dereferences.GVN.panic-unwind.diff Do not unify dereferences in GVN. 2024-11-25 20:19:08 +01:00
gvn.duplicate_slice.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.duplicate_slice.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.fn_pointers.GVN.panic-abort.diff comment out the old tests instead of adjusting them 2024-11-25 20:39:45 +01:00
gvn.fn_pointers.GVN.panic-unwind.diff comment out the old tests instead of adjusting them 2024-11-25 20:39:45 +01:00
gvn.generic_cast_metadata.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.generic_cast_metadata.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.indirect_static.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.indirect_static.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.manual_slice_mut_len.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.manual_slice_mut_len.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.meta_of_ref_to_slice.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.meta_of_ref_to_slice.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.multiple_branches.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.multiple_branches.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.non_freeze.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.non_freeze.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.references.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.references.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.remove_casts_must_change_both_sides.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.remove_casts_must_change_both_sides.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.repeat.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.repeat.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.repeated_index.GVN.panic-abort.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
gvn.repeated_index.GVN.panic-unwind.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
gvn.rs Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
gvn.slice_const_length.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.slice_const_length.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.slice_from_raw_parts_as_ptr.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.slice_from_raw_parts_as_ptr.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.slices.GVN.panic-abort.diff Do not unify dereferences in GVN. 2024-11-25 20:19:08 +01:00
gvn.slices.GVN.panic-unwind.diff Do not unify dereferences in GVN. 2024-11-25 20:19:08 +01:00
gvn.subexpression_elimination.GVN.panic-abort.diff Do not unify dereferences in GVN. 2024-11-25 20:19:08 +01:00
gvn.subexpression_elimination.GVN.panic-unwind.diff Do not unify dereferences in GVN. 2024-11-25 20:19:08 +01:00
gvn.transmute_then_cast_pointer.GVN.panic-abort.diff [mir-opt] GVN some more transmute cases 2025-01-08 18:46:30 -08:00
gvn.transmute_then_cast_pointer.GVN.panic-unwind.diff [mir-opt] GVN some more transmute cases 2025-01-08 18:46:30 -08:00
gvn.transmute_then_transmute_again.GVN.panic-abort.diff Refactor the cast-then-cast cases together, and support transmute-then-transmute 2025-01-08 18:46:30 -08:00
gvn.transmute_then_transmute_again.GVN.panic-unwind.diff Refactor the cast-then-cast cases together, and support transmute-then-transmute 2025-01-08 18:46:30 -08:00
gvn.unary.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.unary.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.wide_ptr_integer.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.wide_ptr_integer.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.wide_ptr_provenance.GVN.panic-abort.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
gvn.wide_ptr_provenance.GVN.panic-unwind.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
gvn.wide_ptr_same_provenance.GVN.panic-abort.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
gvn.wide_ptr_same_provenance.GVN.panic-unwind.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
gvn.wrap_unwrap.GVN.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn.wrap_unwrap.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn_clone.rs Mark simplify_aggregate_to_copy mir-opt as unsound 2024-10-31 13:48:06 +08:00
gvn_clone.{impl#0}-clone.GVN.diff Mark simplify_aggregate_to_copy mir-opt as unsound 2024-10-31 13:48:06 +08:00
gvn_copy_aggregate.all_copy.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.all_copy_2.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.all_copy_different_type.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.all_copy_has_changed.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.all_copy_move.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.all_copy_ret_2.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.all_copy_use_changed.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.all_copy_use_changed_2.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.enum_different_variant.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.enum_identical_variant.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.nest_copy.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.remove_storage_dead.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.remove_storage_dead_from_index.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_aggregate.rs Mark simplify_aggregate_to_copy mir-opt as unsound 2024-10-31 13:48:06 +08:00
gvn_copy_aggregate.same_type_different_index.GVN.diff Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
gvn_copy_moves.fn0.GVN.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
gvn_copy_moves.rs Update mir-opt filechecks 2024-08-18 15:52:23 -07:00
gvn_ptr_eq_with_constant.main.GVN.diff Update tests for std::simd subtree sync 2025-01-18 21:44:41 -05:00
gvn_ptr_eq_with_constant.rs move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
gvn_type_id_polymorphic.cursed_is_i32.GVN.diff fix ensure_monomorphic_enough 2025-02-11 01:15:08 +01:00
gvn_type_id_polymorphic.rs fix ensure_monomorphic_enough 2025-02-11 01:15:08 +01:00
gvn_uninhabited.f.GVN.panic-abort.diff Do not unify dereferences in GVN. 2024-11-25 20:19:08 +01:00
gvn_uninhabited.f.GVN.panic-unwind.diff Do not unify dereferences in GVN. 2024-11-25 20:19:08 +01: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
if_condition_int.dont_opt_floats.SimplifyComparisonIntegral.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
if_condition_int.dont_remove_comparison.SimplifyComparisonIntegral.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
if_condition_int.opt_char.SimplifyComparisonIntegral.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
if_condition_int.opt_i8.SimplifyComparisonIntegral.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
if_condition_int.opt_multiple_ifs.SimplifyComparisonIntegral.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
if_condition_int.opt_negative.SimplifyComparisonIntegral.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
if_condition_int.opt_u32.SimplifyComparisonIntegral.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
if_condition_int.rs mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
impossible_predicates.impossible_predicate.ImpossiblePredicates.diff Make MIR cleanup for functions with impossible predicates into a real MIR pass 2025-01-11 20:50:39 +00:00
impossible_predicates.rs Make MIR cleanup for functions with impossible predicates into a real MIR pass 2025-01-11 20:50:39 +00: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
inline_coroutine_body.run2-{closure#0}.Inline.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_41110.main.ElaborateDrops.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_41110.rs rustfmt tests/mir-opt. 2024-06-03 14:17:16 +10:00
issue_41110.test.ElaborateDrops.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_41110.test.ElaborateDrops.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_41888.main.ElaborateDrops.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_41888.rs rustfmt tests/mir-opt. 2024-06-03 14:17:16 +10:00
issue_62289.rs turn rustc_box into an intrinsic 2025-01-03 12:01:31 +01:00
issue_62289.test.ElaborateDrops.before.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_62289.test.ElaborateDrops.before.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_72181.bar.built.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_72181.foo.built.after.mir Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
issue_72181.main.built.after.mir Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00: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-10-17 10:22:55 +02: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 Revert "Auto merge of #134330 - scottmcm:no-more-rvalue-len, r=matthewjasper" 2025-01-18 22:09:34 +00:00
issue_76432.test.SimplifyComparisonIntegral.panic-unwind.diff Revert "Auto merge of #134330 - scottmcm:no-more-rvalue-len, r=matthewjasper" 2025-01-18 22:09:34 +00:00
issue_78192.f.InstSimplify-after-simplifycfg.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_78192.rs Perform instsimplify before inline to eliminate some trivial calls 2024-07-29 18:14:35 +08: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 Represent the raw pointer for a array length check as a new kind of fake borrow 2025-01-28 00:00:33 +00:00
issue_91633.fun.built.after.mir Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00: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 bless mir-opt tests 2024-10-17 10:22:55 +02:00
issue_99325.main.built.after.64bit.mir bless mir-opt tests 2024-10-17 10:22:55 +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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_101973.inner.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.aggregate.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.aggregate_copy.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.aggregate_copy.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.assume.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.assume.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.bitwise_not.JumpThreading.panic-abort.diff Disable jump threading UnOp::Not for non-bool 2024-10-03 15:37:31 -04:00
jump_threading.bitwise_not.JumpThreading.panic-unwind.diff Disable jump threading UnOp::Not for non-bool 2024-10-03 15:37:31 -04:00
jump_threading.custom_discr.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.custom_discr.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.dfa.JumpThreading.panic-abort.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
jump_threading.dfa.JumpThreading.panic-unwind.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
jump_threading.disappearing_bb.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.disappearing_bb.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.duplicate_chain.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.duplicate_chain.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.floats.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.floats.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.identity.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.identity.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.multiple_match.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.multiple_match.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.mutable_ref.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.mutable_ref.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.mutate_discriminant.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.mutate_discriminant.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.renumbered_bb.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.renumbered_bb.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.rs Rollup merge of #130518 - scottmcm:stabilize-controlflow-extra, r=dtolnay 2024-10-04 14:11:34 -07:00
jump_threading.too_complex.JumpThreading.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
jump_threading.too_complex.JumpThreading.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
lower_array_len.array_bound.GVN.panic-unwind.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
lower_array_len.array_bound_mut.GVN.panic-abort.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
lower_array_len.array_bound_mut.GVN.panic-unwind.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
lower_array_len.array_len.GVN.panic-abort.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
lower_array_len.array_len.GVN.panic-unwind.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
lower_array_len.array_len_by_value.GVN.panic-abort.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
lower_array_len.array_len_by_value.GVN.panic-unwind.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
lower_array_len.array_len_raw.GVN.panic-abort.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
lower_array_len.array_len_raw.GVN.panic-unwind.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
lower_array_len.array_len_reborrow.GVN.panic-abort.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
lower_array_len.array_len_reborrow.GVN.panic-unwind.diff be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
lower_array_len.rs Update mir-opt filechecks 2024-08-18 15:52:23 -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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.f_copy_nonoverlapping.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.get_metadata.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.make_pointers.LowerIntrinsics.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.make_pointers.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.non_const.LowerIntrinsics.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.non_const.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.ptr_offset.LowerIntrinsics.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.ptr_offset.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.read_via_copy_primitive.LowerIntrinsics.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.read_via_copy_primitive.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.read_via_copy_uninhabited.LowerIntrinsics.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.read_via_copy_uninhabited.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.rs Update mir-opt filechecks 2024-08-18 15:52:23 -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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.three_way_compare_char.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.three_way_compare_signed.LowerIntrinsics.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.three_way_compare_signed.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.three_way_compare_unsigned.LowerIntrinsics.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.three_way_compare_unsigned.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.transmute_inhabited.LowerIntrinsics.panic-abort.diff document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
lower_intrinsics.transmute_inhabited.LowerIntrinsics.panic-unwind.diff document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
lower_intrinsics.transmute_ref_dst.LowerIntrinsics.panic-abort.diff document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
lower_intrinsics.transmute_ref_dst.LowerIntrinsics.panic-unwind.diff document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
lower_intrinsics.transmute_to_box_uninhabited.LowerIntrinsics.panic-abort.diff Transmute from NonNull to pointer when elaborating a box deref (MCP807) 2025-01-06 18:43:40 -08:00
lower_intrinsics.transmute_to_box_uninhabited.LowerIntrinsics.panic-unwind.diff Transmute from NonNull to pointer when elaborating a box deref (MCP807) 2025-01-06 18:43:40 -08:00
lower_intrinsics.transmute_to_mut_uninhabited.LowerIntrinsics.panic-abort.diff document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
lower_intrinsics.transmute_to_mut_uninhabited.LowerIntrinsics.panic-unwind.diff document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
lower_intrinsics.transmute_to_ref_uninhabited.LowerIntrinsics.panic-abort.diff document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
lower_intrinsics.transmute_to_ref_uninhabited.LowerIntrinsics.panic-unwind.diff document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
lower_intrinsics.transmute_uninhabited.LowerIntrinsics.panic-abort.diff document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
lower_intrinsics.transmute_uninhabited.LowerIntrinsics.panic-unwind.diff document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
lower_intrinsics.unchecked.LowerIntrinsics.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.unchecked.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.with_overflow.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.wrapping.LowerIntrinsics.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
lower_intrinsics.wrapping.LowerIntrinsics.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00:00
lower_slice_len.bound.LowerSliceLenCalls.panic-unwind.diff Reapply "Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung" 2025-01-27 23:42:47 +00: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
match_arm_scopes.complicated_match.panic-unwind.SimplifyCfg-initial.after-ElaborateDrops.after.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.foo.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_i128_u128.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_nested_if.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_sext_i8_i16.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_sext_i8_i16_failed.MatchBranchSimplification.diff Simplify match based on the cast result of IntToInt. 2024-08-03 10:55:43 +08:00
matches_reduce_branches.match_sext_i8_u16.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_sext_i8_u16_failed.MatchBranchSimplification.diff Simplify match based on the cast result of IntToInt. 2024-08-03 10:55:43 +08:00
matches_reduce_branches.match_trunc_i16_i8.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_trunc_i16_i8_failed.MatchBranchSimplification.diff Simplify match based on the cast result of IntToInt. 2024-08-03 10:55:43 +08:00
matches_reduce_branches.match_trunc_i16_u8.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_trunc_i16_u8_failed.MatchBranchSimplification.diff Simplify match based on the cast result of IntToInt. 2024-08-03 10:55:43 +08:00
matches_reduce_branches.match_trunc_u16_i8.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_trunc_u16_i8_failed.MatchBranchSimplification.diff Simplify match based on the cast result of IntToInt. 2024-08-03 10:55:43 +08:00
matches_reduce_branches.match_trunc_u16_u8.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_trunc_u16_u8_failed.MatchBranchSimplification.diff Simplify match based on the cast result of IntToInt. 2024-08-03 10:55:43 +08:00
matches_reduce_branches.match_u8_i8.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_u8_i8_2.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_u8_i8_2_failed.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_u8_i8_failed.MatchBranchSimplification.diff Simplify match based on the cast result of IntToInt. 2024-08-03 10:55:43 +08:00
matches_reduce_branches.match_u8_i8_failed_len_1.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_u8_i8_failed_len_2.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_u8_i8_fallback.MatchBranchSimplification.diff Simplify match based on the cast result of IntToInt. 2024-08-03 10:55:43 +08:00
matches_reduce_branches.match_zext_u8_i16.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_zext_u8_i16_failed.MatchBranchSimplification.diff Simplify match based on the cast result of IntToInt. 2024-08-03 10:55:43 +08:00
matches_reduce_branches.match_zext_u8_u16.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_reduce_branches.match_zext_u8_u16_failed.MatchBranchSimplification.diff Simplify match based on the cast result of IntToInt. 2024-08-03 10:55:43 +08:00
matches_reduce_branches.my_is_some.MatchBranchSimplification.diff MatchBranchSimplification: Consider empty-unreachable otherwise branch 2024-12-27 10:57:46 +00:00
matches_reduce_branches.rs MatchBranchSimplification: Consider empty-unreachable otherwise branch 2024-12-27 10:57:46 +00:00
matches_u8.exhaustive_match.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_u8.exhaustive_match_i8.MatchBranchSimplification.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
matches_u8.rs Re-enable SimplifyToExp in match_branches. 2024-08-03 10:55:46 +08: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
nrvo_simple.nrvo.RenameReturnPlace.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
nrvo_simple.nrvo.RenameReturnPlace.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
nrvo_simple.rs rustfmt tests/mir-opt. 2024-06-03 14:17:16 +10:00
null_check_references.rs Insert null checks for pointer dereferences when debug assertions are enabled 2025-01-31 11:13:34 +00:00
optimize_none.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
or_pattern.rs Add tests 2024-06-16 18:23:48 +02:00
or_pattern.shortcut_second_or.SimplifyCfg-initial.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
or_pattern.single_switchint.SimplifyCfg-initial.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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
pattern_types.main.PreCodegen.after.mir Pretty print pattern type values with transmute if they don't satisfy their pattern 2025-02-05 14:56:41 +00:00
pattern_types.rs Pretty print pattern type values with transmute if they don't satisfy their pattern 2025-02-05 14:56:41 +00:00
README.md mir-opt tests: rename unit-test -> test-mir-pass 2024-04-20 13:19:34 +02:00
reference_prop.debuginfo.ReferencePropagation.diff Revert "Auto merge of #134330 - scottmcm:no-more-rvalue-len, r=matthewjasper" 2025-01-18 22:09:34 +00:00
reference_prop.dominate_storage.ReferencePropagation.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
reference_prop.maybe_dead.ReferencePropagation.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
reference_prop.multiple_storage.ReferencePropagation.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
reference_prop.mut_raw_then_mut_shr.ReferencePropagation.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
reference_prop.read_through_raw.ReferencePropagation.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
reference_prop.reference_propagation.ReferencePropagation.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
reference_prop.reference_propagation_const_ptr.ReferencePropagation.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
reference_prop.reference_propagation_mut.ReferencePropagation.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
reference_prop.reference_propagation_mut_ptr.ReferencePropagation.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
reference_prop.rs Auto merge of #122551 - RayMuir:copy_fmt, r=saethlin 2024-08-19 23:10:46 +00:00
reference_prop.unique_with_copies.ReferencePropagation.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
remove_fake_borrows.match_guard.CleanupPostBorrowck.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
remove_fake_borrows.match_guard.CleanupPostBorrowck.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
remove_storage_markers.main.RemoveStorageMarkers.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
remove_unneeded_drops.opt.RemoveUnneededDrops.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
remove_unneeded_drops.opt_generic_copy.RemoveUnneededDrops.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
remove_unneeded_drops.opt_generic_copy.RemoveUnneededDrops.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -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.RemoveZsts.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_zsts.remove_generic_array.RemoveZsts.diff Address PR feedback 2025-01-11 15:56:58 -08:00
remove_zsts.rs Address PR feedback 2025-01-11 15:56:58 -08:00
retag.array_casts.SimplifyCfg-pre-optimizations.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
retag.array_casts.SimplifyCfg-pre-optimizations.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
retag.box_to_raw_mut.SimplifyCfg-pre-optimizations.after.panic-abort.mir Transmute from NonNull to pointer when elaborating a box deref (MCP807) 2025-01-06 18:43:40 -08:00
retag.box_to_raw_mut.SimplifyCfg-pre-optimizations.after.panic-unwind.mir Transmute from NonNull to pointer when elaborating a box deref (MCP807) 2025-01-06 18:43:40 -08: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
retag.main-{closure#0}.SimplifyCfg-pre-optimizations.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
retag.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
retag.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
retag.{impl#0}-foo_shr.SimplifyCfg-pre-optimizations.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
return_an_array.rs rustfmt tests/mir-opt. 2024-06-03 14:17:16 +10:00
separate_const_switch.identity.JumpThreading.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
separate_const_switch.rs Remove feature(control_flow_enum) in tests 2024-09-25 19:00:19 -07:00
separate_const_switch.too_complex.JumpThreading.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
set_no_discriminant.f.JumpThreading.diff Variants::Single: do not use invalid VariantIdx for uninhabited enums 2024-12-18 11:00:21 +01:00
set_no_discriminant.generic.JumpThreading.diff Variants::Single: do not use invalid VariantIdx for uninhabited enums 2024-12-18 11:00:21 +01:00
set_no_discriminant.rs Variants::Single: do not use invalid VariantIdx for uninhabited enums 2024-12-18 11:00:21 +01:00
simplify_aggregate_to_copy_miscompile.foo.GVN.diff Add a mir-opt GVN test for #128299 2024-10-31 13:48:35 +08:00
simplify_aggregate_to_copy_miscompile.rs Add a mir-opt GVN test for #128299 2024-10-31 13:48:35 +08: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
simplify_dead_blocks.rs Update mir-opt filechecks 2024-08-18 15:52:23 -07: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 be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
simplify_locals.t4.SimplifyLocals-before-const-prop.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
simplify_locals_fixedpoint.foo.SimplifyLocals-final.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
simplify_locals_fixedpoint.foo.SimplifyLocals-final.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
simplify_locals_removes_unused_consts.main.SimplifyLocals-before-const-prop.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
simplify_match.main.GVN.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
simplify_match.rs rustfmt tests/mir-opt. 2024-06-03 14:17:16 +10: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
single_use_consts.if_const_debug.SingleUseConsts.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
single_use_consts.match_const.SingleUseConsts.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
single_use_consts.match_const_debug.SingleUseConsts.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
single_use_consts.match_const_debug.SingleUseConsts.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -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;42].AddMovesForPackedDrops.before.mir Use PtrMetadata instead of Len in slice drop shims 2024-12-14 21:29:45 -08:00
slice_drop_shim.core.ptr-drop_in_place.[String].AddMovesForPackedDrops.before.mir Use PtrMetadata instead of Len in slice drop shims 2024-12-14 21:29:45 -08:00
slice_drop_shim.rs Add a mir-opt test for drop shims of arrays 2024-12-14 21:27:23 -08: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 add borrows to NLL MIR dumps 2024-08-30 07:14:31 +00:00
storage_ranges.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
strip_debuginfo.rs We don't need NonNull::as_ptr debuginfo 2024-12-10 01:29:43 -08: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 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
tail_call_drops.f.built.after.panic-abort.mir don't drop types with no drop glue when tailcalling 2025-01-24 06:45:19 +01:00
tail_call_drops.f.built.after.panic-unwind.mir don't drop types with no drop glue when tailcalling 2025-01-24 06:45:19 +01:00
tail_call_drops.f.ElaborateDrops.panic-abort.diff don't drop types with no drop glue when tailcalling 2025-01-24 06:45:19 +01:00
tail_call_drops.f.ElaborateDrops.panic-unwind.diff don't drop types with no drop glue when tailcalling 2025-01-24 06:45:19 +01:00
tail_call_drops.f_with_arg.built.after.panic-abort.mir don't drop types with no drop glue when tailcalling 2025-01-24 06:45:19 +01:00
tail_call_drops.f_with_arg.built.after.panic-unwind.mir don't drop types with no drop glue when tailcalling 2025-01-24 06:45:19 +01:00
tail_call_drops.f_with_arg.ElaborateDrops.panic-abort.diff don't drop types with no drop glue when tailcalling 2025-01-24 06:45:19 +01:00
tail_call_drops.f_with_arg.ElaborateDrops.panic-unwind.diff don't drop types with no drop glue when tailcalling 2025-01-24 06:45:19 +01:00
tail_call_drops.rs Properly handle drops for tail calls 2024-07-07 17:11:05 +02:00
tail_expr_drop_order_unwind.method_1.ElaborateDrops.after.panic-abort.mir Try to explain borrow for tail expr temporary drop order change in 2024 2025-01-08 16:02:44 +00:00
tail_expr_drop_order_unwind.method_1.ElaborateDrops.after.panic-unwind.mir Try to explain borrow for tail expr temporary drop order change in 2024 2025-01-08 16:02:44 +00:00
tail_expr_drop_order_unwind.rs Separate DropKind::ForLint 2024-12-18 21:58:39 +00: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 Be far more strict about what we consider to be a read of never 2024-10-05 19:10:47 -04:00
uninhabited_enum.process_void.SimplifyLocals-final.after.mir Be far more strict about what we consider to be a read of never 2024-10-05 19:10:47 -04:00
uninhabited_enum.rs Be far more strict about what we consider to be a read of never 2024-10-05 19:10:47 -04:00
uninhabited_fallthrough_elimination.eliminate_fallthrough.UnreachableEnumBranching.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
uninhabited_fallthrough_elimination.keep_fallthrough.UnreachableEnumBranching.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
uninhabited_fallthrough_elimination.rs Rename UninhabitedEnumBranching to UnreachableEnumBranching 2024-03-09 14:32:27 +08:00
uninhabited_not_read.main.SimplifyLocals-final.after.mir Fix up tests 2024-10-05 18:36:47 -04:00
uninhabited_not_read.rs Document things a bit more carefully, also account for coercion in check_expr_has_type_or_error 2024-10-05 18:36:47 -04:00
unreachable.as_match.UnreachablePropagation.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
unreachable.as_match.UnreachablePropagation.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
unreachable.if_let.UnreachablePropagation.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
unreachable.if_let.UnreachablePropagation.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
unreachable.rs Update tests 2024-08-10 12:07:17 +02:00
unreachable_diverging.main.UnreachablePropagation.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
unreachable_diverging.main.UnreachablePropagation.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07: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 Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
unreachable_enum_branching.byref.UnreachableEnumBranching.panic-unwind.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02: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 Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
unreachable_enum_branching.otherwise_t1.UnreachableEnumBranching.panic-unwind.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02: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 Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
unreachable_enum_branching.otherwise_t3.UnreachableEnumBranching.panic-unwind.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
unreachable_enum_branching.otherwise_t4.UnreachableEnumBranching.panic-abort.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
unreachable_enum_branching.otherwise_t4.UnreachableEnumBranching.panic-unwind.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
unreachable_enum_branching.otherwise_t4_unreachable_default.UnreachableEnumBranching.panic-abort.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
unreachable_enum_branching.otherwise_t4_unreachable_default.UnreachableEnumBranching.panic-unwind.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
unreachable_enum_branching.otherwise_t4_unreachable_default_2.UnreachableEnumBranching.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
unreachable_enum_branching.otherwise_t4_unreachable_default_2.UnreachableEnumBranching.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
unreachable_enum_branching.otherwise_t5_unreachable_default.UnreachableEnumBranching.panic-abort.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
unreachable_enum_branching.otherwise_t5_unreachable_default.UnreachableEnumBranching.panic-unwind.diff Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
unreachable_enum_branching.rs Update tests 2024-08-10 12:07:17 +02:00
unreachable_enum_branching.simple.UnreachableEnumBranching.panic-abort.diff Update tests 2024-08-10 12:07:17 +02:00
unreachable_enum_branching.simple.UnreachableEnumBranching.panic-unwind.diff Update tests 2024-08-10 12:07:17 +02: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.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.rs rustfmt tests/mir-opt. 2024-06-03 14:17:16 +10: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.{impl#0}-ASSOCIATED_CONSTANT.built.after.mir rustfmt tests/mir-opt. 2024-06-03 14:17:16 +10:00

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