| commit | 624e1f62a69f76e7c28fd4eccabdf4dbf1717757 | [log] [tgz] |
|---|---|---|
| author | Christoffer Quist Adamsen <christofferqa@google.com> | Wed Jun 30 19:42:41 2021 +0200 |
| committer | Christoffer Quist Adamsen <christofferqa@google.com> | Wed Jun 30 19:42:41 2021 +0200 |
| tree | ef8377e317f5e7d3d7f2775fc22316b65ec68907 | |
| parent | 9a48e605c6d1d7d2b7a2eef29d1eceadc67ba744 [diff] |
Extend dead code remover to remove unnecessary casts (follow up) Change-Id: I17bf09c05c61e5f34b320fb2cfe18bdade2a0c14
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java b/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java index 8d61a94..83364fc 100644 --- a/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java +++ b/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
@@ -127,6 +127,7 @@ if (!checkCast.isRefiningStaticType() && checkCast.outValue().getLocalInfo() == checkCast.object().getLocalInfo()) { checkCast.outValue().replaceUsers(checkCast.object()); + checkCast.object().uniquePhiUsers().forEach(Phi::removeTrivialPhi); } } // Remove unused invoke results.
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/checkcast/CheckCastNullForTypeTest.java b/src/test/java/com/android/tools/r8/ir/optimize/checkcast/CheckCastNullForTypeTest.java index 4f60021..1f7b39a 100644 --- a/src/test/java/com/android/tools/r8/ir/optimize/checkcast/CheckCastNullForTypeTest.java +++ b/src/test/java/com/android/tools/r8/ir/optimize/checkcast/CheckCastNullForTypeTest.java
@@ -57,9 +57,8 @@ assertThat(main, isPresent()); MethodSubject mainMethod = main.uniqueMethodWithName("main"); assertThat(mainMethod, isPresent()); - // TODO(b/160856783): Investigate if this can be removed. assertEquals( - 1, + 0, mainMethod .streamInstructions() .filter(instruction -> instruction.isCheckCast(Main.class.getTypeName()))