rust/tests/mir-opt
bors ff55fa3026 Auto merge of #113124 - nbdd0121:eh_frame, r=cjgillot
Add MIR validation for unwind out from nounwind functions + fixes to make validation pass

`@Nilstrieb`  This is the MIR validation you asked in https://github.com/rust-lang/rust/pull/112403#discussion_r1222739722.

Two passes need to be fixed to get the validation to pass:
* `RemoveNoopLandingPads` currently unconditionally introduce a resume block (even there is none to begin with!), changed to not do that
* Generator state transform introduces a `assert` which may unwind, and its drop elaboration also introduces many new `UnwindAction`s, so in this case run the AbortUnwindingCalls after the transformation.

I believe this PR should also fix Rust-for-Linux/linux#1016, cc `@ojeda`

r? `@Nilstrieb`
2023-08-20 09:58:52 +00:00
..
building Auto merge of #113124 - nbdd0121:eh_frame, r=cjgillot 2023-08-20 09:58:52 +00:00
const_prop Propagate ScalarPair for any type. 2023-07-20 21:30:51 +00:00
copy-prop custom_mir: change Call() terminator syntax to something more readable 2023-08-19 22:41:33 +02:00
dataflow-const-prop Bless tests 2023-06-23 18:36:25 +01:00
dead-store-elimination Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
deref-patterns Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
dest-prop Bless tests 2023-06-23 18:36:25 +01:00
inline Bless mir-opt tests. 2023-08-17 17:07:53 +00:00
issues Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
nll Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
pre-codegen Bless mir-opt tests. 2023-08-17 17:07:53 +00:00
sroa Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
address_of.address_of_reborrow.SimplifyCfg-initial.after.mir Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +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
array_index_is_temporary.main.SimplifyCfg-elaborate-drops.after.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
array_index_is_temporary.main.SimplifyCfg-elaborate-drops.after.panic-unwind.mir Bless tests 2023-06-23 18:36:25 +01:00
array_index_is_temporary.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
asm_unwind_panic_abort.main.AbortUnwindingCalls.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
asm_unwind_panic_abort.rs
basic_assignment.main.ElaborateDrops.diff Do not pre-compute reachable blocks. 2023-08-16 19:40:46 +00:00
basic_assignment.main.SimplifyCfg-initial.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
basic_assignment.rs
bool_compare.opt1.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
bool_compare.opt2.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
bool_compare.opt3.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
bool_compare.opt4.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
bool_compare.rs Rename InstCombine to InstSimplify 2023-05-06 23:22:32 -04:00
box_expr.main.ElaborateDrops.before.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
box_expr.main.ElaborateDrops.before.panic-unwind.mir Bless tests 2023-06-23 18:36:25 +01:00
box_expr.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
byte_slice.main.SimplifyCfg-elaborate-drops.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
byte_slice.rs
casts.redundant.InstSimplify.diff Perform reference propagation earlier. 2023-07-10 16:01:18 +00:00
casts.redundant.PreCodegen.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
casts.roundtrip.PreCodegen.after.mir Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
casts.rs Rename InstCombine to InstSimplify 2023-05-06 23:22:32 -04:00
combine_array_len.norm2.InstSimplify.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
combine_array_len.norm2.InstSimplify.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
combine_array_len.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
combine_clone_of_primitives.{impl#0}-clone.InstSimplify.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
combine_clone_of_primitives.{impl#0}-clone.InstSimplify.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
combine_clone_of_primitives.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
combine_transmutes.adt_transmutes.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
combine_transmutes.identity_transmutes.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
combine_transmutes.integer_transmutes.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
combine_transmutes.rs Stop turning transmutes into discriminants in mir-opt 2023-05-14 11:46:07 -07:00
const_allocation2.main.ConstProp.after.32bit.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_allocation2.main.ConstProp.after.64bit.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_allocation2.rs
const_allocation3.main.ConstProp.after.32bit.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_allocation3.main.ConstProp.after.64bit.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_allocation3.rs
const_allocation.main.ConstProp.after.32bit.mir interpret: refactor projection code to work on a common trait, and use that for visitors 2023-07-25 14:30:58 +02:00
const_allocation.main.ConstProp.after.64bit.mir interpret: refactor projection code to work on a common trait, and use that for visitors 2023-07-25 14:30:58 +02:00
const_allocation.rs
const_debuginfo.main.ConstDebugInfo.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_debuginfo.rs
const_goto_const_eval_fail.f.ConstGoto.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_goto_const_eval_fail.rs Disable two mir opts that are known to be unsound 2023-06-21 07:41:09 +00:00
const_goto_storage.match_nested_if.ConstGoto.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_goto_storage.rs
const_goto.issue_77355_opt.ConstGoto.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_goto.rs
const_promotion_extern_static.BAR-promoted[0].SimplifyCfg-elaborate-drops.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_promotion_extern_static.BAR.PromoteTemps.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02: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-elaborate-drops.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_promotion_extern_static.FOO.PromoteTemps.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
const_promotion_extern_static.rs
const_prop_miscompile.bar.ConstProp.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_prop_miscompile.foo.ConstProp.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
const_prop_miscompile.rs
coverage_graphviz.bar.InstrumentCoverage.0.dot Make coverage counter IDs count up from 0, not 1 2023-08-01 11:29:55 +10:00
coverage_graphviz.main.InstrumentCoverage.0.dot Make coverage counter IDs count up from 0, not 1 2023-08-01 11:29:55 +10:00
coverage_graphviz.rs
deduplicate_blocks.is_line_doc_comment_2.DeduplicateBlocks.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
deduplicate_blocks.is_line_doc_comment_2.DeduplicateBlocks.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
deduplicate_blocks.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
derefer_complex_case.main.Derefer.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
derefer_complex_case.main.Derefer.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
derefer_complex_case.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
derefer_inline_test.main.Derefer.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
derefer_inline_test.main.Derefer.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
derefer_inline_test.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
derefer_terminator_test.main.Derefer.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
derefer_terminator_test.main.Derefer.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
derefer_terminator_test.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02: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
derefer_test.main.Derefer.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
derefer_test.rs
dont_yeet_assert.generic.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
dont_yeet_assert.rs Rename InstCombine to InstSimplify 2023-05-06 23:22:32 -04:00
early_otherwise_branch_3_element_tuple.opt1.EarlyOtherwiseBranch.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
early_otherwise_branch_3_element_tuple.rs
early_otherwise_branch_68867.rs
early_otherwise_branch_68867.try_sum.EarlyOtherwiseBranch.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
early_otherwise_branch_noopt.noopt1.EarlyOtherwiseBranch.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
early_otherwise_branch_noopt.rs
early_otherwise_branch_soundness.no_deref_ptr.EarlyOtherwiseBranch.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
early_otherwise_branch_soundness.no_downcast.EarlyOtherwiseBranch.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
early_otherwise_branch_soundness.rs
early_otherwise_branch.opt1.EarlyOtherwiseBranch.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
early_otherwise_branch.opt2.EarlyOtherwiseBranch.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
early_otherwise_branch.opt3.EarlyOtherwiseBranch.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
early_otherwise_branch.rs
enum_opt.cand.EnumSizeOpt.32bit.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
enum_opt.cand.EnumSizeOpt.64bit.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04: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
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 Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
enum_opt.unin.EnumSizeOpt.64bit.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
equal_true.opt.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
equal_true.rs Rename InstCombine to InstSimplify 2023-05-06 23:22:32 -04:00
exponential_or.match_tuple.SimplifyCfg-initial.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
exponential_or.rs
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
funky_arms.float_to_exponential_common.ConstProp.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
funky_arms.float_to_exponential_common.ConstProp.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
funky_arms.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
generator_drop_cleanup.main-{closure#0}.generator_drop.0.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
generator_drop_cleanup.main-{closure#0}.generator_drop.0.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
generator_drop_cleanup.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
generator_storage_dead_unwind.main-{closure#0}.StateTransform.before.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
generator_storage_dead_unwind.main-{closure#0}.StateTransform.before.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
generator_storage_dead_unwind.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
generator_tiny.main-{closure#0}.generator_resume.0.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
generator_tiny.rs
graphviz.main.built.after.dot
graphviz.rs
if_condition_int.dont_opt_bool.SimplifyComparisonIntegral.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
if_condition_int.dont_opt_floats.SimplifyComparisonIntegral.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
if_condition_int.dont_remove_comparison.SimplifyComparisonIntegral.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
if_condition_int.opt_char.SimplifyComparisonIntegral.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
if_condition_int.opt_i8.SimplifyComparisonIntegral.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
if_condition_int.opt_multiple_ifs.SimplifyComparisonIntegral.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
if_condition_int.opt_negative.SimplifyComparisonIntegral.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
if_condition_int.opt_u32.SimplifyComparisonIntegral.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
if_condition_int.rs
instrument_coverage.bar.InstrumentCoverage.diff Make coverage counter IDs count up from 0, not 1 2023-08-01 11:29:55 +10:00
instrument_coverage.main.InstrumentCoverage.diff Make coverage counter IDs count up from 0, not 1 2023-08-01 11:29:55 +10:00
instrument_coverage.rs
instsimplify_duplicate_switch_targets.assert_zero.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
instsimplify_duplicate_switch_targets.rs Rename InstCombine to InstSimplify 2023-05-06 23:22:32 -04:00
intrinsic_asserts.generic.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
intrinsic_asserts.panics.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
intrinsic_asserts.removable.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
intrinsic_asserts.rs Rename InstCombine to InstSimplify 2023-05-06 23:22:32 -04:00
issue_38669.main.SimplifyCfg-initial.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_38669.rs
issue_41110.main.ElaborateDrops.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_41110.main.ElaborateDrops.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_41110.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
issue_41110.test.ElaborateDrops.panic-abort.diff Do not pre-compute reachable blocks. 2023-08-16 19:40:46 +00:00
issue_41110.test.ElaborateDrops.panic-unwind.diff Do not pre-compute reachable blocks. 2023-08-16 19:40:46 +00:00
issue_41697.{impl#0}-{constant#0}.SimplifyCfg-promote-consts.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_41697.rs
issue_41888.main.ElaborateDrops.panic-abort.diff Do not pre-compute reachable blocks. 2023-08-16 19:40:46 +00:00
issue_41888.main.ElaborateDrops.panic-unwind.diff Do not pre-compute reachable blocks. 2023-08-16 19:40:46 +00:00
issue_41888.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
issue_62289.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
issue_62289.test.ElaborateDrops.before.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_62289.test.ElaborateDrops.before.panic-unwind.mir Bless tests 2023-06-23 18:36:25 +01:00
issue_72181_1.f.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_72181_1.main.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_72181_1.rs
issue_72181.bar.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_72181.foo.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_72181.main.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_72181.rs
issue_76432.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
issue_76432.test.SimplifyComparisonIntegral.panic-abort.diff Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
issue_76432.test.SimplifyComparisonIntegral.panic-unwind.diff Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
issue_78192.f.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_78192.rs Rename InstCombine to InstSimplify 2023-05-06 23:22:32 -04:00
issue_91633.bar.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_91633.foo.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_91633.fun.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_91633.hey.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_91633.rs
issue_99325.main.built.after.mir refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
issue_99325.rs
issue_101973.inner.ConstProp.panic-abort.diff Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
issue_101973.inner.ConstProp.panic-unwind.diff Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
issue_101973.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
issue_104451_unwindable_intrinsics.main.AbortUnwindingCalls.after.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
issue_104451_unwindable_intrinsics.main.AbortUnwindingCalls.after.panic-unwind.mir Bless tests 2023-06-23 18:36:25 +01:00
issue_104451_unwindable_intrinsics.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02: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
lower_array_len.array_bound_mut.NormalizeArrayLen.panic-abort.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_bound_mut.NormalizeArrayLen.panic-unwind.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_bound.NormalizeArrayLen.panic-abort.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_bound.NormalizeArrayLen.panic-unwind.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_len_by_value.NormalizeArrayLen.panic-abort.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_len_by_value.NormalizeArrayLen.panic-unwind.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_len_raw.NormalizeArrayLen.panic-abort.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_len_raw.NormalizeArrayLen.panic-unwind.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_len_reborrow.NormalizeArrayLen.panic-abort.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_len_reborrow.NormalizeArrayLen.panic-unwind.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_len.NormalizeArrayLen.panic-abort.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.array_len.NormalizeArrayLen.panic-unwind.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
lower_array_len.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02: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 comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.assume.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.discriminant.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.discriminant.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.f_copy_nonoverlapping.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.f_copy_nonoverlapping.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04: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.non_const.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.non_const.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.option_payload.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.option_payload.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.ptr_offset.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.ptr_offset.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.read_via_copy_primitive.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.read_via_copy_primitive.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.read_via_copy_uninhabited.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.read_via_copy_uninhabited.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.rs Promote unchecked_add/sub/mul/shl/shr to mir::BinOp 2023-06-19 01:47:03 -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.transmute_inhabited.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_inhabited.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_ref_dst.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_ref_dst.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_to_box_uninhabited.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_to_box_uninhabited.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_to_mut_uninhabited.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_to_mut_uninhabited.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_to_ref_uninhabited.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_to_ref_uninhabited.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_uninhabited.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.transmute_uninhabited.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.unchecked.LowerIntrinsics.panic-abort.diff Promote unchecked_add/sub/mul/shl/shr to mir::BinOp 2023-06-19 01:47:03 -07:00
lower_intrinsics.unchecked.LowerIntrinsics.panic-unwind.diff Promote unchecked_add/sub/mul/shl/shr to mir::BinOp 2023-06-19 01:47:03 -07:00
lower_intrinsics.unreachable.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.unreachable.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.with_overflow.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.with_overflow.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.wrapping.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.wrapping.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.write_via_move_string.LowerIntrinsics.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_intrinsics.write_via_move_string.LowerIntrinsics.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_slice_len.bound.LowerSliceLenCalls.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
lower_slice_len.bound.LowerSliceLenCalls.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
lower_slice_len.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
match_arm_scopes.complicated_match.panic-abort.SimplifyCfg-initial.after-ElaborateDrops.after.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
match_arm_scopes.complicated_match.panic-unwind.SimplifyCfg-initial.after-ElaborateDrops.after.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
match_arm_scopes.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
match_test.main.SimplifyCfg-initial.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
match_test.rs
matches_reduce_branches.bar.MatchBranchSimplification.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
matches_reduce_branches.foo.MatchBranchSimplification.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
matches_reduce_branches.match_nested_if.MatchBranchSimplification.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
matches_reduce_branches.rs
matches_u8.exhaustive_match_i8.MatchBranchSimplification.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
matches_u8.exhaustive_match.MatchBranchSimplification.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
matches_u8.rs
multiple_return_terminators.rs
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 properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
no_drop_for_inactive_variant.unwrap.SimplifyCfg-elaborate-drops.after.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
no_drop_for_inactive_variant.unwrap.SimplifyCfg-elaborate-drops.after.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
no_spurious_drop_after_call.main.ElaborateDrops.before.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
no_spurious_drop_after_call.main.ElaborateDrops.before.panic-unwind.mir Bless tests 2023-06-23 18:36:25 +01:00
no_spurious_drop_after_call.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
not_equal_false.opt.InstSimplify.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
not_equal_false.rs Rename InstCombine to InstSimplify 2023-05-06 23:22:32 -04:00
nrvo_miscompile_111005.rs Disable nrvo mir opt 2023-05-08 03:55:41 -07:00
nrvo_miscompile_111005.wrong.RenameReturnPlace.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
nrvo_simple.nrvo.RenameReturnPlace.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
nrvo_simple.nrvo.RenameReturnPlace.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
nrvo_simple.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
packed_struct_drop_aligned.main.SimplifyCfg-elaborate-drops.after.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
packed_struct_drop_aligned.main.SimplifyCfg-elaborate-drops.after.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
packed_struct_drop_aligned.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
README.md
reference_prop.debuginfo.ReferencePropagation.diff Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
reference_prop.dominate_storage.ReferencePropagation.diff Bless tests 2023-06-23 18:36:25 +01:00
reference_prop.maybe_dead.ReferencePropagation.diff Bless tests 2023-06-23 18:36:25 +01:00
reference_prop.multiple_storage.ReferencePropagation.diff Bless tests 2023-06-23 18:36:25 +01:00
reference_prop.mut_raw_then_mut_shr.ReferencePropagation.diff Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
reference_prop.read_through_raw.ReferencePropagation.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
reference_prop.reference_propagation_const_ptr.ReferencePropagation.diff Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
reference_prop.reference_propagation_mut_ptr.ReferencePropagation.diff Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
reference_prop.reference_propagation_mut.ReferencePropagation.diff Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
reference_prop.reference_propagation.ReferencePropagation.diff Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
reference_prop.rs custom_mir: change Call() terminator syntax to something more readable 2023-08-19 22:41:33 +02:00
reference_prop.unique_with_copies.ReferencePropagation.diff Bless tests 2023-06-23 18:36:25 +01:00
remove_fake_borrows.match_guard.CleanupPostBorrowck.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_fake_borrows.match_guard.CleanupPostBorrowck.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_fake_borrows.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02: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
remove_storage_markers.main.RemoveStorageMarkers.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_storage_markers.main.RemoveStorageMarkers.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
remove_storage_markers.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
remove_unneeded_drops.cannot_opt_generic.RemoveUnneededDrops.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_unneeded_drops.cannot_opt_generic.RemoveUnneededDrops.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_unneeded_drops.dont_opt.RemoveUnneededDrops.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_unneeded_drops.dont_opt.RemoveUnneededDrops.panic-unwind.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_unneeded_drops.opt_generic_copy.RemoveUnneededDrops.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_unneeded_drops.opt_generic_copy.RemoveUnneededDrops.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
remove_unneeded_drops.opt.RemoveUnneededDrops.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_unneeded_drops.opt.RemoveUnneededDrops.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
remove_unneeded_drops.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
remove_zsts.get_union.PreCodegen.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_zsts.get_union.RemoveZsts.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
remove_zsts.rs
retag.{impl#0}-foo_shr.SimplifyCfg-elaborate-drops.after.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
retag.{impl#0}-foo_shr.SimplifyCfg-elaborate-drops.after.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
retag.{impl#0}-foo.SimplifyCfg-elaborate-drops.after.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
retag.{impl#0}-foo.SimplifyCfg-elaborate-drops.after.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
retag.array_casts.SimplifyCfg-elaborate-drops.after.panic-abort.mir Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
retag.array_casts.SimplifyCfg-elaborate-drops.after.panic-unwind.mir Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02: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-elaborate-drops.after.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
retag.main-{closure#0}.SimplifyCfg-elaborate-drops.after.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
retag.main.SimplifyCfg-elaborate-drops.after.panic-abort.mir Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
retag.main.SimplifyCfg-elaborate-drops.after.panic-unwind.mir Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
retag.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
return_an_array.rs
separate_const_switch.identity.SeparateConstSwitch.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
separate_const_switch.rs Disable two mir opts that are known to be unsound 2023-06-21 07:41:09 +00:00
separate_const_switch.too_complex.SeparateConstSwitch.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_arm_identity.rs
simplify_arm.id_try.SimplifyArmIdentity.diff
simplify_arm.id_try.SimplifyBranchSame.diff
simplify_arm.rs
simplify_cfg.main.SimplifyCfg-early-opt.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_cfg.main.SimplifyCfg-initial.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_cfg.rs
simplify_duplicate_unreachable_blocks.assert_nonzero_nonmax.SimplifyCfg-after-uninhabited-enum-branching.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_duplicate_unreachable_blocks.rs
simplify_if.main.SimplifyConstCondition-after-const-prop.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_if.main.SimplifyConstCondition-after-const-prop.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
simplify_if.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
simplify_locals_fixedpoint.foo.SimplifyLocals-final.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals_fixedpoint.foo.SimplifyLocals-final.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
simplify_locals_fixedpoint.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
simplify_locals_removes_unused_consts.main.SimplifyLocals-before-const-prop.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals_removes_unused_consts.main.SimplifyLocals-before-const-prop.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
simplify_locals_removes_unused_consts.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
simplify_locals_removes_unused_discriminant_reads.map.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals_removes_unused_discriminant_reads.rs
simplify_locals.c.SimplifyLocals-before-const-prop.diff Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
simplify_locals.d1.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals.d2.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals.expose_addr.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04: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
simplify_locals.t1.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals.t2.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals.t3.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_locals.t4.SimplifyLocals-before-const-prop.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_match.main.ConstProp.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
simplify_match.main.ConstProp.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
simplify_match.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
simplify_try_if_let.{impl#0}-append.SimplifyArmIdentity.diff
simplify_try_if_let.rs
slice_drop_shim.core.ptr-drop_in_place.[String].AddMovesForPackedDrops.before.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
slice_drop_shim.rs
spanview_block.main.built.after.html Add <meta charset="utf-8"> to -Zdump-mir-spanview output 2023-06-17 18:31:35 +10:00
spanview_block.rs
spanview_statement.main.built.after.html Add <meta charset="utf-8"> to -Zdump-mir-spanview output 2023-06-17 18:31:35 +10:00
spanview_statement.rs
spanview_terminator.main.built.after.html Add <meta charset="utf-8"> to -Zdump-mir-spanview output 2023-06-17 18:31:35 +10:00
spanview_terminator.rs
storage_ranges.main.nll.0.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
storage_ranges.rs
switch_to_self.rs Try enabling MatchBranchSimplification 2023-05-27 13:50:13 -04:00
switch_to_self.test.MatchBranchSimplification.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
tls_access.main.PreCodegen.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
tls_access.rs
uninhabited_enum_branching2.main.SimplifyCfg-after-uninhabited-enum-branching.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
uninhabited_enum_branching2.main.UninhabitedEnumBranching.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
uninhabited_enum_branching2.rs
uninhabited_enum_branching.main.SimplifyCfg-after-uninhabited-enum-branching.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
uninhabited_enum_branching.main.UninhabitedEnumBranching.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
uninhabited_enum_branching.rs
uninhabited_enum.process_never.SimplifyLocals-final.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
uninhabited_enum.process_void.SimplifyLocals-final.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
uninhabited_enum.rs
uninhabited_fallthrough_elimination.eliminate_fallthrough.UninhabitedEnumBranching.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
uninhabited_fallthrough_elimination.keep_fallthrough.UninhabitedEnumBranching.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
uninhabited_fallthrough_elimination.rs
unreachable_diverging.main.UnreachablePropagation.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
unreachable_diverging.main.UnreachablePropagation.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
unreachable_diverging.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
unreachable.main.UnreachablePropagation.panic-abort.diff Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
unreachable.main.UnreachablePropagation.panic-unwind.diff Bless tests 2023-06-23 18:36:25 +01:00
unreachable.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
unusual_item_types.{impl#0}-ASSOCIATED_CONSTANT.built.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
unusual_item_types.core.ptr-drop_in_place.Vec_i32_.AddMovesForPackedDrops.before.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04: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
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
while_storage.rs properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
while_storage.while_loop.PreCodegen.after.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
while_storage.while_loop.PreCodegen.after.panic-unwind.mir Bless tests 2023-06-23 18:36:25 +01: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.

Unit testing

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

// unit-test: 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.

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