rust/tests/mir-opt
bors f0999ffdc4 Auto merge of #139118 - scottmcm:slice-get-unchecked-intrinsic, r=workingjubilee
`slice.get(i)` should use a slice projection in MIR, like `slice[i]` does

`slice[i]` is built-in magic, so ends up being quite different from `slice.get(i)` in MIR, even though they're both doing nearly identical operations -- checking the length of the slice then getting a ref/ptr to the element if it's in-bounds.

This PR adds a `slice_get_unchecked` intrinsic for `impl SliceIndex for usize` to use to fix that, so it no longer needs to do a bunch of lines of pointer math and instead just gets the obvious single statement.  (This is *not* used for the range versions, since `slice[i..]` and `slice[..k]` can't use the mir Slice projection as they're using fenceposts, not indices.)

I originally tried to do this with some kind of GVN pattern, but realized that I'm pretty sure it's not legal to optimize `BinOp::Offset` to `PlaceElem::Index` without an extremely complicated condition.  Basically, the problem is that the `Index` projection on a dereferenced slice pointer *cares about the metadata*, since it's UB to `PlaceElem::Index` outside the range described by the metadata.  But then you cast the fat pointer to a thin pointer then offset it, that *ignores* the slice length metadata, so it's possible to write things that are legal with `Offset` but would be UB if translated in the obvious way to `Index`.  Checking (or even determining) the necessary conditions for that would be complicated and error-prone, whereas this intrinsic-based approach is quite straight-forward.

