Skip to content

Commit 55f4641

Browse files
committed
Auto merge of #100035 - workingjubilee:merge-functions, r=nikic
Enable function merging when opt is for size It is, of course, natural to want to merge aliasing functions when optimizing for code size, since that can eliminate several bytes. And an exhaustive match helps make the code less brittle. Closes #98215.
2 parents affe0d3 + 80c9012 commit 55f4641

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

compiler/rustc_codegen_ssa/src/back/write.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,11 @@ impl ModuleConfig {
256256
{
257257
MergeFunctions::Disabled => false,
258258
MergeFunctions::Trampolines | MergeFunctions::Aliases => {
259-
sess.opts.optimize == config::OptLevel::Default
260-
|| sess.opts.optimize == config::OptLevel::Aggressive
259+
use config::OptLevel::*;
260+
match sess.opts.optimize {
261+
Aggressive | Default | SizeMin | Size => true,
262+
Less | No => false,
263+
}
261264
}
262265
},
263266

src/test/codegen/merge-functions.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
// compile-flags: -O
1+
// revisions: O Os
2+
//[Os] compile-flags: -Copt-level=s
3+
//[O] compile-flags: -O
24
#![crate_type = "lib"]
35

4-
// CHECK: @func2 = {{.*}}alias{{.*}}@func1
6+
// CHECK: @func{{2|1}} = {{.*}}alias{{.*}}@func{{1|2}}
57

68
#[no_mangle]
79
pub fn func1(c: char) -> bool {

0 commit comments

Comments
 (0)