diff --git a/cc/afdo.go b/cc/afdo.go index 91cf0b8a2..e7dea0e0d 100644 --- a/cc/afdo.go +++ b/cc/afdo.go @@ -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 { diff --git a/cc/cc.go b/cc/cc.go index 867a59c03..2e42761c4 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -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) } diff --git a/cc/lto.go b/cc/lto.go index d2a43d27b..8b0880cf0 100644 --- a/cc/lto.go +++ b/cc/lto.go @@ -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") }