Do not perform AFDO or optimizing LTO for eng builds

Afdo creates more variants to build, and optimizing LTO is costly to
perform. Turn off these two optimizations for eng builds for a faster
build speed.

This reduces total C/C++ invocation time for aosp_arm64-eng by 6.28%.

Test: presubmit
Bug: 307753064
Change-Id: Ibac4269c66a64e896dba2074b607d71a2da37546
This commit is contained in:
Yi Kong 2023-12-04 14:52:53 +09:00
parent 198583ed20
commit 9723e338ee
3 changed files with 12 additions and 1 deletions

View file

@ -64,6 +64,13 @@ func (afdo *afdo) props() []interface{} {
return []interface{}{&afdo.Properties}
}
func (afdo *afdo) begin(ctx BaseModuleContext) {
// Disable on eng builds for faster build.
if ctx.Config().Eng() {
afdo.Properties.Afdo = false
}
}
// afdoEnabled returns true for binaries and shared libraries
// that set afdo prop to True and there is a profile available
func (afdo *afdo) afdoEnabled() bool {

View file

@ -2401,6 +2401,9 @@ func (c *Module) begin(ctx BaseModuleContext) {
if c.coverage != nil {
c.coverage.begin(ctx)
}
if c.afdo != nil {
c.afdo.begin(ctx)
}
if c.lto != nil {
c.lto.begin(ctx)
}

View file

@ -116,7 +116,8 @@ func (lto *lto) flags(ctx BaseModuleContext, flags Flags) Flags {
// better dead code elimination and CFG simplification, but do
// not perform costly optimizations for a balance between compile
// time, binary size and performance.
if !lto.ThinLTO() {
// Apply the same for Eng builds as well.
if !lto.ThinLTO() || ctx.Config().Eng() {
ltoLdFlags = append(ltoLdFlags, "-Wl,--lto-O0")
}