Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Thanks for reporting this and for taking the time to create a reproduction. The given app seems to compile to dex in a few seconds, but compiling to class files takes several minutes due to hitting unintentional quadratic behavior in dead code elimination. I will look into fixing this and report back once you should be able to test a new version.
ap...@google.com <ap...@google.com> #3
Project: r8
Branch: main
commit 85ad0d69f99553ce6dd0b99d383e1c55dc70f3df
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Feb 08 08:26:54 2023
Refactor value-is-dead analysis to separate analysis class
Bug: b/267990059
Change-Id: I8b881203ebe21395f48c8eeb6434faa03f7f9d46
M src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
M src/main/java/com/android/tools/r8/ir/code/Value.java
A src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
https://r8-review.googlesource.com/75681
Branch: main
commit 85ad0d69f99553ce6dd0b99d383e1c55dc70f3df
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Feb 08 08:26:54 2023
Refactor value-is-dead analysis to separate analysis class
Bug:
Change-Id: I8b881203ebe21395f48c8eeb6434faa03f7f9d46
M src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
M src/main/java/com/android/tools/r8/ir/code/Value.java
A src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
ap...@google.com <ap...@google.com> #4
Project: r8
Branch: main
commit 6edc639a92de908f89ba86445a9d6b21351c58fd
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Feb 08 12:31:15 2023
Rewrite value-is-dead analysis to a worklist algorithm
Bug: b/267990059
Change-Id: I699f43eba8774083a4b5f2aa2edf7c5d80df4c8e
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
https://r8-review.googlesource.com/75684
Branch: main
commit 6edc639a92de908f89ba86445a9d6b21351c58fd
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Feb 08 12:31:15 2023
Rewrite value-is-dead analysis to a worklist algorithm
Bug:
Change-Id: I699f43eba8774083a4b5f2aa2edf7c5d80df4c8e
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
ap...@google.com <ap...@google.com> #5
Project: r8
Branch: main
commit 70bbb88b80b31de9a5ccbe30d27a962b0fb0c45a
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Feb 08 16:13:24 2023
Fix repeated analysis of values in dead code removal
Bug: b/267990059
Change-Id: I9deebf700e936ad81a8fb25d067acc04637d980d
M src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
M src/main/java/com/android/tools/r8/utils/MapUtils.java
https://r8-review.googlesource.com/75682
Branch: main
commit 70bbb88b80b31de9a5ccbe30d27a962b0fb0c45a
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Feb 08 16:13:24 2023
Fix repeated analysis of values in dead code removal
Bug:
Change-Id: I9deebf700e936ad81a8fb25d067acc04637d980d
M src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
M src/main/java/com/android/tools/r8/utils/MapUtils.java
ap...@google.com <ap...@google.com> #6
Project: r8
Branch: main
commit 54ed0312d2e5ade4b8092a86989d0e6827e646dd
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 08:49:58 2023
Refinements to value-is-dead analysis
Bug: b/267990059
Fixes: b/268335684
Change-Id: I8007b13e2a4e0c32dffc181a827867ff4ab0373e
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
https://r8-review.googlesource.com/75761
Branch: main
commit 54ed0312d2e5ade4b8092a86989d0e6827e646dd
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 08:49:58 2023
Refinements to value-is-dead analysis
Bug:
Fixes:
Change-Id: I8007b13e2a4e0c32dffc181a827867ff4ab0373e
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
ap...@google.com <ap...@google.com> #7
Project: r8
Branch: 4.0
commit 2fc27f8cef33c22525c585e5c65bf3d67a18755a
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:19:09 2023
Version 4.0.53
Bug: b/267990059
Bug: b/267463817
Change-Id: I62f98b9723358310ade7f2bd5f8e589fa91c8ab6
M src/main/java/com/android/tools/r8/Version.java
https://r8-review.googlesource.com/75769
Branch: 4.0
commit 2fc27f8cef33c22525c585e5c65bf3d67a18755a
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:19:09 2023
Version 4.0.53
Bug:
Bug:
Change-Id: I62f98b9723358310ade7f2bd5f8e589fa91c8ab6
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #8
Project: r8
Branch: 4.0
commit b86fdf2b2427605e6a238a0232932fa1268245f8
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:16:04 2023
Refinements to value-is-dead analysis
Bug: b/267990059
Fixes: b/268335684
Change-Id: I8007b13e2a4e0c32dffc181a827867ff4ab0373e
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
https://r8-review.googlesource.com/75767
Branch: 4.0
commit b86fdf2b2427605e6a238a0232932fa1268245f8
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:16:04 2023
Refinements to value-is-dead analysis
Bug:
Fixes:
Change-Id: I8007b13e2a4e0c32dffc181a827867ff4ab0373e
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
ap...@google.com <ap...@google.com> #9
Project: r8
Branch: 4.0
commit 472c7fab11e7da906d07eb04d8600f6aea8d3c1e
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:15:38 2023
Fix repeated analysis of values in dead code removal
Bug: b/267990059
Change-Id: I9deebf700e936ad81a8fb25d067acc04637d980d
M src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
M src/main/java/com/android/tools/r8/utils/MapUtils.java
https://r8-review.googlesource.com/75766
Branch: 4.0
commit 472c7fab11e7da906d07eb04d8600f6aea8d3c1e
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:15:38 2023
Fix repeated analysis of values in dead code removal
Bug:
Change-Id: I9deebf700e936ad81a8fb25d067acc04637d980d
M src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
M src/main/java/com/android/tools/r8/utils/MapUtils.java
ap...@google.com <ap...@google.com> #10
Project: r8
Branch: 4.0
commit b14e5bc4c5f41fc593cc6176de220ce43d9c899f
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:15:14 2023
Rewrite value-is-dead analysis to a worklist algorithm
Bug: b/267990059
Change-Id: I699f43eba8774083a4b5f2aa2edf7c5d80df4c8e
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
https://r8-review.googlesource.com/75765
Branch: 4.0
commit b14e5bc4c5f41fc593cc6176de220ce43d9c899f
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:15:14 2023
Rewrite value-is-dead analysis to a worklist algorithm
Bug:
Change-Id: I699f43eba8774083a4b5f2aa2edf7c5d80df4c8e
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
sg...@google.com <sg...@google.com> #11
Project: r8
Branch: 4.0
commit 4621177fe24819fe5459b065a9d6d138cb79b5b2
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:14:33 2023
Refactor value-is-dead analysis to separate analysis class
Bug: b/267990059
Change-Id: I8b881203ebe21395f48c8eeb6434faa03f7f9d46
M src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
M src/main/java/com/android/tools/r8/ir/code/Value.java
A src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
https://r8-review.googlesource.com/75764
Branch: 4.0
commit 4621177fe24819fe5459b065a9d6d138cb79b5b2
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:14:33 2023
Refactor value-is-dead analysis to separate analysis class
Bug:
Change-Id: I8b881203ebe21395f48c8eeb6434faa03f7f9d46
M src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
M src/main/java/com/android/tools/r8/ir/code/Value.java
A src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
gr...@gmail.com <gr...@gmail.com> #12
Project: r8
Branch: 8.0
commit 376af144cf327f0f2b0a2de0a38939a59216a08d
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:25:18 2023
Version 8.0.29
Bug: b/267990059
Bug: b/267463817
Change-Id: I994d406bae7514482ffdf2ef10f092b5a96cc328
M src/main/java/com/android/tools/r8/Version.java
https://r8-review.googlesource.com/75776
Branch: 8.0
commit 376af144cf327f0f2b0a2de0a38939a59216a08d
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:25:18 2023
Version 8.0.29
Bug:
Bug:
Change-Id: I994d406bae7514482ffdf2ef10f092b5a96cc328
M src/main/java/com/android/tools/r8/Version.java
gr...@gmail.com <gr...@gmail.com> #13
Project: r8
Branch: 8.0
commit 77704f63db4161833b7072c42cbf9869a2f20e80
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:23:20 2023
Refinements to value-is-dead analysis
Bug: b/267990059
Fixes: b/268335684
Change-Id: I8007b13e2a4e0c32dffc181a827867ff4ab0373e
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
https://r8-review.googlesource.com/75773
Branch: 8.0
commit 77704f63db4161833b7072c42cbf9869a2f20e80
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 09 11:23:20 2023
Refinements to value-is-dead analysis
Bug:
Fixes:
Change-Id: I8007b13e2a4e0c32dffc181a827867ff4ab0373e
M src/main/java/com/android/tools/r8/ir/code/ValueIsDeadAnalysis.java
M src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
Description
Implementing b/214018111 shows an issue found in
ClassNameMinifierOriginalClassNameTest
.Here the expected encoding of the mapping would become:
But the overlap in residual name
A
causes the map to be clobbered. The source for original type A is needed, but it has no residual output so the mapping should be something like: