From b97f1d1b6b790619514395126527f3639e16fe6f Mon Sep 17 00:00:00 2001 From: LaMont Jones Date: Tue, 18 Mar 2025 15:18:58 -0700 Subject: Use d8 when on eng builds This is consistent with all of the other ways that eng builds are faster, but do not match the expected performance of user or userdebug builds. We still use r8 if a module has `optimize: { enabled: true,}`. Bug: b/374975543 Test: manual, TH Change-Id: I28c6de4472f4df1f791758294d45b67acc0a7b7c --- java/dex.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'java/dex.go') diff --git a/java/dex.go b/java/dex.go index ed9c82ba2..dd6467546 100644 --- a/java/dex.go +++ b/java/dex.go @@ -161,8 +161,8 @@ type dexer struct { providesTransitiveHeaderJarsForR8 } -func (d *dexer) effectiveOptimizeEnabled() bool { - return BoolDefault(d.dexProperties.Optimize.Enabled, d.dexProperties.Optimize.EnabledByDefault) +func (d *dexer) effectiveOptimizeEnabled(ctx android.EarlyModuleContext) bool { + return BoolDefault(d.dexProperties.Optimize.Enabled, d.dexProperties.Optimize.EnabledByDefault && !ctx.Config().Eng()) } func (d *DexProperties) resourceShrinkingEnabled(ctx android.ModuleContext) bool { @@ -173,8 +173,8 @@ func (d *DexProperties) optimizedResourceShrinkingEnabled(ctx android.ModuleCont return d.resourceShrinkingEnabled(ctx) && BoolDefault(d.Optimize.Optimized_shrink_resources, ctx.Config().UseOptimizedResourceShrinkingByDefault()) } -func (d *dexer) optimizeOrObfuscateEnabled() bool { - return d.effectiveOptimizeEnabled() && (proptools.Bool(d.dexProperties.Optimize.Optimize) || proptools.Bool(d.dexProperties.Optimize.Obfuscate)) +func (d *dexer) optimizeOrObfuscateEnabled(ctx android.EarlyModuleContext) bool { + return d.effectiveOptimizeEnabled(ctx) && (proptools.Bool(d.dexProperties.Optimize.Optimize) || proptools.Bool(d.dexProperties.Optimize.Obfuscate)) } var d8, d8RE = pctx.MultiCommandRemoteStaticRules("d8", @@ -353,7 +353,7 @@ func (d *dexer) dexCommonFlags(ctx android.ModuleContext, flags = append(flags, "--release") } else if ctx.Config().Eng() { flags = append(flags, "--debug") - } else if !d.effectiveOptimizeEnabled() && d.dexProperties.Optimize.EnabledByDefault { + } else if !d.effectiveOptimizeEnabled(ctx) && d.dexProperties.Optimize.EnabledByDefault { // D8 uses --debug by default, whereas R8 uses --release by default. // For targets that default to R8 usage (e.g., apps), but override this default, we still // want D8 to run in release mode, preserving semantics as much as possible between the two. @@ -627,7 +627,7 @@ func (d *dexer) compileDex(ctx android.ModuleContext, dexParams *compileDexParam mergeZipsFlags = "-stripFile META-INF/*.kotlin_module -stripFile **/*.kotlin_builtins" } - useR8 := d.effectiveOptimizeEnabled() + useR8 := d.effectiveOptimizeEnabled(ctx) useD8 := !useR8 || ctx.Config().PartialCompileFlags().Use_d8 rbeR8 := ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_R8") rbeD8 := ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_D8") -- cgit v1.2.3-59-g8ed1b