Switch to -ffunction-sections by default

With lld the perf difference is within noise while producing slightly
(or in exceptional cases significantly) smaller binaries.
This commit is contained in:
bjorn3 2024-12-05 12:03:58 +00:00
parent a767a103bb
commit 65c5c7f8cf

View File

@ -333,10 +333,7 @@ fn make_module(sess: &Session, name: String) -> UnwindModule<ObjectModule> {
let mut builder =
ObjectBuilder::new(isa, name + ".o", cranelift_module::default_libcall_names()).unwrap();
// Unlike cg_llvm, cg_clif defaults to disabling -Zfunction-sections. For cg_llvm binary size
// is important, while cg_clif cares more about compilation times. Enabling -Zfunction-sections
// can easily double the amount of time necessary to perform linking.
builder.per_function_section(sess.opts.unstable_opts.function_sections.unwrap_or(false));
builder.per_function_section(sess.opts.unstable_opts.function_sections.unwrap_or(true));
UnwindModule::new(ObjectModule::new(builder), true)
}