Revert "Enable Enum unboxing"
This reverts commit 69dc4a0bf7c28e8f7779656e32bb906eba6cd09a.
Reason for revert: Test failures
Change-Id: I7867bb7cd4279b5eb0082ec09eea07cc1687b61b
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 58d5bb3..6ab3fcd 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -229,7 +229,7 @@
public boolean enableInlining =
!Version.isDevelopmentVersion()
|| System.getProperty("com.android.tools.r8.disableinlining") == null;
- public boolean enableEnumUnboxing = true;
+ public boolean enableEnumUnboxing = false;
// TODO(b/141451716): Evaluate the effect of allowing inlining in the inlinee.
public boolean applyInliningToInlinee =
System.getProperty("com.android.tools.r8.applyInliningToInlinee") != null;
@@ -1177,6 +1177,12 @@
enableNameReflectionOptimization = false;
}
+ @VisibleForTesting
+ public void enableEnumUnboxing() {
+ assert !enableEnumUnboxing;
+ enableEnumUnboxing = true;
+ }
+
// TODO(b/69963623): Remove this once enabled.
@VisibleForTesting
public void enablePropagationOfConstantsAtCallSites() {
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/EnumClinitWithSideEffectsUnboxingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/EnumClinitWithSideEffectsUnboxingTest.java
index c3e548e..2fbd235 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/EnumClinitWithSideEffectsUnboxingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/EnumClinitWithSideEffectsUnboxingTest.java
@@ -1,6 +1,7 @@
package com.android.tools.r8.enumunboxing;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.utils.InternalOptions;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -30,6 +31,7 @@
.addInnerClasses(EnumClinitWithSideEffectsUnboxingTest.class)
.addKeepMainRule(TestClass.class)
.addKeepRules(enumKeepRule.getKeepRule())
+ .addOptionsModification(InternalOptions::enableEnumUnboxing)
.setMinApi(parameters.getApiLevel())
.compile()
.run(parameters.getRuntime(), TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/EnumInitWithSideEffectsUnboxingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/EnumInitWithSideEffectsUnboxingTest.java
index b9445c2..d353692 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/EnumInitWithSideEffectsUnboxingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/EnumInitWithSideEffectsUnboxingTest.java
@@ -1,6 +1,7 @@
package com.android.tools.r8.enumunboxing;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.utils.InternalOptions;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -30,6 +31,7 @@
.addInnerClasses(EnumInitWithSideEffectsUnboxingTest.class)
.addKeepMainRule(TestClass.class)
.addKeepRules(enumKeepRule.getKeepRule())
+ .addOptionsModification(InternalOptions::enableEnumUnboxing)
.setMinApi(parameters.getApiLevel())
.compile()
.run(parameters.getRuntime(), TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/R8InliningTest.java b/src/test/java/com/android/tools/r8/ir/optimize/R8InliningTest.java
index 5daa849..49718d4 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/R8InliningTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/R8InliningTest.java
@@ -374,7 +374,11 @@
.getMethod()
.name
.toString()
- .equals(EnumUnboxingRewriter.ENUM_UNBOXING_UTILITY_ORDINAL)) {
+ .equals(EnumUnboxingRewriter.ENUM_UNBOXING_UTILITY_ORDINAL)
+ && !((InvokeInstructionSubject) instruction)
+ .holder()
+ .toString()
+ .contains("java.lang.Enum")) {
++invokeCount;
}
}