Consider all users when determining only-used-in-block. Bug: 175332495 Bug: 178458926 Change-Id: I9642ed4a0a744f17e14337d6c997b8c8d932b770
diff --git a/src/main/java/com/android/tools/r8/ir/code/Value.java b/src/main/java/com/android/tools/r8/ir/code/Value.java index 0f0d6e9..050dbe1 100644 --- a/src/main/java/com/android/tools/r8/ir/code/Value.java +++ b/src/main/java/com/android/tools/r8/ir/code/Value.java
@@ -328,8 +328,11 @@ } public boolean onlyUsedInBlock(BasicBlock block) { - for (Instruction user : uniqueUsers()) { - if (user.getBlock() != block) { + if (hasPhiUsers() || hasDebugUsers()) { + return false; + } + for (Phi phiUser : uniquePhiUsers()) { + if (phiUser.getBlock() != block) { return false; } }