1
Fork 0
rust/compiler/rustc_mir_transform/src
Wesley Wiser ef57f249a2 [code coverage] Fix missing dead code in modules that are never called
The issue here is that the logic used to determine which CGU to put the
dead function stubs in doesn't handle cases where a module is never
assigned to a CGU.

The partitioning logic also caused issues in #85461 where inline
functions were duplicated into multiple CGUs resulting in duplicate
symbols.

This commit fixes the issue by removing the complex logic used to assign
dead code stubs to CGUs and replaces it with a much simplier model: we
pick one CGU to hold all the dead code stubs. We pick a CGU which has
exported items which increases the likelihood the linker won't throw
away our dead functions and we pick the smallest to minimize the impact
on compilation times for crates with very large CGUs.

Fixes #86177
Fixes #85718
Fixes #79622
2021-12-20 17:08:29 -05:00
..
coverage [code coverage] Fix missing dead code in modules that are never called 2021-12-20 17:08:29 -05:00
inline Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
abort_unwinding_calls.rs Treat drop_in_place as nounwind with -Z panic-in-drop=abort 2021-09-10 14:18:15 +01:00
add_call_guards.rs
add_moves_for_packed_drops.rs Move the dataflow framework to its own crate. 2021-09-07 19:57:07 +02:00
add_retag.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
check_const_item_mutation.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
check_packed_ref.rs give more help in the unaligned_references lint 2021-12-09 16:48:51 -05:00
check_unsafety.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
cleanup_post_borrowck.rs
const_debuginfo.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
const_goto.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
const_prop.rs Return an error when eval_rvalue_with_identities fails 2021-12-14 17:09:00 +01:00
deaggregator.rs
deduplicate_blocks.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
dest_prop.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
dump_mir.rs Inline on_mir_pass and add inline to dump_mir 2021-10-14 15:26:59 -05:00
early_otherwise_branch.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
elaborate_drops.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
function_item_references.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
generator.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
inline.rs Move generator check earlier in inlining. 2021-12-15 19:45:40 +01:00
instcombine.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
lib.rs Stabilize iter::zip. 2021-12-14 18:50:31 -04:00
lower_intrinsics.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
lower_slice_len.rs Update passes with new interface 2021-12-02 17:31:38 -08:00
marker.rs Add pass for simple phase change 2021-12-02 17:31:38 -08:00
match_branches.rs Update passes with new interface 2021-12-02 17:31:38 -08:00
multiple_return_terminators.rs Update passes with new interface 2021-12-02 17:31:38 -08:00
normalize_array_len.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
nrvo.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
pass_manager.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
remove_false_edges.rs Separate RemoveFalseEdges from SimplifyBranches 2021-11-30 17:14:48 -08:00
remove_noop_landing_pads.rs Update passes with new interface 2021-12-02 17:31:38 -08:00
remove_storage_markers.rs Update passes with new interface 2021-12-02 17:31:38 -08:00
remove_uninit_drops.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
remove_unneeded_drops.rs Add rationale for RemoveUnneededDrops 2021-11-30 17:25:30 -08:00
remove_zsts.rs Update passes with new interface 2021-12-02 17:31:38 -08:00
required_consts.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
reveal_all.rs use try_normalize_erasing_regions in RevealAllVisitor 2021-12-13 23:13:24 +01:00
separate_const_switch.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
shim.rs Rollup merge of #91638 - scottmcm:less-inband-2-of-28, r=petrochenkov 2021-12-08 11:09:01 +01:00
simplify.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
simplify_branches.rs Auto merge of #91279 - scottmcm:small-refactor, r=nagisa 2021-12-06 13:04:18 +00:00
simplify_comparison_integral.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
simplify_try.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00
uninhabited_enum_branching.rs Update passes with new interface 2021-12-02 17:31:38 -08:00
unreachable_prop.rs Remove in_band_lifetimes from rustc_mir_transform 2021-12-07 21:04:40 -08:00