Revert "Enable full LTO optimization by default"
Revert submission 2988057-default-full-lto
Reason for revert: broken test
Reverted changes: /q/submissionid:2988057-default-full-lto
Bug: 330811070
Change-Id: I46487ad92d25741347c7f30e944a5794941d5d69
diff --git a/cc/lto.go b/cc/lto.go
index e2d99eb..05fa8ee 100644
--- a/cc/lto.go
+++ b/cc/lto.go
@@ -54,9 +54,6 @@
// Use -fwhole-program-vtables cflag.
Whole_program_vtables *bool
-
- // Use --lto-O0 flag.
- Lto_O0 *bool
}
type lto struct {
@@ -113,8 +110,12 @@
ltoCFlags := []string{"-flto=thin", "-fsplit-lto-unit"}
var ltoLdFlags []string
- // Do not perform costly LTO optimizations for Eng builds.
- if Bool(lto.Properties.Lto_O0) || ctx.Config().Eng() {
+ // The module did not explicitly turn on LTO. Only leverage LTO's
+ // better dead code elimination and CFG simplification, but do
+ // not perform costly optimizations for a balance between compile
+ // time, binary size and performance.
+ // Apply the same for Eng builds as well.
+ if !lto.ThinLTO() || ctx.Config().Eng() {
ltoLdFlags = append(ltoLdFlags, "-Wl,--lto-O0")
}