rust/tests/mir-opt/pre-codegen
bors fa0dc208d0 Auto merge of #119672 - cjgillot:dse-sandwich, r=oli-obk
Sandwich MIR optimizations between DSE.

This PR reorders MIR optimization passes in an attempt to increase their efficiency.

- Stop running CopyProp before GVN, it's useless as GVN will do the same thing anyway. Instead, we perform CopyProp at the end of the pipeline, to ensure we do not emit copy/move chains.
- Run DSE before GVN, as it increases the probability to have single-assignment locals.
- Run DSE after the final CopyProp to turn copies into moves.

r? `@ghost`
2024-01-16 11:34:16 +00:00
..
chained_comparison.bitand.PreCodegen.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
chained_comparison.naive.PreCodegen.after.mir update tests that are ignored by debug 2023-09-01 04:01:54 +08:00
chained_comparison.returning.PreCodegen.after.mir update tests that are ignored by debug 2023-09-01 04:01:54 +08:00
chained_comparison.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
checked_ops.checked_shl.PreCodegen.after.mir Enable GVN by default. 2023-12-24 20:08:57 +00:00
checked_ops.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
checked_ops.step_forward.PreCodegen.after.mir Preserve DebugInfo in DeadStoreElimination. 2023-10-06 15:46:11 +00:00
duplicate_switch_targets.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
duplicate_switch_targets.ub_if_b.PreCodegen.after.mir Only emit != assumptions if the otherwise target is reachable. 2023-10-31 11:44:23 +00:00
intrinsics.f_u64.PreCodegen.after.mir Always propagate into operands. 2023-07-20 21:30:51 +00:00
intrinsics.f_unit.PreCodegen.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
intrinsics.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
issue_117368_print_invalid_constant.main.GVN.32bit.panic-abort.diff Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
issue_117368_print_invalid_constant.main.GVN.32bit.panic-unwind.diff Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
issue_117368_print_invalid_constant.main.GVN.64bit.panic-abort.diff Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
issue_117368_print_invalid_constant.main.GVN.64bit.panic-unwind.diff Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
issue_117368_print_invalid_constant.rs Make ui into mir-opt test. 2023-11-01 16:49:18 +00:00
loops.filter_mapped.PreCodegen.after.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
loops.int_range.PreCodegen.after.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
loops.mapped.PreCodegen.after.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
loops.rs Enable GVN by default. 2023-12-24 20:08:57 +00:00
loops.vec_move.PreCodegen.after.mir make MIR less verbose 2023-08-24 14:26:26 +02:00
mem_replace.manual_replace.PreCodegen.after.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
mem_replace.mem_replace.PreCodegen.after.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
mem_replace.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
optimizes_into_variable.main.GVN.32bit.panic-abort.diff Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
optimizes_into_variable.main.GVN.32bit.panic-unwind.diff Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
optimizes_into_variable.main.GVN.64bit.panic-abort.diff Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
optimizes_into_variable.main.GVN.64bit.panic-unwind.diff Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00: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 Reorder early post-inlining passes. 2024-01-07 01:42:57 +00:00
optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-unwind.diff Reorder early post-inlining passes. 2024-01-07 01:42:57 +00:00
optimizes_into_variable.main.ScalarReplacementOfAggregates.64bit.panic-abort.diff Reorder early post-inlining passes. 2024-01-07 01:42:57 +00:00
optimizes_into_variable.main.ScalarReplacementOfAggregates.64bit.panic-unwind.diff Reorder early post-inlining passes. 2024-01-07 01:42:57 +00: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 Replace legacy ConstProp by GVN. 2023-12-24 20:08:57 +00:00
range_iter.forward_loop.PreCodegen.after.panic-abort.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
range_iter.forward_loop.PreCodegen.after.panic-unwind.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
range_iter.inclusive_loop.PreCodegen.after.panic-abort.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
range_iter.inclusive_loop.PreCodegen.after.panic-unwind.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
range_iter.range_inclusive_iter_next.PreCodegen.after.panic-abort.mir Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
range_iter.range_inclusive_iter_next.PreCodegen.after.panic-unwind.mir Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
range_iter.range_iter_next.PreCodegen.after.panic-abort.mir Enable GVN by default. 2023-12-24 20:08:57 +00:00
range_iter.range_iter_next.PreCodegen.after.panic-unwind.mir Enable GVN by default. 2023-12-24 20:08:57 +00:00
range_iter.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
README.md Add mir-opt tests to track MIR quality. 2023-04-23 17:10:53 +00:00
simple_option_map.ezmap.PreCodegen.after.mir Enable GVN by default. 2023-12-24 20:08:57 +00:00
simple_option_map.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
slice_filter.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
slice_filter.variant_a-{closure#0}.PreCodegen.after.mir Avoid recording no-op replacements. 2024-01-07 13:54:05 +00:00
slice_filter.variant_b-{closure#0}.PreCodegen.after.mir Enable GVN by default. 2023-12-24 20:08:57 +00:00
slice_index.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
slice_index.slice_get_mut_usize.PreCodegen.after.panic-abort.mir Auto merge of #119672 - cjgillot:dse-sandwich, r=oli-obk 2024-01-16 11:34:16 +00:00
slice_index.slice_get_mut_usize.PreCodegen.after.panic-unwind.mir Auto merge of #119672 - cjgillot:dse-sandwich, r=oli-obk 2024-01-16 11:34:16 +00:00
slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-abort.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-unwind.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
slice_index.slice_index_range.PreCodegen.after.panic-abort.mir Also consider call and yield as MIR SSA. 2023-10-08 16:05:26 +00:00
slice_index.slice_index_range.PreCodegen.after.panic-unwind.mir Also consider call and yield as MIR SSA. 2023-10-08 16:05:26 +00:00
slice_index.slice_index_usize.PreCodegen.after.panic-abort.mir Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
slice_index.slice_index_usize.PreCodegen.after.panic-unwind.mir Bless tests 2023-06-23 18:36:25 +01:00
slice_iter.enumerated_loop.PreCodegen.after.panic-abort.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
slice_iter.forward_loop.PreCodegen.after.panic-abort.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
slice_iter.forward_loop.PreCodegen.after.panic-unwind.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
slice_iter.range_loop.PreCodegen.after.panic-abort.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
slice_iter.range_loop.PreCodegen.after.panic-unwind.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
slice_iter.reverse_loop.PreCodegen.after.panic-abort.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
slice_iter.reverse_loop.PreCodegen.after.panic-unwind.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
slice_iter.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-abort.mir Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-unwind.mir Turn copy into moves during DSE. 2023-07-19 09:59:12 +00: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 Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
spans.outer.PreCodegen.after.panic-unwind.mir Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
spans.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
try_identity.new.PreCodegen.after.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
try_identity.old.PreCodegen.after.mir Sandwich MIR optimizations between DSE. 2024-01-11 09:58:19 +00:00
try_identity.rs Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00

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.