rust/compiler/rustc_mir_transform/src
bors bb95b7dcd6 Auto merge of #112307 - lcnr:operand-ref, r=compiler-errors
mir opt + codegen: handle subtyping

fixes #107205

the same issue was caused in multiple places:
- mir opts: both copy and destination propagation
- codegen: assigning operands to locals (which also propagates values)

I changed codegen to always update the type in the operands used for locals which should guard against any new occurrences of this bug going forward. I don't know how to make mir optimizations more resilient here. Hopefully the added tests will be enough to detect any trivially wrong optimizations going forward.
2023-06-28 00:41:37 +00:00
..
coverage Auto merge of #113105 - matthiaskrgr:rollup-rci0uym, r=matthiaskrgr 2023-06-27 21:31:47 +00:00
inline EarlyBinder::new -> EarlyBinder::bind 2023-05-29 13:46:10 +02:00
abort_unwinding_calls.rs Add UnwindAction::Terminate 2023-04-06 09:34:16 +01:00
add_call_guards.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
add_moves_for_packed_drops.rs Remove DesugaringKind::Replace. 2023-05-25 17:40:46 +00:00
add_retag.rs Adt for Unique may contain a reference 2023-06-20 16:30:44 +02:00
check_alignment.rs Mention the panic function in CheckAlignment 2023-06-26 22:20:41 -04:00
check_const_item_mutation.rs Migrate mir_transform to translatable diagnostics 2023-05-02 16:24:18 +01:00
check_packed_ref.rs Migrate mir_transform to translatable diagnostics 2023-05-02 16:24:18 +01:00
check_unsafety.rs Auto merge of #112017 - Nemo157:unsafe-block-rustfix, r=eholk 2023-06-13 15:57:59 +00:00
cleanup_post_borrowck.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
const_debuginfo.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
const_goto.rs Disable two mir opts that are known to be unsound 2023-06-21 07:41:09 +00:00
const_prop_lint.rs fix diagnostic message 2023-06-01 14:45:19 +00:00
const_prop.rs make const-prop use cached RPO 2023-06-14 20:08:04 +00:00
copy_prop.rs unique borrows are mutating uses 2023-05-29 17:15:48 +02:00
ctfe_limit.rs Simplify back-edge logic. 2023-05-17 12:18:55 +00:00
dataflow_const_prop.rs Take MIR dataflow analyses by mutable reference. 2023-05-18 17:46:39 -04:00
dead_store_elimination.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
deduce_param_attrs.rs allow mutating function args through &raw const 2023-05-13 00:00:51 +02:00
deduplicate_blocks.rs Replace Body::basic_blocks() with field access 2022-08-26 14:27:08 +02:00
deref_separator.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
dest_prop.rs add FIXME's for a later refactoring 2023-06-19 09:16:26 +02:00
dump_mir.rs Write to stdout if - is given as output file 2023-06-06 17:53:29 -04:00
early_otherwise_branch.rs Remove unneeded field from SwitchTargets 2022-12-09 04:53:10 -08:00
elaborate_box_derefs.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
elaborate_drops.rs Remove DesugaringKind::Replace. 2023-05-25 17:40:46 +00:00
errors.rs Auto merge of #112017 - Nemo157:unsafe-block-rustfix, r=eholk 2023-06-13 15:57:59 +00:00
ffi_unwind_calls.rs Move expansion of query macros in rustc_middle to rustc_middle::query 2023-05-15 08:49:13 +02:00
function_item_references.rs Migrate predicates_of and caller_bounds to Clause 2023-06-26 23:12:03 +00:00
generator.rs Migrate item_bounds to ty::Clause 2023-06-22 18:34:23 +00:00
inline.rs Auto merge of #112693 - ericmarkmartin:use-more-placeref, r=spastorino 2023-06-27 00:34:49 +00:00
instsimplify.rs Stop turning transmutes into discriminants in mir-opt 2023-05-14 11:46:07 -07:00
large_enums.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
lib.rs Better error for non const PartialEq call generated by match 2023-06-18 05:24:38 +00:00
lower_intrinsics.rs Promote unchecked_add/sub/mul/shl/shr to mir::BinOp 2023-06-19 01:47:03 -07:00
lower_slice_len.rs Better error for non const PartialEq call generated by match 2023-06-18 05:24:38 +00:00
match_branches.rs Try enabling MatchBranchSimplification 2023-05-27 13:50:13 -04:00
multiple_return_terminators.rs Replace Body::basic_blocks() with field access 2022-08-26 14:27:08 +02:00
normalize_array_len.rs Do not consider borrowed Freeze locals as SSA. 2023-05-09 17:59:35 +00:00
nrvo.rs Use Option::is_some_and and Result::is_ok_and in the compiler 2023-05-24 14:20:41 +00:00
pass_manager.rs Profile MIR passes. 2023-05-15 20:27:12 +00:00
prettify.rs make reorder BB pass use cached RPO 2023-06-14 20:08:04 +00:00
ref_prop.rs Do not ICE on deeply nested borrows. 2023-05-13 10:29:05 +00:00
remove_noop_landing_pads.rs Rename Abort terminator to Terminate 2023-04-06 09:34:16 +01:00
remove_place_mention.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
remove_storage_markers.rs Make MIR basic blocks field public 2022-07-07 08:11:49 +02:00
remove_uninit_drops.rs Move mir::Fieldabi::FieldIdx 2023-03-28 22:22:37 -07:00
remove_unneeded_drops.rs Make MIR basic blocks field public 2022-07-07 08:11:49 +02:00
remove_zsts.rs Generalize operation. 2023-03-13 18:22:55 +00:00
required_consts.rs Only rewrite valtree-constants to patterns and keep other constants opaque 2023-05-31 14:02:57 +00:00
reveal_all.rs Also reveal constants before MIR opts. 2023-04-23 10:04:41 +00:00
separate_const_switch.rs Disable two mir opts that are known to be unsound 2023-06-21 07:41:09 +00:00
shim.rs Auto merge of #112307 - lcnr:operand-ref, r=compiler-errors 2023-06-28 00:41:37 +00:00
simplify_branches.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
simplify_comparison_integral.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
simplify.rs Profile MIR passes. 2023-05-15 20:27:12 +00:00
sroa.rs s/drain_filter/extract_if/ for Vec, Btree{Map,Set} and LinkedList 2023-06-14 09:28:54 +02:00
ssa.rs add FIXME's for a later refactoring 2023-06-19 09:16:26 +02:00
uninhabited_enum_branching.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
unreachable_prop.rs Fix typos in compiler 2023-04-10 22:02:52 +02:00