Status Update
Comments
ch...@google.com <ch...@google.com> #2
Retraced stack trace:
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
at Version.fakeStackEntry(Version_3.0.76.java:0)
at com.android.tools.r8.utils.ExceptionUtils.failWithFakeEntry(ExceptionUtils.java:139)
at com.android.tools.r8.utils.ExceptionUtils.failCompilation(ExceptionUtils.java:89)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:83)
at com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(ExceptionUtils.java:69)
at com.android.tools.r8.R8.runForTesting(R8.java:256)
at com.android.tools.r8.R8.run(R8.java:194)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:301)
at com.android.build.gradle.internal.tasks.R8Task$Companion.shrink(R8Task.kt:592)
at com.android.build.gradle.internal.tasks.R8Task.doTaskAction(R8Task.kt:443)
at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:63)
at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
at com.android.build.gradle.internal.tasks.NonIncrementalTask.taskAction(NonIncrementalTask.kt:94)
at jdk.internal.reflect.GeneratedMethodAccessor2135.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
... 118 more
Caused by: com.android.tools.r8.errors.Unreachable: Unexpected conversion of imprecise type: TOP (everything)
at com.android.tools.r8.ir.code.ValueType.fromType(ValueType.java:138)
at com.android.tools.r8.ir.code.Value.outType(Value.java:783)
at com.android.tools.r8.ir.regalloc.LiveIntervals.getType(LiveIntervals.java:79)
at com.android.tools.r8.ir.regalloc.LiveIntervals.requiredRegisters(LiveIntervals.java:83)
at com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.allocateSingleInterval(LinearScanRegisterAllocator.java:1617)
at com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.performLinearScan(LinearScanRegisterAllocator.java:979)
at com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.performAllocation(LinearScanRegisterAllocator.java:659)
at com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.performAllocation(LinearScanRegisterAllocator.java:645)
at com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.allocateRegisters(LinearScanRegisterAllocator.java:216)
at com.android.tools.r8.ir.conversion.IRConverter.performRegisterAllocation(IRConverter.java:1820)
at com.android.tools.r8.ir.conversion.IRConverter.finalizeToDex(IRConverter.java:1757)
at com.android.tools.r8.ir.conversion.IRConverter.finalizeIR(IRConverter.java:1724)
at com.android.tools.r8.ir.conversion.IRConverter.optimize(IRConverter.java:1630)
at com.android.tools.r8.ir.conversion.PostMethodProcessor.forEachMethod(PostMethodProcessor.java:210)
at com.android.tools.r8.ir.conversion.PostMethodProcessor.lambda$forEachWaveWithExtension$1(PostMethodProcessor.java:184)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItems$4(ThreadUtils.java:65)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItems$6(ThreadUtils.java:90)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItemsWithResults$2(ThreadUtils.java:57)
ch...@google.com <ch...@google.com> #3
Thanks for the report. Would it be possible for you to share a zip dump of the compiler inputs? That would allow us to reproduce the problem.
You can generate a dump by issuing the following command.
./gradlew assembleRelease --no-daemon -Dcom.android.tools.r8.dumpinputtodirectory=/path/to/dumps/
You can share this privately with
sg...@google.com <sg...@google.com> #4
Thank you for the report. Can you share a reproduction of this issue? If possible providing a dump of the input to the compiler, see
Retrace shows this happens in the register allocator:
Caused by: com.android.tools.r8.errors.Unreachable: Unexpected conversion of imprecise type: TOP (everything)
at com.android.tools.r8.ir.code.ValueType.fromType(ValueType.java:138)
at com.android.tools.r8.ir.code.Value.outType(Value.java:783)
at com.android.tools.r8.ir.regalloc.LiveIntervals.getType(LiveIntervals.java:79)
at com.android.tools.r8.ir.regalloc.LiveIntervals.requiredRegisters(LiveIntervals.java:83)
at com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.allocateSingleInterval(LinearScanRegisterA
llocator.java:1617)
at com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.performLinearScan(LinearScanRegisterAlloca
tor.java:979)
at com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.performAllocation(LinearScanRegisterAlloca
tor.java:659)
at com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.performAllocation(LinearScanRegisterAlloca
tor.java:645)
at com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.allocateRegisters(LinearScanRegisterAlloca
tor.java:216)
at com.android.tools.r8.ir.conversion.IRConverter.performRegisterAllocation(IRConverter.java:1820)
at com.android.tools.r8.ir.conversion.IRConverter.finalizeToDex(IRConverter.java:1757)
at com.android.tools.r8.ir.conversion.IRConverter.finalizeIR(IRConverter.java:1724)
at com.android.tools.r8.ir.conversion.IRConverter.optimize(IRConverter.java:1630)
at com.android.tools.r8.ir.conversion.PostMethodProcessor.forEachMethod(PostMethodProcessor.java:210)
at com.android.tools.r8.ir.conversion.PostMethodProcessor.lambda$forEachWaveWithExtension$1(PostMethodProc
essor.java:184)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItems$4(ThreadUtils.java:65)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItems$6(ThreadUtils.java:90)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItemsWithResults$2(ThreadUtils.java:57)
Suppressed: java.lang.RuntimeException: java.util.concurrent.ExecutionException: com.android.tools.r8.inte
rnal.JG: com.android.tools.r8.errors.Unreachable: Unexpected conversion of imprecise type: TOP (everything)
at com.android.tools.r8.utils.ExceptionUtils.unwrapExecutionException(ExceptionUtils.java:221)
at com.android.tools.r8.R8.run(R8.java:834)
at com.android.tools.r8.R8.run(R8.java:269)
at com.android.tools.r8.R8.lambda$runForTesting$1(R8.java:260)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:80)
at com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(ExceptionUtils.java:69)
at com.android.tools.r8.R8.runForTesting(R8.java:256)
at com.android.tools.r8.R8.run(R8.java:194)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:301)
at com.android.build.gradle.internal.tasks.R8Task$Companion.shrink(R8Task.kt:592)
at com.android.build.gradle.internal.tasks.R8Task.doTaskAction(R8Task.kt:443)
[Deleted User] <[Deleted User]> #5
Shared the dump over to the specified emails.
sg...@google.com <sg...@google.com> #6
Thanks. The dump reproduce the issue, also on our main branch. For the R8 team I have placed the dump in the team folder.
ap...@google.com <ap...@google.com> #7
Branch: main
commit 929fcc2200a5b3f3e695f03d77b198ea8cb7bb25
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Mon Aug 08 09:43:54 2022
Ensure out-value of Enum.valueOf is analyzed by enum unboxer
Bug:
Change-Id: Iacb3a41b00cc2afb4b2d4e5f26e763a9bc5202b4
M src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java
M src/test/java/com/android/tools/r8/enumunboxing/ValueOfWithoutCastEnumUnboxingTest.java
ap...@google.com <ap...@google.com> #8
Branch: main
commit be9524b1881e0d2dcbcaad1b5b5f3d72ef7a9910
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Aug 05 16:02:57 2022
Reproduce inadequate enum unboxing analysis for Enum.valueOf
Bug:
Change-Id: I9b04c9081de39fca941c6ee0570b0cfbdc024b30
A src/test/java/com/android/tools/r8/enumunboxing/ValueOfWithoutCastEnumUnboxingTest.java
M src/test/java/com/android/tools/r8/enumunboxing/EnumUnboxingTestBase.java
ap...@google.com <ap...@google.com> #9
Branch: 3.3
commit d6dfa2fced8ff0569e01e3943863680e77558293
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Aug 10 18:37:30 2022
Version 3.3.75
Bug:
Bug:
Bug:
Bug:
Change-Id: Iaf8046e9cf38a70d6edfbff3a3e106fa4f61136c
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #10
Branch: 3.3
commit 01f7123c79b5c40ffba0537f4cf6f7a89be727a7
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Aug 10 18:23:15 2022
Ensure out-value of Enum.valueOf is analyzed by enum unboxer
Bug:
Change-Id: Iacb3a41b00cc2afb4b2d4e5f26e763a9bc5202b4
M src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java
M src/test/java/com/android/tools/r8/enumunboxing/ValueOfWithoutCastEnumUnboxingTest.java
ap...@google.com <ap...@google.com> #11
Branch: 3.3
commit 84d394798bbf3f011a06637bfc22ca477e863e19
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Aug 10 18:20:31 2022
Reproduce inadequate enum unboxing analysis for Enum.valueOf
Bug:
Change-Id: I9b04c9081de39fca941c6ee0570b0cfbdc024b30
A src/test/java/com/android/tools/r8/enumunboxing/ValueOfWithoutCastEnumUnboxingTest.java
M src/test/java/com/android/tools/r8/enumunboxing/EnumUnboxingTestBase.java
ap...@google.com <ap...@google.com> #12
Branch: 3.2
commit 2fc1900f0274d6c8e5451d452c35b0e476b5892f
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Aug 10 18:37:34 2022
Version 3.2.78
Bug:
Bug:
Bug:
Bug:
Change-Id: Iedbc13d21a676603a117980e01a98e117bb4bb60
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #13
Branch: 3.2
commit f6467492562cafdfdc851bc16acf1c52d9f50576
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Aug 10 18:23:29 2022
Ensure out-value of Enum.valueOf is analyzed by enum unboxer
Bug:
Change-Id: Iacb3a41b00cc2afb4b2d4e5f26e763a9bc5202b4
M src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java
M src/test/java/com/android/tools/r8/enumunboxing/ValueOfWithoutCastEnumUnboxingTest.java
ap...@google.com <ap...@google.com> #14
Branch: 3.2
commit 843a0e56fa6bd72a8b7e8932164fe82dcaaab85d
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Aug 10 18:20:23 2022
Reproduce inadequate enum unboxing analysis for Enum.valueOf
Bug:
Change-Id: I9b04c9081de39fca941c6ee0570b0cfbdc024b30
A src/test/java/com/android/tools/r8/enumunboxing/ValueOfWithoutCastEnumUnboxingTest.java
M src/test/java/com/android/tools/r8/enumunboxing/EnumUnboxingTestBase.java
ap...@google.com <ap...@google.com> #15
Branch: 3.3
commit 01f7123c79b5c40ffba0537f4cf6f7a89be727a7
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Aug 10 18:23:15 2022
Ensure out-value of Enum.valueOf is analyzed by enum unboxer
Bug:
Change-Id: Iacb3a41b00cc2afb4b2d4e5f26e763a9bc5202b4
M src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java
M src/test/java/com/android/tools/r8/enumunboxing/ValueOfWithoutCastEnumUnboxingTest.java
ap...@google.com <ap...@google.com> #16
Branch: 3.3
commit 84d394798bbf3f011a06637bfc22ca477e863e19
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Aug 10 18:20:31 2022
Reproduce inadequate enum unboxing analysis for Enum.valueOf
Bug:
Change-Id: I9b04c9081de39fca941c6ee0570b0cfbdc024b30
A src/test/java/com/android/tools/r8/enumunboxing/ValueOfWithoutCastEnumUnboxingTest.java
M src/test/java/com/android/tools/r8/enumunboxing/EnumUnboxingTestBase.java
ch...@google.com <ch...@google.com> #17
Thanks for reporting this. This should now be fixed in R8 versions 3.2.78 and 3.3.75. I will also cherry-pick this to R8 version 3.1.82.
ap...@google.com <ap...@google.com> #18
Branch: 3.1
commit 73f3a4859696c7ca4e1817064ab2dad4e394d0b8
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Aug 11 09:18:21 2022
Version 3.1.82
Bug:
Change-Id: Ifdda4179c8ecb85ede4e629987d0106e96670974
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #19
Branch: 3.1
commit acc43e89e26a4b947bdcadc6ee7b587e335b2ef0
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Aug 11 09:17:10 2022
Ensure out-value of Enum.valueOf is analyzed by enum unboxer
Bug:
Change-Id: Iacb3a41b00cc2afb4b2d4e5f26e763a9bc5202b4
M src/test/java/com/android/tools/r8/enumunboxing/ValueOfWithoutCastEnumUnboxingTest.java
M src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxer.java
ap...@google.com <ap...@google.com> #20
Branch: 3.1
commit d2dc31e5c429fe50f5709305f99c2429b582a3f3
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Aug 11 09:13:36 2022
Reproduce inadequate enum unboxing analysis for Enum.valueOf
Bug:
Change-Id: I9b04c9081de39fca941c6ee0570b0cfbdc024b30
A src/test/java/com/android/tools/r8/enumunboxing/ValueOfWithoutCastEnumUnboxingTest.java
M src/test/java/com/android/tools/r8/enumunboxing/EnumUnboxingTestBase.java
Description
I started getting this error:
Tried to build using the following versions of R8:
Fails on all on them with
Unexpected conversion of imprecise type: TOP (everything)
I can provide more info if needed.