commit | cc1556056e7317b5b4350c6d92800895e9115550 | [log] [tgz] |
---|---|---|
author | Ian Zerny <zerny@google.com> | Fri Sep 11 09:48:45 2020 +0200 |
committer | Ian Zerny <zerny@google.com> | Fri Sep 11 09:48:45 2020 +0200 |
tree | 15646a2086b68cca52269365c6e2740170c87f7a | |
parent | 42bd2db5dbca783e0e52063784fbd5bc32707716 [diff] |
Version 2.1.67 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 b83b334..2c3a634 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.1.66"; + public static final String LABEL = "2.1.67"; 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 7eddfcc..480b00c 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 {