rust/tests/mir-opt/pre-codegen
DianQK c16c22cc9c
Simplify the canonical clone method to copy
The optimized clone method ends up as the following MIR:

```
_2 = copy ((*_1).0: i32);
_3 = copy ((*_1).1: u64);
_4 = copy ((*_1).2: [i8; 3]);
_0 = Foo { a: move _2, b: move _3, c: move _4 };
```

We can transform this to:

```
_0 = copy (*_1);
```
2024-09-14 13:30:35 +08:00
..
README.md Add mir-opt tests to track MIR quality. 2023-04-23 17:10:53 +00:00
chained_comparison.bitand.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
chained_comparison.naive.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
chained_comparison.returning.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
chained_comparison.rs [AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives 2024-02-22 16:04:04 +00:00
checked_ops.checked_shl.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
checked_ops.checked_shl.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
checked_ops.rs Make `checked` ops emit *unchecked* LLVM operations where feasible 2024-04-18 18:11:21 -07:00
checked_ops.step_forward.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
checked_ops.step_forward.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
clone_as_copy.clone_as_copy.PreCodegen.after.mir Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
clone_as_copy.enum_clone_as_copy.PreCodegen.after.mir Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
clone_as_copy.rs Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
derived_ord.rs Add a MIR pre-codegen test for derived PartialOrd 2024-03-23 23:06:44 -07:00
derived_ord.{impl#0}-partial_cmp.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
duplicate_switch_targets.rs Enable more mir-opt tests in debug builds 2024-03-22 20:14:39 -04:00
duplicate_switch_targets.ub_if_b.PreCodegen.after.mir Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
intrinsics.f_u64.PreCodegen.after.mir At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
intrinsics.f_unit.PreCodegen.after.mir At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
intrinsics.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
issue_117368_print_invalid_constant.main.GVN.32bit.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_117368_print_invalid_constant.main.GVN.32bit.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_117368_print_invalid_constant.main.GVN.64bit.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_117368_print_invalid_constant.main.GVN.64bit.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
issue_117368_print_invalid_constant.rs ignore/fix layout-sensitive tests 2024-08-31 23:56:45 +02:00
loops.filter_mapped.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
loops.int_range.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
loops.mapped.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
loops.rs Remove some only- clauses from mir-opt tests 2024-03-18 10:07:43 -04:00
loops.vec_move.PreCodegen.after.mir Perform instsimplify before inline to eliminate some trivial calls 2024-07-29 18:14:35 +08:00
matches_macro.issue_77355_opt.PreCodegen.after.mir Remove ConstGoto and SeparateConstSwitch. 2024-02-09 21:13:53 +00:00
matches_macro.rs Remove ConstGoto and SeparateConstSwitch. 2024-02-09 21:13:53 +00:00
mem_replace.manual_replace.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
mem_replace.manual_replace.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
mem_replace.mem_replace.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
mem_replace.mem_replace.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
mem_replace.rs Enable more mir-opt tests in debug builds 2024-03-22 20:14:39 -04:00
no_inlined_clone.rs Perform instsimplify before inline to eliminate some trivial calls 2024-07-29 18:14:35 +08:00
no_inlined_clone.{impl#0}-clone.PreCodegen.after.mir Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
optimizes_into_variable.main.GVN.32bit.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
optimizes_into_variable.main.GVN.32bit.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
optimizes_into_variable.main.GVN.64bit.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
optimizes_into_variable.main.GVN.64bit.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
optimizes_into_variable.main.PreCodegen.after.32bit.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
optimizes_into_variable.main.PreCodegen.after.32bit.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
optimizes_into_variable.main.PreCodegen.after.64bit.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
optimizes_into_variable.main.PreCodegen.after.64bit.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
optimizes_into_variable.main.ScalarReplacementOfAggregates.64bit.panic-abort.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
optimizes_into_variable.main.ScalarReplacementOfAggregates.64bit.panic-unwind.diff Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
optimizes_into_variable.main.SimplifyLocals-final.after.32bit.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
optimizes_into_variable.main.SimplifyLocals-final.after.32bit.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
optimizes_into_variable.main.SimplifyLocals-final.after.64bit.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
optimizes_into_variable.main.SimplifyLocals-final.after.64bit.panic-unwind.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
optimizes_into_variable.rs Use `-Zdump-mir-exclude-alloc-bytes` in some mir-opt tests 2024-06-26 15:05:01 -07:00
ptr_offset.demo_byte_add_fat.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
ptr_offset.demo_byte_add_fat.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
ptr_offset.demo_byte_add_thin.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
ptr_offset.demo_byte_add_thin.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
ptr_offset.rs Add a mir-opt test for `byte_add` on pointers 2024-04-21 11:08:36 -07:00
range_iter.forward_loop.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
range_iter.forward_loop.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
range_iter.inclusive_loop.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
range_iter.inclusive_loop.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
range_iter.range_inclusive_iter_next.PreCodegen.after.panic-abort.mir At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
range_iter.range_inclusive_iter_next.PreCodegen.after.panic-unwind.mir At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
range_iter.range_iter_next.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
range_iter.range_iter_next.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
range_iter.rs Remove some only- clauses from mir-opt tests 2024-03-18 10:07:43 -04:00
simple_option_map.ezmap.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
simple_option_map.rs Remove some only- clauses from mir-opt tests 2024-03-18 10:07:43 -04:00
slice_filter.rs Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
slice_filter.variant_a-{closure#0}.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_filter.variant_b-{closure#0}.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_index.rs Update mir-opt filechecks 2024-08-18 15:52:23 -07:00
slice_index.slice_get_mut_usize.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_index.slice_get_mut_usize.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_index.slice_index_range.PreCodegen.after.panic-abort.mir At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
slice_index.slice_index_range.PreCodegen.after.panic-unwind.mir At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
slice_index.slice_index_usize.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_index.slice_index_usize.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_index.slice_ptr_get_unchecked_range.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.enumerated_loop.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.forward_loop.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.forward_loop.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.range_loop.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.range_loop.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.reverse_loop.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.reverse_loop.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.rs Make MIR inlining costs in build-std independent of config.toml 2024-06-23 01:48:41 -07:00
slice_iter.slice_iter_generic_is_empty.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.slice_iter_generic_is_empty.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-abort.mir Avoid MIR bloat in inlining 2024-07-01 05:17:13 -07:00
slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-unwind.mir Avoid MIR bloat in inlining 2024-07-01 05:17:13 -07:00
slice_iter.slice_iter_next.PreCodegen.after.panic-abort.mir Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
slice_iter.slice_iter_next.PreCodegen.after.panic-unwind.mir Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
spans.outer.PreCodegen.after.panic-abort.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
spans.outer.PreCodegen.after.panic-unwind.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
spans.rs At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
try_identity.new.PreCodegen.after.mir Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
try_identity.old.PreCodegen.after.mir Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
try_identity.rs rustfmt `tests/mir-opt`. 2024-06-03 14:17:16 +10:00
vec_deref.rs Add a MIR pre-codegen test for Vec::deref 2024-04-21 11:08:36 -07:00
vec_deref.vec_deref_to_slice.PreCodegen.after.panic-abort.mir Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00
vec_deref.vec_deref_to_slice.PreCodegen.after.panic-unwind.mir Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00

README.md

The goal of this directory is to track the quality of MIR that is given to codegen in a standard -O condiguration.

As such, feel free to --bless whatever changes you get here, so long as doing so doesn't add substantially more MIR.