Disable indexed item ref counting for dex refinement in debug mode
Bug: b/558810278
Change-Id: Ic3b231e84f4ae501868ae136e7e9abfc0ead5c53
diff --git a/src/main/java/com/android/tools/r8/dex/distribution/DexDistributionRefinement.java b/src/main/java/com/android/tools/r8/dex/distribution/DexDistributionRefinement.java
index 0a23552..085ac3f 100644
--- a/src/main/java/com/android/tools/r8/dex/distribution/DexDistributionRefinement.java
+++ b/src/main/java/com/android/tools/r8/dex/distribution/DexDistributionRefinement.java
@@ -69,12 +69,7 @@
public static void run(
AppView<?> appView, VirtualFileCycler cycler, ExecutorService executorService, Timing timing)
throws ExecutionException {
- if (!appView.testing().enableClassToDexDistributionRefinementInDebugMode
- && appView.options().debug) {
- return;
- }
- int numPasses = appView.testing().classToDexDistributionRefinementPasses;
- if (numPasses > 0) {
+ if (appView.testing().enableClassToDexDistributionRefinement(appView.options())) {
runOnPartition(appView, cycler, VirtualFile::isStartup, executorService, timing);
runOnPartition(appView, cycler, not(VirtualFile::isStartup), executorService, timing);
}
diff --git a/src/main/java/com/android/tools/r8/dex/distribution/IndexedItemTransaction.java b/src/main/java/com/android/tools/r8/dex/distribution/IndexedItemTransaction.java
index 0dcb03f..088de90 100644
--- a/src/main/java/com/android/tools/r8/dex/distribution/IndexedItemTransaction.java
+++ b/src/main/java/com/android/tools/r8/dex/distribution/IndexedItemTransaction.java
@@ -62,7 +62,7 @@
public static IndexedItemTransaction create(
VirtualFile.VirtualFileIndexedItemCollection base, AppView<?> appView) {
- if (appView.testing().classToDexDistributionRefinementPasses > 0) {
+ if (appView.testing().enableClassToDexDistributionRefinement(appView.options())) {
return new IndexedItemTransaction(base, appView);
} else {
// Avoid overhead from reference counting. Notably, when the reference counters are needed,
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 13de344..2beaae5 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -2307,6 +2307,13 @@
SystemPropertyUtils.parseSystemPropertyOrDefault(
"com.android.tools.r8.dex.refinementInDebug", false);
+ public boolean enableClassToDexDistributionRefinement(InternalOptions options) {
+ if (options.debug && !enableClassToDexDistributionRefinementInDebugMode) {
+ return false;
+ }
+ return classToDexDistributionRefinementPasses > 0;
+ }
+
public boolean enableEmbeddedKeepAnnotations =
SystemPropertyUtils.parseSystemPropertyOrDefault(
"com.android.tools.r8.enableKeepAnnotations", false);