Version 0.1.19.

Merge: Fix register hints code to work when register is revoked.
CL: https://r8-review.googlesource.com/c/r8/+/8700

R=sgjesse@google.com
Change-Id: Ia6ff5ff6f3de3f108e90e80501e57066ccb6c0af
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index a3985a9..99ac5e2 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -55,7 +55,7 @@
  */
 public final class D8 {
 
-  private static final String VERSION = "v0.1.18";
+  private static final String VERSION = "v0.1.19";
   private static final int STATUS_ERROR = 1;
 
   private D8() {}
diff --git a/src/main/java/com/android/tools/r8/GenerateMainDexList.java b/src/main/java/com/android/tools/r8/GenerateMainDexList.java
index a90ee59..66415ec 100644
--- a/src/main/java/com/android/tools/r8/GenerateMainDexList.java
+++ b/src/main/java/com/android/tools/r8/GenerateMainDexList.java
@@ -28,7 +28,7 @@
 import java.util.stream.Collectors;
 
 public class GenerateMainDexList {
-  private static final String VERSION = "v0.1.18";
+  private static final String VERSION = "v0.1.19";
   private final Timing timing = new Timing("maindex");
   private final InternalOptions options;
 
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index dd47e37..0a16436 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -71,7 +71,7 @@
 
 public class R8 {
 
-  private static final String VERSION = "v0.1.18";
+  private static final String VERSION = "v0.1.19";
   private final Timing timing = new Timing("R8");
   private final InternalOptions options;
 
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 0f43ee5..d99e854 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
@@ -1274,6 +1274,12 @@
   // Attempt to allocate the hint register to the unhandled intervals.
   private boolean tryHint(LiveIntervals unhandledInterval, int registerConstraint,
       RegisterPositions freePositions, boolean needsRegisterPair, int register) {
+    // At some point after the hint has been added, the register allocator can
+    // decide to redo allocation for the hint interval. In that case, the hint will be
+    // reset to NO_REGISTER and provides no hinting info.
+    if (register == NO_REGISTER) {
+      return false;
+    }
     if (register + (needsRegisterPair ? 1 : 0) <= registerConstraint) {
       int freePosition = freePositions.get(register);
       if (needsRegisterPair) {