From 2cd77d671c365df0c24f867532e67b13ebae5904 Mon Sep 17 00:00:00 2001 From: Yi Kong Date: Thu, 6 Jun 2024 03:05:04 +0900 Subject: [PATCH] Enable MLGO inliner optimization for optimize_for_size cases This helps reduce binary size for these projects by ~3%. Test: presubmit Bug: 342090838 Change-Id: Ie1e0586ddf5f40aa1e81fc2628a6499093de9699 --- cc/compiler.go | 1 + cc/lto.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cc/compiler.go b/cc/compiler.go index d13cd9506..83080fd72 100644 --- a/cc/compiler.go +++ b/cc/compiler.go @@ -695,6 +695,7 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps if ctx.optimizeForSize() { flags.Local.CFlags = append(flags.Local.CFlags, "-Oz") + flags.Local.LdFlags = append(flags.Local.LdFlags, "-Wl,-mllvm,-enable-ml-inliner=release") } // Exclude directories from manual binder interface allowed list. diff --git a/cc/lto.go b/cc/lto.go index a084db7be..60eb4d6b1 100644 --- a/cc/lto.go +++ b/cc/lto.go @@ -144,7 +144,7 @@ func (lto *lto) flags(ctx ModuleContext, flags Flags) Flags { if !ctx.Config().IsEnvFalse("THINLTO_USE_MLGO") { // Register allocation MLGO flags for ARM64. - if ctx.Arch().ArchType == android.Arm64 { + if ctx.Arch().ArchType == android.Arm64 && !ctx.optimizeForSize() { ltoLdFlags = append(ltoLdFlags, "-Wl,-mllvm,-regalloc-enable-advisor=release") } // Flags for training MLGO model.