Zero backend changes, because it just lowers to MIR, so it's already supported naturally by CTFE/Miri/cg_llvm/cg_clif.
2025-05-31 21:38:21 +00:00
..
building yeet CanonicalVarInfo 2025-05-23 12:10:53 +00:00
const_prop Allow GVN to produce places and not just locals. 2025-04-04 10:55:36 +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: Revert "unused local file IDs" due to empty function names 2025-05-27 23:33:29 +10: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 Do not optimize out SwitchInt before borrowck, or if Zmir-preserve-ub 2025-04-08 21:05:20 +00:00
dest-prop Invalid dereferences for all non-local mutations 2025-04-03 21:59:49 +08:00
ergonomic-clones Add mir opt tests to be sure we generate copy, clones and moves when corresponds 2025-04-07 16:53:11 -03:00
inline Add some track_caller info to precondition panics 2025-05-21 09:10:06 -04:00
instsimplify Add some track_caller info to precondition panics 2025-05-21 09:10:06 -04:00
issues mir-opt: execute MatchBranchSimplification after GVN 2025-04-21 21:46:44 +08: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 slice.get(i) should use a slice projection in MIR, like slice[i] does 2025-05-30 12:04:41 -07:00
sroa Bless mir opt tests. 2025-05-01 12:29:43 +02:00
address_of.address_of_reborrow.SimplifyCfg-initial.after.mir yeet CanonicalVarInfo 2025-05-23 12:10:53 +00:00
address_of.borrow_and_cast.SimplifyCfg-initial.after.mir
address_of.rs
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
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_fake_read_for_by_move.foo-{closure#0}-{closure#0}.built.after.mir AsyncDrop implementation using shim codegen of async_drop_in_place::{closure}, scoped async drop added. 2025-04-28 16:23:13 +07:00
async_closure_fake_read_for_by_move.foo-{closure#0}-{synthetic#0}.built.after.mir AsyncDrop implementation using shim codegen of async_drop_in_place::{closure}, scoped async drop added. 2025-04-28 16:23:13 +07:00
async_closure_fake_read_for_by_move.rs Encode synthetic by-move coroutine body with a different DefPathData 2025-03-30 22:53:21 +00:00
async_closure_shims.main-{closure#0}-{closure#0}-{closure#0}.built.after.mir AsyncDrop implementation using shim codegen of async_drop_in_place::{closure}, scoped async drop added. 2025-04-28 16:23:13 +07:00
async_closure_shims.main-{closure#0}-{closure#0}-{synthetic#0}.built.after.mir AsyncDrop implementation using shim codegen of async_drop_in_place::{closure}, scoped async drop added. 2025-04-28 16:23:13 +07: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 AsyncDrop implementation using shim codegen of async_drop_in_place::{closure}, scoped async drop added. 2025-04-28 16:23:13 +07:00
async_closure_shims.main-{closure#0}-{closure#1}-{synthetic#0}.built.after.mir AsyncDrop implementation using shim codegen of async_drop_in_place::{closure}, scoped async drop added. 2025-04-28 16:23:13 +07: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 Encode synthetic by-move coroutine body with a different DefPathData 2025-03-30 22:53:21 +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
box_expr.main.ElaborateDrops.diff Don't project into NonNull when dropping a Box 2025-02-15 23:20:52 -08:00
box_expr.rs Transmute from NonNull to pointer when elaborating a box deref (MCP807) 2025-01-06 18:43:40 -08:00
box_partial_move.maybe_move.ElaborateDrops.diff Don't project into NonNull when dropping a Box 2025-02-15 23:20:52 -08:00
box_partial_move.rs Don't project into NonNull when dropping a Box 2025-02-15 23:20:52 -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
byte_slice.main.SimplifyCfg-pre-optimizations.after.mir
byte_slice.rs
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
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
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
const_debuginfo.main.SingleUseConsts.diff
const_debuginfo.rs
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
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
const_promotion_extern_static.FOO-promoted[0].SimplifyCfg-pre-optimizations.after.mir
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
coroutine_drop_cleanup.main-{closure#0}.coroutine_drop.0.panic-abort.mir
coroutine_drop_cleanup.main-{closure#0}.coroutine_drop.0.panic-unwind.mir
coroutine_drop_cleanup.rs Make coroutine_drop_cleanup 2024 edition compatible 2025-04-01 14:49:15 +00:00
coroutine_storage_dead_unwind.main-{closure#0}.StateTransform.before.panic-abort.mir
coroutine_storage_dead_unwind.main-{closure#0}.StateTransform.before.panic-unwind.mir
coroutine_storage_dead_unwind.rs
coroutine_tiny.main-{closure#0}.coroutine_resume.0.mir
coroutine_tiny.rs
dataflow.main.maybe_uninit.borrowck.dot switch dataflow test to a maybe-uninit analysis 2025-05-27 21:21:28 +00:00
dataflow.rs switch dataflow test to a maybe-uninit analysis 2025-05-27 21:21:28 +00: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
derefer_inline_test.main.Derefer.panic-abort.diff
derefer_inline_test.main.Derefer.panic-unwind.diff
derefer_inline_test.rs
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
derefer_test.main.Derefer.diff
derefer_test.rs
derefer_test_multiple.main.Derefer.diff
derefer_test_multiple.rs
dont_inline_type_id.call.Inline.diff
dont_inline_type_id.rs
dont_reset_cast_kind_without_updating_operand.rs Emit MIR for each bit with on dont_reset_cast_kind_without_updating_operand 2025-02-13 23:36:51 -05:00
dont_reset_cast_kind_without_updating_operand.test.GVN.32bit.panic-abort.diff Add some track_caller info to precondition panics 2025-05-21 09:10:06 -04:00
dont_reset_cast_kind_without_updating_operand.test.GVN.32bit.panic-unwind.diff Allow GVN to produce places and not just locals. 2025-04-04 10:55:36 +00:00
dont_reset_cast_kind_without_updating_operand.test.GVN.64bit.panic-abort.diff Add some track_caller info to precondition panics 2025-05-21 09:10:06 -04:00
dont_reset_cast_kind_without_updating_operand.test.GVN.64bit.panic-unwind.diff Allow GVN to produce places and not just locals. 2025-04-04 10:55:36 +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
early_otherwise_branch_68867.rs
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
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
early_otherwise_branch_soundness.rs
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
elaborate_box_deref_in_debuginfo.rs
enum_opt.cand.EnumSizeOpt.32bit.diff Use MirPatch in EnumSizeOpt. 2025-02-18 12:52:56 +11:00
enum_opt.cand.EnumSizeOpt.64bit.diff Use MirPatch in EnumSizeOpt. 2025-02-18 12:52:56 +11:00
enum_opt.invalid.EnumSizeOpt.32bit.diff
enum_opt.invalid.EnumSizeOpt.64bit.diff
enum_opt.rs Stabilise repr128 2025-05-28 15:14:34 +01:00
enum_opt.trunc.EnumSizeOpt.32bit.diff
enum_opt.trunc.EnumSizeOpt.64bit.diff
enum_opt.unin.EnumSizeOpt.32bit.diff Use MirPatch in EnumSizeOpt. 2025-02-18 12:52:56 +11:00
enum_opt.unin.EnumSizeOpt.64bit.diff Use MirPatch in EnumSizeOpt. 2025-02-18 12:52:56 +11:00
fn_ptr_shim.core.ops-function-Fn-call.AddMovesForPackedDrops.before.mir
fn_ptr_shim.rs
funky_arms.float_to_exponential_common.GVN.32bit.panic-abort.diff Update tests. 2025-03-12 16:32:11 +01:00
funky_arms.float_to_exponential_common.GVN.32bit.panic-unwind.diff Update tests. 2025-03-12 16:32:11 +01:00
funky_arms.float_to_exponential_common.GVN.64bit.panic-abort.diff Update tests. 2025-03-12 16:32:11 +01:00
funky_arms.float_to_exponential_common.GVN.64bit.panic-unwind.diff Update tests. 2025-03-12 16:32:11 +01:00
funky_arms.rs Update tests. 2025-03-10 12:20:05 +01:00
global_asm.rs fix ICE in pretty-printing global_asm! 2025-03-10 14:46:01 +01:00
global_asm.{global_asm#0}.SimplifyLocals-final.after.mir fix ICE in pretty-printing global_asm! 2025-03-10 14:46:01 +01:00
graphviz.main.built.after.dot
graphviz.rs
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 Bless tests 2025-04-02 19:59:26 +08:00
gvn.borrowed.GVN.panic-unwind.diff Bless tests 2025-04-02 19:59:26 +08: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 Revert "comment out the old tests instead of adjusting them" 2025-04-02 19:59:26 +08:00
gvn.fn_pointers.GVN.panic-unwind.diff Revert "comment out the old tests instead of adjusting them" 2025-04-02 19:59:26 +08: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 Only introduce stable projections. 2025-04-04 10:55:42 +00:00
gvn.remove_casts_must_change_both_sides.GVN.panic-unwind.diff Only introduce stable projections. 2025-04-04 10:55:42 +00: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 Only introduce stable projections. 2025-04-04 10:55:42 +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 Bless tests 2025-04-02 19:59:26 +08:00
gvn.slices.GVN.panic-unwind.diff Bless tests 2025-04-02 19:59:26 +08: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 Remove unsound-mir-opts for simplify_aggregate_to_copy 2025-04-03 21:59:43 +08:00
gvn_clone.{impl#0}-clone.GVN.diff Remove unsound-mir-opts for simplify_aggregate_to_copy 2025-04-03 21:59:43 +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 Remove unsound-mir-opts for simplify_aggregate_to_copy 2025-04-03 21:59:43 +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_constant_projection.compare_constant_index.GVN.panic-abort.diff Allow GVN to produce places and not just locals. 2025-04-04 10:55:36 +00:00
gvn_copy_constant_projection.compare_constant_index.GVN.panic-unwind.diff Allow GVN to produce places and not just locals. 2025-04-04 10:55:36 +00:00
gvn_copy_constant_projection.rs Allow GVN to produce places and not just locals. 2025-04-04 10:55:36 +00: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
gvn_on_unsafe_binder.propagate.GVN.diff Don't drop Rvalue::WrapUnsafeBinder during GVN 2025-03-15 18:10:55 +00:00
gvn_on_unsafe_binder.rs Don't drop Rvalue::WrapUnsafeBinder during GVN 2025-03-15 18:10:55 +00:00
gvn_on_unsafe_binder.test.GVN.diff Don't drop Rvalue::WrapUnsafeBinder during GVN 2025-03-15 18:10:55 +00:00
gvn_overlapping.overlapping.GVN.diff gvn: avoid creating overlapping assignments 2025-05-18 18:42:00 +08:00
gvn_overlapping.rs gvn: avoid creating overlapping assignments 2025-05-18 18:42:00 +08: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_repeat.repeat_local.GVN.diff gvn: bail out unavoidable non-ssa locals in repeat 2025-05-19 21:35:49 +08:00
gvn_repeat.repeat_place.GVN.diff gvn: bail out unavoidable non-ssa locals in repeat 2025-05-19 21:35:49 +08:00
gvn_repeat.rs gvn: bail out unavoidable non-ssa locals in repeat 2025-05-19 21:35:49 +08: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 Bless tests 2025-04-02 19:59:26 +08:00
gvn_uninhabited.f.GVN.panic-unwind.diff Bless tests 2025-04-02 19:59:26 +08:00
gvn_uninhabited.rs
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
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
inline_coroutine_body.run2-{closure#0}.Inline.panic-abort.diff Update tests. 2025-04-15 11:14:23 +02:00
inline_coroutine_body.run2-{closure#0}.Inline.panic-unwind.diff Update tests. 2025-04-15 11:14:23 +02:00
inline_fn_call_for_fn_def.rs Inline FnOnce once again 2025-03-03 23:30:18 +00:00
inline_fn_call_for_fn_def.test.Inline.diff Inline FnOnce once again 2025-03-03 23:30:18 +00:00
inline_generically_if_sized.call.Inline.diff
inline_generically_if_sized.rs
issue_38669.main.SimplifyCfg-initial.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_38669.rs
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
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
issue_41697.{impl#0}-{constant#0}.SimplifyCfg-promote-consts.after.mir
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
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
issue_72181_1.f.built.after.mir
issue_72181_1.main.built.after.mir bless mir-opt tests 2024-10-17 10:22:55 +02:00
issue_72181_1.rs
issue_76432.rs
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
issue_91633.bar.built.after.mir
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
issue_91633.rs
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
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
issue_104451_unwindable_intrinsics.main.AbortUnwindingCalls.after.panic-abort.mir
issue_104451_unwindable_intrinsics.main.AbortUnwindingCalls.after.panic-unwind.mir
issue_104451_unwindable_intrinsics.rs
issue_120925_unsafefncast.rs
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 JumpThreading: Re-enable and fix Not ops on non-booleans 2025-04-13 20:29:49 +00:00
jump_threading.bitwise_not.JumpThreading.panic-unwind.diff JumpThreading: Re-enable and fix Not ops on non-booleans 2025-04-13 20:29:49 +00: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
jump_threading.dfa.JumpThreading.panic-unwind.diff
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.logical_not.JumpThreading.panic-abort.diff JumpThreading: Re-enable and fix Not ops on non-booleans 2025-04-13 20:29:49 +00:00
jump_threading.logical_not.JumpThreading.panic-unwind.diff JumpThreading: Re-enable and fix Not ops on non-booleans 2025-04-13 20:29:49 +00: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 JumpThreading: Re-enable and fix Not ops on non-booleans 2025-04-13 20:29:49 +00: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
loop_test.rs
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
lower_intrinsics.align_of.LowerIntrinsics.panic-abort.diff
lower_intrinsics.align_of.LowerIntrinsics.panic-unwind.diff
lower_intrinsics.assume.LowerIntrinsics.panic-abort.diff
lower_intrinsics.assume.LowerIntrinsics.panic-unwind.diff
lower_intrinsics.discriminant.LowerIntrinsics.panic-abort.diff
lower_intrinsics.discriminant.LowerIntrinsics.panic-unwind.diff
lower_intrinsics.f_copy_nonoverlapping.LowerIntrinsics.panic-abort.diff make std::intrinsic functions actually be intrinsics 2025-05-20 08:09:16 +02:00
lower_intrinsics.f_copy_nonoverlapping.LowerIntrinsics.panic-unwind.diff make std::intrinsic functions actually be intrinsics 2025-05-20 08:09:16 +02:00
lower_intrinsics.forget.LowerIntrinsics.panic-abort.diff
lower_intrinsics.forget.LowerIntrinsics.panic-unwind.diff
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 slice.get(i) should use a slice projection in MIR, like slice[i] does 2025-05-30 12:04:41 -07:00
lower_intrinsics.size_of.LowerIntrinsics.panic-abort.diff
lower_intrinsics.size_of.LowerIntrinsics.panic-unwind.diff
lower_intrinsics.slice_get.LowerIntrinsics.panic-abort.diff slice.get(i) should use a slice projection in MIR, like slice[i] does 2025-05-30 12:04:41 -07:00
lower_intrinsics.slice_get.LowerIntrinsics.panic-unwind.diff slice.get(i) should use a slice projection in MIR, like slice[i] does 2025-05-30 12:04:41 -07: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 Use BinOp::Cmp for iNN::signum 2025-03-01 13:06:51 -08: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 Use BinOp::Cmp for iNN::signum 2025-03-01 13:06:51 -08: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 Use BinOp::Cmp for iNN::signum 2025-03-01 13:06:51 -08: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
lower_intrinsics.unreachable.LowerIntrinsics.panic-unwind.diff
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
lower_intrinsics.write_via_move_string.LowerIntrinsics.panic-unwind.diff
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
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
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_non_int_failed.MatchBranchSimplification.diff mir-opt: Do not transform non-int type in match_branches 2025-05-26 18:15:54 +08: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
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
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
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
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
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
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
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
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
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
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 Rollup merge of #141494 - dianqk:match-br-non-int, r=wesleywiser 2025-05-30 13:52:26 -07: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
multiple_return_terminators.rs
multiple_return_terminators.test.MultipleReturnTerminators.diff
no_drop_for_inactive_variant.rs
no_drop_for_inactive_variant.unwrap.SimplifyCfg-pre-optimizations.after.panic-abort.mir
no_drop_for_inactive_variant.unwrap.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
no_spurious_drop_after_call.main.ElaborateDrops.before.panic-abort.mir
no_spurious_drop_after_call.main.ElaborateDrops.before.panic-unwind.mir
no_spurious_drop_after_call.rs
nrvo_miscompile_111005.rs
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
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
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 Do not optimize out SwitchInt before borrowck, or if Zmir-preserve-ub 2025-04-08 21:05:20 +00:00
packed_struct_drop_aligned.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir
packed_struct_drop_aligned.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
packed_struct_drop_aligned.rs
pattern_types.main.PreCodegen.after.mir Hide the end of ranges in pretty printing if it's also the maximum of the type 2025-03-06 10:50:23 +00:00
pattern_types.rs Hide the end of ranges in pretty printing if it's also the maximum of the type 2025-03-06 10:50:23 +00:00
read_from_trivial_switch.main.SimplifyCfg-initial.diff Do not optimize out SwitchInt before borrowck, or if Zmir-preserve-ub 2025-04-08 21:05:20 +00:00
read_from_trivial_switch.rs Do not optimize out SwitchInt before borrowck, or if Zmir-preserve-ub 2025-04-08 21:05:20 +00:00
README.md
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
remove_never_const.no_codegen.PreCodegen.after.mir
remove_never_const.rs
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
remove_unneeded_drops.cannot_opt_generic.RemoveUnneededDrops.panic-abort.diff
remove_unneeded_drops.cannot_opt_generic.RemoveUnneededDrops.panic-unwind.diff
remove_unneeded_drops.dont_opt.RemoveUnneededDrops.panic-abort.diff
remove_unneeded_drops.dont_opt.RemoveUnneededDrops.panic-unwind.diff
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
remove_zsts.get_union.RemoveZsts.diff
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 intrinsics::drop_in_place 2025-04-22 14:06:09 +02:00
retag.core.ptr-drop_in_place.Test.SimplifyCfg-make_shim.after.panic-unwind.mir remove intrinsics::drop_in_place 2025-04-22 14:06:09 +02: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
retag.{impl#0}-foo.SimplifyCfg-pre-optimizations.after.panic-abort.mir
retag.{impl#0}-foo.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
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
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 Invalid dereferences for all non-local mutations 2025-04-03 21:59:49 +08:00
simplify_aggregate_to_copy_miscompile.rs Invalid dereferences for all non-local mutations 2025-04-03 21:59:49 +08:00
simplify_aggregate_to_copy_miscompile.set_discriminant.GVN.diff Invalid dereferences for all non-local mutations 2025-04-03 21:59:49 +08:00
simplify_cfg.main.SimplifyCfg-initial.diff
simplify_cfg.main.SimplifyCfg-post-analysis.diff
simplify_cfg.rs
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
simplify_if.main.SimplifyConstCondition-after-const-prop.panic-abort.diff
simplify_if.main.SimplifyConstCondition-after-const-prop.panic-unwind.diff
simplify_if.rs
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
simplify_locals.d2.SimplifyLocals-before-const-prop.diff
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
simplify_locals.rs
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
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 mir-opt: execute MatchBranchSimplification after GVN 2025-04-21 21:46:44 +08:00
simplify_locals_fixedpoint.foo.SimplifyLocals-final.panic-unwind.diff mir-opt: execute MatchBranchSimplification after GVN 2025-04-21 21:46:44 +08:00
simplify_locals_fixedpoint.rs
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
simplify_locals_removes_unused_discriminant_reads.map.SimplifyLocals-before-const-prop.diff
simplify_locals_removes_unused_discriminant_reads.rs
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
single_use_consts.assign_const_to_return.SingleUseConsts.panic-abort.diff
single_use_consts.assign_const_to_return.SingleUseConsts.panic-unwind.diff
single_use_consts.if_const.SingleUseConsts.panic-abort.diff
single_use_consts.if_const.SingleUseConsts.panic-unwind.diff
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
single_use_consts.keep_parameter.SingleUseConsts.panic-unwind.diff
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
single_use_consts.never_used_debug.SingleUseConsts.panic-unwind.diff
single_use_consts.rs
slice_drop_shim.core.ptr-drop_in_place.[String;42].AddMovesForPackedDrops.before.mir remove intrinsics::drop_in_place 2025-04-22 14:06:09 +02:00
slice_drop_shim.core.ptr-drop_in_place.[String].AddMovesForPackedDrops.before.mir remove intrinsics::drop_in_place 2025-04-22 14:06:09 +02: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
storage_ranges.main.nll.0.mir add borrows to NLL MIR dumps 2024-08-30 07:14:31 +00:00
storage_ranges.rs
strip_debuginfo.rs We don't need NonNull::as_ptr debuginfo 2024-12-10 01:29:43 -08:00
switch_to_self.rs
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
tail_expr_drop_order_unwind.method_1.ElaborateDrops.after.panic-abort.mir Visit place in BackwardIncompatibleDropHint statement 2025-04-13 22:01:54 +00:00
tail_expr_drop_order_unwind.method_1.ElaborateDrops.after.panic-unwind.mir Visit place in BackwardIncompatibleDropHint statement 2025-04-13 22:01:54 +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
tls_access.rs
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
uninhabited_fallthrough_elimination.keep_fallthrough.UnreachableEnumBranching.diff
uninhabited_fallthrough_elimination.rs
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
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
unreachable_enum_branching.byref.UnreachableEnumBranching.panic-abort.diff
unreachable_enum_branching.byref.UnreachableEnumBranching.panic-unwind.diff
unreachable_enum_branching.custom_discriminant.UnreachableEnumBranching.panic-abort.diff
unreachable_enum_branching.custom_discriminant.UnreachableEnumBranching.panic-unwind.diff
unreachable_enum_branching.otherwise_t1.UnreachableEnumBranching.panic-abort.diff
unreachable_enum_branching.otherwise_t1.UnreachableEnumBranching.panic-unwind.diff
unreachable_enum_branching.otherwise_t2.UnreachableEnumBranching.panic-abort.diff
unreachable_enum_branching.otherwise_t2.UnreachableEnumBranching.panic-unwind.diff
unreachable_enum_branching.otherwise_t3.UnreachableEnumBranching.panic-abort.diff
unreachable_enum_branching.otherwise_t3.UnreachableEnumBranching.panic-unwind.diff
unreachable_enum_branching.otherwise_t4.UnreachableEnumBranching.panic-abort.diff
unreachable_enum_branching.otherwise_t4.UnreachableEnumBranching.panic-unwind.diff
unreachable_enum_branching.otherwise_t4_unreachable_default.UnreachableEnumBranching.panic-abort.diff
unreachable_enum_branching.otherwise_t4_unreachable_default.UnreachableEnumBranching.panic-unwind.diff
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
unreachable_enum_branching.otherwise_t5_unreachable_default.UnreachableEnumBranching.panic-unwind.diff
unreachable_enum_branching.rs
unreachable_enum_branching.simple.UnreachableEnumBranching.panic-abort.diff
unreachable_enum_branching.simple.UnreachableEnumBranching.panic-unwind.diff
unusual_item_types.core.ptr-drop_in_place.Vec_i32_.AddMovesForPackedDrops.before.mir remove intrinsics::drop_in_place 2025-04-22 14:06:09 +02:00
unusual_item_types.E-V-{constant#0}.built.after.mir
unusual_item_types.rs
unusual_item_types.Test-X-{constructor#0}.built.after.mir
unusual_item_types.{impl#0}-ASSOCIATED_CONSTANT.built.after.mir

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