Disable redundant const number optimization until benchmark results

We may regress on this optimization so we should just get some
benchmark data to drive any decision.

Bug: 138917494
Change-Id: Ia507680aa48426381e8423b40949d472fb9320c3
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
index 512d14e..484a529 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
@@ -1107,7 +1107,9 @@
     codeRewriter.rewriteSwitch(code);
     codeRewriter.processMethodsNeverReturningNormally(code);
     codeRewriter.simplifyIf(code);
-    codeRewriter.redundantConstNumberRemoval(code);
+    if (options.enableRedundantConstNumberOptimization) {
+      codeRewriter.redundantConstNumberRemoval(code);
+    }
     if (RedundantFieldLoadElimination.shouldRun(appView, code)) {
       new RedundantFieldLoadElimination(appView, code).run();
     }
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 6c62f7f..b914026 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -218,6 +218,8 @@
   public boolean enableRedundantFieldLoadElimination = true;
   public boolean enableValuePropagation = true;
   public boolean enableUninstantiatedTypeOptimization = true;
+  // TODO(b/138917494): Disable until we have numbers on potential performance penalties.
+  public boolean enableRedundantConstNumberOptimization = false;
 
   // Number of threads to use while processing the dex files.
   public int numberOfThreads = DETERMINISTIC_DEBUGGING ? 1 : ThreadUtils.NOT_SPECIFIED;
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/RedundantConstNumberRemovalTest.java b/src/test/java/com/android/tools/r8/ir/optimize/RedundantConstNumberRemovalTest.java
index a359ff5..f9df2a6 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/RedundantConstNumberRemovalTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/RedundantConstNumberRemovalTest.java
@@ -57,6 +57,8 @@
             .addInnerClasses(RedundantConstNumberRemovalTest.class)
             .addKeepClassAndMembersRules(TestClass.class)
             .enableInliningAnnotations()
+            .addOptionsModification(
+                internalOptions -> internalOptions.enableRedundantConstNumberOptimization = true)
             .run(TestClass.class)
             .assertSuccessWithOutput(expectedOutput);
 
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/redundantconstnumber/B124152497.java b/src/test/java/com/android/tools/r8/ir/optimize/redundantconstnumber/B124152497.java
index edadeb7..f26a7e3 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/redundantconstnumber/B124152497.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/redundantconstnumber/B124152497.java
@@ -61,6 +61,7 @@
                   if (forceRedundantConstNumberRemovalOnDalvik) {
                     assertTrue(isDalvik());
                     options.testing.forceRedundantConstNumberRemoval = true;
+                    options.enableRedundantConstNumberOptimization = true;
                   }
                 })
             .enableInliningAnnotations()