1
Fork 0
rust/compiler/rustc_mir_transform/src
Matthias Krüger f5a143f796
Rollup merge of #134797 - spastorino:ergonomic-ref-counting-1, r=nikomatsakis
Ergonomic ref counting

This is an experimental first version of ergonomic ref counting.

This first version implements most of the RFC but doesn't implement any of the optimizations. This was left for following iterations.

RFC: https://github.com/rust-lang/rfcs/pull/3680
Tracking issue: https://github.com/rust-lang/rust/issues/132290
Project goal: https://github.com/rust-lang/rust-project-goals/issues/107

r? ```@nikomatsakis```
2025-03-07 19:15:33 +01:00
..
coroutine Generate the right MIR for by use closures 2025-03-06 17:58:32 -03:00
coverage Auto merge of #135726 - jdonszelmann:attr-parsing, r=oli-obk 2025-02-24 23:07:24 +00:00
inline use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00
shim Rustfmt 2025-02-08 22:12:13 +00:00
abort_unwinding_calls.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
add_call_guards.rs Factor out check whether an unwind action generates invoke 2025-03-06 20:00:25 +01:00
add_moves_for_packed_drops.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
add_retag.rs Rustfmt 2025-02-08 22:12:13 +00:00
add_subtyping_projections.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
check_alignment.rs Detect (non-raw) borrows of null ZST pointers in CheckNull 2025-02-08 21:38:16 +00:00
check_call_recursion.rs Rustfmt 2025-02-08 22:12:13 +00:00
check_const_item_mutation.rs Rename ClearCrossCrate::assert_crate_local. 2025-02-21 07:12:13 +11:00
check_inline.rs Move methods from Map to TyCtxt, part 2. 2025-02-18 10:17:44 +11:00
check_null.rs Detect (non-raw) borrows of null ZST pointers in CheckNull 2025-02-08 21:38:16 +00:00
check_packed_ref.rs use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00
check_pointers.rs Rollup merge of #136610 - Jarcho:range_idx, r=Noratrieb 2025-02-24 02:11:32 -05:00
check_undefined_transmutes.rs Rename rustc_middle::Ty::is_unsafe_ptr to is_raw_ptr 2025-02-10 12:49:18 +00:00
cleanup_post_borrowck.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
copy_prop.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
coroutine.rs Rename ClearCrossCrate::assert_crate_local. 2025-02-21 07:12:13 +11:00
cost_checker.rs use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00
cross_crate_inline.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
ctfe_limit.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
dataflow_const_prop.rs Implement MIR, CTFE, and codegen for unsafe binders 2025-01-31 17:19:53 +00:00
dead_store_elimination.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
deduce_param_attrs.rs Remove obsolete comment from DeduceReadOnly 2025-03-04 12:26:01 +01:00
deref_separator.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
dest_prop.rs Implement MIR, CTFE, and codegen for unsafe binders 2025-01-31 17:19:53 +00:00
dump_mir.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
early_otherwise_branch.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
elaborate_box_derefs.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
elaborate_drop.rs Auto merge of #136539 - matthewjasper:late-normalize-errors, r=compiler-errors 2025-02-19 07:49:08 +00:00
elaborate_drops.rs Improve MirPatch documentation and naming. 2025-02-18 13:12:50 +11:00
errors.rs Remove redundant to_ident_string calls 2025-01-27 01:23:34 +00:00
ffi_unwind_calls.rs compiler: use is_rustic_abi in mir_transform 2025-03-04 18:21:56 -08:00
function_item_references.rs Rename ClearCrossCrate::assert_crate_local. 2025-02-21 07:12:13 +11:00
gvn.rs rename BackendRepr::Vector → SimdVector 2025-02-28 17:17:45 +01:00
impossible_predicates.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
inline.rs Inline FnOnce once again 2025-03-03 23:30:18 +00:00
instsimplify.rs Move methods from Map to TyCtxt, part 2. 2025-02-18 10:17:44 +11:00
jump_threading.rs Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
known_panics_lint.rs Fix binding mode problems 2025-02-22 00:13:19 +00:00
large_enums.rs Use MirPatch in EnumSizeOpt. 2025-02-18 12:52:56 +11:00
lib.rs Check signature WF when lowering MIR body 2025-03-03 23:09:42 +00:00
lint.rs rename BitSet to DenseBitSet 2025-01-11 11:34:01 +00:00
lint_tail_expr_drop_order.rs Print out destructor 2025-02-26 19:03:29 +00:00
lower_intrinsics.rs Contracts core intrinsics. 2025-02-03 12:53:57 -08:00
lower_slice_len.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
match_branches.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
mentioned_items.rs Fix binding mode problems 2025-02-22 00:13:19 +00:00
multiple_return_terminators.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
nrvo.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
pass_manager.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
patch.rs Rename ClearCrossCrate::assert_crate_local. 2025-02-21 07:12:13 +11:00
post_analysis_normalize.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
post_drop_elaboration.rs Make check_live_drops into a MirLint. 2024-09-10 09:11:17 +10:00
prettify.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
promote_consts.rs Rustfmt 2025-02-08 22:12:13 +00:00
ref_prop.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
remove_noop_landing_pads.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
remove_place_mention.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
remove_storage_markers.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
remove_uninit_drops.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
remove_unneeded_drops.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
remove_zsts.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
required_consts.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
sanity_check.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
shim.rs Don't project into NonNull when dropping a Box 2025-02-15 23:20:52 -08:00
simplify.rs Fix binding mode problems 2025-02-22 00:13:19 +00:00
simplify_branches.rs Fix binding mode problems 2025-02-22 00:13:19 +00:00
simplify_comparison_integral.rs Fix binding mode problems 2025-02-22 00:13:19 +00:00
single_use_consts.rs Inline and replace Statement::replace_nop. 2025-02-18 13:43:43 +11:00
sroa.rs Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
ssa.rs Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
strip_debuginfo.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
unreachable_enum_branching.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
unreachable_prop.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
validate.rs MIR validation: add comment explaining the limitations of CfgChecker 2025-02-06 11:36:58 +01:00