rust/compiler/rustc_codegen_ssa/src
Mark Rousskov 4c002fce9d Omit non-needs_drop drop_in_place in vtables
This replaces the drop_in_place reference with null in vtables. On
librustc_driver.so, this drops about ~17k dynamic relocations from the
output, since many vtables can now be placed in read-only memory, rather
than having a relocated pointer included.

This makes a tradeoff by adding a null check at vtable call sites.
That's hard to avoid without changing the vtable format (e.g., to use a
pc-relative relocation instead of an absolute address, and avoid the
dynamic relocation that way). But it seems likely that the check is
cheap at runtime.
2024-05-27 16:26:56 -04:00
..
back Auto merge of #125463 - GuillaumeGomez:rollup-287wx4y, r=GuillaumeGomez 2024-05-24 03:04:06 +00:00
debuginfo Rename Unsafe to Safety 2024-05-17 18:33:37 -03:00
mir Omit non-needs_drop drop_in_place in vtables 2024-05-27 16:26:56 -04:00
traits Rollup merge of #125148 - RalfJung:codegen-sh, r=scottmcm 2024-05-27 13:10:34 +02:00
assert_module_sources.rs Remove #[macro_use] extern crate tracing from rustc_codegen_ssa. 2024-05-23 18:02:40 +10:00
base.rs Rollup merge of #125148 - RalfJung:codegen-sh, r=scottmcm 2024-05-27 13:10:34 +02:00
codegen_attrs.rs Auto merge of #125410 - fmease:adj-lint-diag-api, r=nnethercote 2024-05-27 08:44:12 +00:00
common.rs Remove extern crate rustc_middle from numerous crates. 2024-04-29 14:50:45 +10:00
errors.rs emit an error if we can't find a path to the self-contained linker 2024-05-23 15:47:35 +00:00
lib.rs Remove #[macro_use] extern crate tracing from rustc_codegen_ssa. 2024-05-23 18:02:40 +10:00
meth.rs Omit non-needs_drop drop_in_place in vtables 2024-05-27 16:26:56 -04:00
mono_item.rs Remove #[macro_use] extern crate tracing from rustc_codegen_ssa. 2024-05-23 18:02:40 +10:00
size_of_val.rs Remove #[macro_use] extern crate tracing from rustc_codegen_ssa. 2024-05-23 18:02:40 +10:00
target_features.rs Remove extern crate rustc_middle from numerous crates. 2024-04-29 14:50:45 +10:00