Generate app profiles even if dexpreopt is disabled.

Bug: 280440941
Test: -
  1. Patch ag/22302622 to disable dexpreopt.
  2. lunch aosp_cf_x86_64_phone-userdebug && m
  3. See app profiles still generated.
Test: -
  1. Patch ag/20592051 to enable profile for service-art.
  2. banchan com.android.art x86_64 && m
  3. See the profile for service-art generated.
Change-Id: I4e721b475b84a2f667bbccc030a8947078f26bb0
This commit is contained in:
Jiakai Zhang
2023-05-02 14:35:47 +01:00
parent b95f8345c8
commit 7b845e808f
6 changed files with 62 additions and 19 deletions

View File

@@ -100,11 +100,19 @@ func GenerateDexpreoptRule(ctx android.BuilderContext, globalSoong *GlobalSoongC
return rule, nil
}
// If dexpreopt is applicable to the module, returns whether dexpreopt is disabled. Otherwise, the
// behavior is undefined.
// When it returns true, dexpreopt artifacts will not be generated, but profile will still be
// generated if profile-guided compilation is requested.
func dexpreoptDisabled(ctx android.PathContext, global *GlobalConfig, module *ModuleConfig) bool {
if ctx.Config().UnbundledBuild() {
return true
}
if global.DisablePreopt {
return true
}
if contains(global.DisablePreoptModules, module.Name) {
return true
}

View File

@@ -181,3 +181,10 @@ func FixtureDisableDexpreoptBootImages(disable bool) android.FixturePreparer {
dexpreoptConfig.DisablePreoptBootImages = disable
})
}
// FixtureDisableDexpreopt sets the DisablePreopt property in the global config.
func FixtureDisableDexpreopt(disable bool) android.FixturePreparer {
return FixtureModifyGlobalConfig(func(_ android.PathContext, dexpreoptConfig *GlobalConfig) {
dexpreoptConfig.DisablePreopt = disable
})
}