Account for phis in setLocalsAtEntry()

Bug: 164162567
Change-Id: I71f1ce70c80dc1d43fb24486b53328bc01613d93
diff --git a/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java b/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
index 480b00c..dde5906 100644
--- a/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
+++ b/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
@@ -472,8 +472,12 @@
             ? block.getPredecessors().get(0).exceptionalExit().getNumber()
             : block.getPredecessors().get(0).exit().getNumber();
     for (LocalRange open : openRanges) {
+      Value predecessorValue =
+          open.value.isPhi() && open.value.getBlock() == block
+              ? open.value.asPhi().getOperand(0)
+              : open.value;
       int predecessorRegister =
-          allocator.getArgumentOrAllocateRegisterForValue(open.value, predecessorExitIndex);
+          allocator.getArgumentOrAllocateRegisterForValue(predecessorValue, predecessorExitIndex);
       initialLocals.put(predecessorRegister, open.local);
     }
     block.setLocalsAtEntry(initialLocals);