[LIR] Use the SSA value encoding strategy for debug-local references.

Bug: b/225838009
Change-Id: Ied0fca80ed68a45975a84062c10eef15bd3ea9e4
diff --git a/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java b/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
index 1f89cc6..e7891b0 100644
--- a/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
+++ b/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
@@ -260,7 +260,8 @@
       instruction.setBlock(currentBlock);
       int[] debugEndIndices = code.getDebugLocalEnds(index);
       if (debugEndIndices != null) {
-        for (int debugEndIndex : debugEndIndices) {
+        for (int encodedDebugEndIndex : debugEndIndices) {
+          int debugEndIndex = code.decodeValueIndex(encodedDebugEndIndex, index);
           Value debugValue = getValue(debugEndIndex);
           debugValue.addDebugLocalEnd(instruction);
         }
diff --git a/src/main/java/com/android/tools/r8/lightir/LirBuilder.java b/src/main/java/com/android/tools/r8/lightir/LirBuilder.java
index 926d64f..992e754 100644
--- a/src/main/java/com/android/tools/r8/lightir/LirBuilder.java
+++ b/src/main/java/com/android/tools/r8/lightir/LirBuilder.java
@@ -189,7 +189,9 @@
     int[] indices = new int[size];
     Iterator<V> iterator = endValues.iterator();
     for (int i = 0; i < size; i++) {
-      indices[i] = getValueIndex(iterator.next());
+      int valueIndex = getValueIndex(iterator.next());
+      int encodedValueIndex = ssaValueStrategy.encodeValueIndex(valueIndex, instructionValueIndex);
+      indices[i] = encodedValueIndex;
     }
     debugLocalEnds.put(instructionValueIndex, indices);
     return this;