Auto merge of #87004 - JamieCunliffe:pgo-gc-sections, r=Mark-Simulacrum
Don't use gc-sections with profile-generate. When building with profile-generate don't call gc_sections as this can can sometimes strip out profile data. This missing information in the prof files can then result in missing functions when using the profile information. #78226 r? `@Mark-Simulacrum`
This commit is contained in:
commit
b548d9f1c6
1 changed files with 6 additions and 1 deletions
|
@ -1934,7 +1934,12 @@ fn add_order_independent_options(
|
|||
// Try to strip as much out of the generated object by removing unused
|
||||
// sections if possible. See more comments in linker.rs
|
||||
if !sess.link_dead_code() {
|
||||
let keep_metadata = crate_type == CrateType::Dylib;
|
||||
// If PGO is enabled sometimes gc_sections will remove the profile data section
|
||||
// as it appears to be unused. This can then cause the PGO profile file to lose
|
||||
// some functions. If we are generating a profile we shouldn't strip those metadata
|
||||
// sections to ensure we have all the data for PGO.
|
||||
let keep_metadata =
|
||||
crate_type == CrateType::Dylib || sess.opts.cg.profile_generate.enabled();
|
||||
cmd.gc_sections(keep_metadata);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue