Add enable_profile_use property
Bug: http://b/65598278 This property defaults to 'true' and setting it to false skips profile use. This escape hatch lets us disable PGO for a module without completely removing the 'pgo' property. Additionally, this also helps selectively disabling PGO for some architectures, if desired. Test: Test that -fprofile-use is not added for a test module if 'enable_profile_use: false' is set. Change-Id: Ifcf1a48c194bc86efd88a529cc2d66a47b7ab080
This commit is contained in:
parent
0fdfc459cf
commit
6aeed8b439
1 changed files with 10 additions and 4 deletions
14
cc/pgo.go
14
cc/pgo.go
|
@ -37,10 +37,11 @@ const profileUseSamplingFormat = "-fprofile-sample-use=%s"
|
||||||
|
|
||||||
type PgoProperties struct {
|
type PgoProperties struct {
|
||||||
Pgo struct {
|
Pgo struct {
|
||||||
Instrumentation *bool
|
Instrumentation *bool
|
||||||
Sampling *bool
|
Sampling *bool
|
||||||
Profile_file *string `android:"arch_variant"`
|
Profile_file *string `android:"arch_variant"`
|
||||||
Benchmarks []string
|
Benchmarks []string
|
||||||
|
Enable_profile_use *bool `android:"arch_variant"`
|
||||||
} `android:"arch_variant"`
|
} `android:"arch_variant"`
|
||||||
|
|
||||||
PgoPresent bool `blueprint:"mutated"`
|
PgoPresent bool `blueprint:"mutated"`
|
||||||
|
@ -95,6 +96,11 @@ func (props *PgoProperties) profileUseFlags(ctx ModuleContext, file string) []st
|
||||||
}
|
}
|
||||||
|
|
||||||
func (props *PgoProperties) addProfileUseFlags(ctx ModuleContext, flags Flags) Flags {
|
func (props *PgoProperties) addProfileUseFlags(ctx ModuleContext, flags Flags) Flags {
|
||||||
|
// Skip -fprofile-use if 'enable_profile_use' property is set
|
||||||
|
if props.Pgo.Enable_profile_use != nil && *props.Pgo.Enable_profile_use == false {
|
||||||
|
return flags
|
||||||
|
}
|
||||||
|
|
||||||
// If the PGO profiles project is found, and this module has PGO
|
// If the PGO profiles project is found, and this module has PGO
|
||||||
// enabled, add flags to use the profile
|
// enabled, add flags to use the profile
|
||||||
if profilesDir := getPgoProfilesDir(ctx); props.PgoPresent && profilesDir.Valid() {
|
if profilesDir := getPgoProfilesDir(ctx); props.PgoPresent && profilesDir.Valid() {
|
||||||
|
|
Loading…
Reference in a new issue