rust/compiler/rustc_mir_transform/src
Matthias Krüger ab18da61f4
Rollup merge of #111441 - cjgillot:issue-111422, r=JakobDegen
Verify copies of mutable pointers in 2 stages in ReferencePropagation

Fixes #111422

In the first stage, we mark the copies as reborrows, to be checked later.
In the second stage, we walk the reborrow chains to verify that all stages are fully replacable.

The replacement itself mirrors the check, and iterates through the reborrow chain.

r? ``````@RalfJung``````
cc ``````@JakobDegen``````
2023-05-12 07:11:13 +02:00
..
coverage Auto merge of #97368 - tmandry:coverage-underflow, r=jyn514 2023-04-26 12:03:13 +00:00
inline use EarlyBinder in tcx.(try_)subst_mir_and_normalize_erasing_regions 2023-05-06 22:32:39 -06: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 Spelling - compiler 2023-04-17 16:09:18 -04:00
add_retag.rs Spelling - compiler 2023-04-17 16:09:18 -04:00
check_alignment.rs Box AssertKind 2023-05-01 23:12: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 Migrate mir_transform to translatable diagnostics 2023-05-02 16:24:18 +01: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 ConstGoto opt in cleanup blocks 2023-01-26 03:50:37 -08:00
const_prop.rs Propagate PlaceElem::Index. 2023-05-07 11:10:52 +00:00
const_prop_lint.rs Migrate mir_transform to translatable diagnostics 2023-05-02 16:24:18 +01:00
copy_prop.rs Do not consider borrowed Freeze locals as SSA. 2023-05-09 17:59:35 +00:00
ctfe_limit.rs don't into self 2023-02-16 18:30:25 +01:00
dataflow_const_prop.rs Extract handle_set_discriminant. 2023-05-09 17:27:58 +00:00
dead_store_elimination.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
deduce_param_attrs.rs Check freeze with right param-env 2023-04-16 23:09:57 +00: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 Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
dump_mir.rs Auto merge of #105220 - oli-obk:feeding, r=cjgillot 2022-12-06 03:47:41 +00: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 Restrict From<S> for {D,Subd}iagnosticMessage. 2023-05-03 08:44:39 +10:00
errors.rs Migrate mir_transform to translatable diagnostics 2023-05-02 16:24:18 +01:00
ffi_unwind_calls.rs Migrate mir_transform to translatable diagnostics 2023-05-02 16:24:18 +01:00
function_item_references.rs Migrate mir_transform to translatable diagnostics 2023-05-02 16:24:18 +01:00
generator.rs Rollup merge of #111004 - clubby789:migrate-mir-transform, r=oli-obk 2023-05-08 09:30:22 -07:00
inline.rs make subst_mir take EarlyBinder 2023-05-06 22:32:39 -06:00
instsimplify.rs Rename InstCombine to InstSimplify 2023-05-06 23:22:32 -04:00
large_enums.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
lib.rs Implement SSA-based reference propagation. 2023-05-09 17:59:34 +00:00
lower_intrinsics.rs Rollup merge of #111004 - clubby789:migrate-mir-transform, r=oli-obk 2023-05-08 09:30:22 -07:00
lower_slice_len.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
match_branches.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00: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 Disable nrvo mir opt 2023-05-08 03:55:41 -07:00
pass_manager.rs Use zero based indexing for pass_count 2022-12-02 15:55:24 +00:00
ref_prop.rs Avoid shadowing. 2023-05-10 19:23:01 +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 Don't ICE when encountering ConstKind::Error in RequiredConstsVisitor 2022-11-10 05:14:04 +00:00
reveal_all.rs Also reveal constants before MIR opts. 2023-04-23 10:04:41 +00:00
separate_const_switch.rs offset_of 2023-04-21 02:14:02 -07:00
shim.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
simplify.rs Rename InstCombine to InstSimplify 2023-05-06 23:22:32 -04: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
sroa.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
ssa.rs Use visit_assign to detect SSA locals. 2023-05-10 15:26:51 +00: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