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:
parent
198583ed20
commit
9723e338ee
3 changed files with 12 additions and 1 deletions
|
@ -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 {
|
||||
|
|
3
cc/cc.go
3
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)
|
||||
}
|
||||
|
|
|
@ -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")
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue