Support instrumenting all PGO-enabled modules

Bug: http://b/63768402

If ANDROID_PGO_INSTRUMENT has "all" or "ALL", all PGO-enabled modules
are built for profile generation.

Test: Build with and without 'all' in ANDROID_PGO_INSTRUMENT
Change-Id: I3b1a9b562775e80a4ab3965100341d9e8e4ffde9
This commit is contained in:
Pirama Arumuga Nainar
2018-01-22 19:10:19 -08:00
parent d89f6621ae
commit e236b5acfa

View File

@@ -197,7 +197,7 @@ func (pgo *pgo) begin(ctx BaseModuleContext) {
} }
// This module should be instrumented if ANDROID_PGO_INSTRUMENT is set // This module should be instrumented if ANDROID_PGO_INSTRUMENT is set
// and includes a benchmark listed for this module // and includes 'all', 'ALL' or a benchmark listed for this module.
// //
// TODO Validate that each benchmark instruments at least one module // TODO Validate that each benchmark instruments at least one module
pgo.Properties.ShouldProfileModule = false pgo.Properties.ShouldProfileModule = false
@@ -207,12 +207,16 @@ func (pgo *pgo) begin(ctx BaseModuleContext) {
pgoBenchmarksMap[b] = true pgoBenchmarksMap[b] = true
} }
if pgoBenchmarksMap["all"] == true || pgoBenchmarksMap["ALL"] == true {
pgo.Properties.ShouldProfileModule = true
} else {
for _, b := range pgo.Properties.Pgo.Benchmarks { for _, b := range pgo.Properties.Pgo.Benchmarks {
if pgoBenchmarksMap[b] == true { if pgoBenchmarksMap[b] == true {
pgo.Properties.ShouldProfileModule = true pgo.Properties.ShouldProfileModule = true
break break
} }
} }
}
} }
func (pgo *pgo) deps(ctx BaseModuleContext, deps Deps) Deps { func (pgo *pgo) deps(ctx BaseModuleContext, deps Deps) Deps {