commit | f2f85c02ac521f1cf60b24052b5b87115a3e41f0 | [log] [tgz] |
---|---|---|
author | Ian Zerny <zerny@google.com> | Fri Sep 11 09:46:43 2020 +0200 |
committer | Ian Zerny <zerny@google.com> | Fri Sep 11 09:46:43 2020 +0200 |
tree | 9605a1d068ca468129c2f1603e179f9ea1b728d9 | |
parent | 2023aebfb16cb062e7f1288bc3ff839348c37cd6 [diff] |
Version 2.0.100 Cherry-pick: Check highest register for limit when splitting spilled intervals. CL: https://r8-review.googlesource.com/c/r8/+/53720 Bug: 167704467 Change-Id: I9f4122dfc6282037fe3c9790d65608874bd49dbc
diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java index 5978320..cd0482d 100644 --- a/src/main/java/com/android/tools/r8/Version.java +++ b/src/main/java/com/android/tools/r8/Version.java
@@ -11,7 +11,7 @@ // This field is accessed from release scripts using simple pattern matching. // Therefore, changing this field could break our release scripts. - public static final String LABEL = "2.0.99"; + public static final String LABEL = "2.0.100"; private Version() { }
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 5dcdbd8..a45e1ff 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
@@ -2257,8 +2257,9 @@ } LiveIntervalsUse firstUseWithLowerLimit = null; boolean hasUsesBeforeFirstUseWithLowerLimit = false; + int highestRegisterNumber = registerNumber + spilled.requiredRegisters() - 1; for (LiveIntervalsUse use : spilled.getUses()) { - if (registerNumber > use.getLimit()) { + if (highestRegisterNumber > use.getLimit()) { firstUseWithLowerLimit = use; break; } else {