Search for PGO profiles in PGO_ADDITIONAL_PROFILE_DIRS am: 49540800f0

am: 8f7ea0ebdd

Change-Id: If92b86aafbaac8fa329b6aa6c43c9d75bd723bbc
This commit is contained in:
Pirama Arumuga Nainar 2018-02-13 21:09:48 +00:00 committed by android-build-merger
commit 0ee536259f
3 changed files with 16 additions and 3 deletions

View File

@ -710,6 +710,10 @@ func (c *deviceConfig) CoverageEnabledForPath(path string) bool {
return coverage
}
func (c *deviceConfig) PgoAdditionalProfileDirs() []string {
return c.config.ProductVariables.PgoAdditionalProfileDirs
}
func (c *config) IntegerOverflowDisabledForPath(path string) bool {
if c.ProductVariables.IntegerOverflowExcludePaths == nil {
return false

View File

@ -205,6 +205,8 @@ type productVariables struct {
ExtraVndkVersions []string `json:",omitempty"`
NamespacesToExport []string `json:",omitempty"`
PgoAdditionalProfileDirs []string `json:",omitempty"`
}
func boolPtr(v bool) *bool {

View File

@ -27,17 +27,24 @@ var (
// some functions
profileUseOtherFlags = []string{"-Wno-backend-plugin"}
pgoProfileProjects = []string{
globalPgoProfileProjects = []string{
"toolchain/pgo-profiles",
"vendor/google_data/pgo-profiles",
}
)
const pgoProfileProjectsConfigKey = "PgoProfileProjects"
const profileInstrumentFlag = "-fprofile-generate=/data/local/tmp"
const profileSamplingFlag = "-gline-tables-only"
const profileUseInstrumentFormat = "-fprofile-use=%s"
const profileUseSamplingFormat = "-fprofile-sample-use=%s"
func getPgoProfileProjects(config android.DeviceConfig) []string {
return config.OnceStringSlice(pgoProfileProjectsConfigKey, func() []string {
return append(globalPgoProfileProjects, config.PgoAdditionalProfileDirs()...)
})
}
func recordMissingProfileFile(ctx ModuleContext, missing string) {
getNamedMapForConfig(ctx.Config(), modulesMissingProfileFile).Store(missing, true)
}
@ -92,8 +99,8 @@ func (props *PgoProperties) addProfileGatherFlags(ctx ModuleContext, flags Flags
}
func (props *PgoProperties) getPgoProfileFile(ctx ModuleContext) android.OptionalPath {
// Test if the profile_file is present in any of the pgoProfileProjects
for _, profileProject := range pgoProfileProjects {
// Test if the profile_file is present in any of the PGO profile projects
for _, profileProject := range getPgoProfileProjects(ctx.DeviceConfig()) {
path := android.ExistentPathForSource(ctx, "", profileProject, *props.Pgo.Profile_file)
if path.Valid() {
return path