mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-20 03:27:30 +00:00
![]() 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. |
||
---|---|---|
.. | ||
auxiliary | ||
extern-drop-glue.rs | ||
extern-generic.rs | ||
incremental-merging.rs | ||
inlining-from-extern-crate.rs | ||
local-drop-glue.rs | ||
local-generic.rs | ||
local-inlining-but-not-all.rs | ||
local-inlining.rs | ||
local-transitive-inlining.rs | ||
methods-are-with-self-type.rs | ||
regular-modules.rs | ||
shared-generics.rs | ||
statics.rs | ||
vtable-through-const.rs |