Disable single caller inlining of virtual methods
Bug: b/335584013
Change-Id: Ia6e02fe730a99ed6a9a7fe637f701c1433eebbcc
diff --git a/src/main/java/com/android/tools/r8/optimize/singlecaller/SingleCallerInliner.java b/src/main/java/com/android/tools/r8/optimize/singlecaller/SingleCallerInliner.java
index 02b5231..a6e1da7 100644
--- a/src/main/java/com/android/tools/r8/optimize/singlecaller/SingleCallerInliner.java
+++ b/src/main/java/com/android/tools/r8/optimize/singlecaller/SingleCallerInliner.java
@@ -68,8 +68,8 @@
}
public void run(ExecutorService executorService) throws ExecutionException {
- ProgramMethodSet monomorphicVirtualMethods =
- computeMonomorphicVirtualRootMethods(executorService);
+ // TODO(b/335584013): Re-enable monomorphic method analysis.
+ ProgramMethodSet monomorphicVirtualMethods = ProgramMethodSet.empty();
ProgramMethodMap<ProgramMethod> singleCallerMethods =
new SingleCallerScanner(appView, monomorphicVirtualMethods)
.getSingleCallerMethods(executorService);
@@ -87,6 +87,7 @@
// deal with (rooted) virtual methods that do not override abstract/interface methods. In order to
// also deal with virtual methods that override abstract/interface methods we would need to record
// calls to the abstract/interface methods as calls to the non-abstract virtual method.
+ @SuppressWarnings("UnusedMethod")
private ProgramMethodSet computeMonomorphicVirtualRootMethods(ExecutorService executorService)
throws ExecutionException {
ImmediateProgramSubtypingInfo immediateSubtypingInfo =
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/inliner/IllegalSingleCallerInliningOfSiblingTest.java b/src/test/java/com/android/tools/r8/ir/optimize/inliner/IllegalSingleCallerInliningOfSiblingTest.java
index 2894352..cd42876 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/inliner/IllegalSingleCallerInliningOfSiblingTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/inliner/IllegalSingleCallerInliningOfSiblingTest.java
@@ -41,8 +41,7 @@
.setMinApi(parameters)
.compile()
.run(parameters.getRuntime(), Main.class)
- // TODO(b/335584013): Fix single caller inlining.
- .assertFailureWithErrorThatThrows(AbstractMethodError.class);
+ .assertSuccessWithOutputLines("A", "A");
}
static class Main {