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);