src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/Range.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/Range.java	Mon Mar 20 17:39:51 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/Range.java	Mon Mar 20 17:39:51 2017

*** 25,36 **** --- 25,34 ---- /** * Represents a range of integers from a start (inclusive) to an end (exclusive. */ public final class Range { public static final Range EndMarker = new Range(Integer.MAX_VALUE, Integer.MAX_VALUE, null); /** * The start of the range, inclusive. */ public int from;
*** 59,105 **** --- 57,108 ---- this.from = from; this.to = to; this.next = next; } + public boolean isEndMarker() { + assert from != Integer.MAX_VALUE || (to == Integer.MAX_VALUE && next == null); + return from == Integer.MAX_VALUE; + } + int intersectsAt(Range other) { Range r1 = this; Range r2 = other; assert r2 != null : "null ranges not allowed"; ! assert r1 != EndMarker && r2 != EndMarker : "empty ranges not allowed"; ! assert !r1.isEndMarker() && !r2.isEndMarker() : "empty ranges not allowed"; do { if (r1.from < r2.from) { if (r1.to <= r2.from) { r1 = r1.next; ! if (r1 == EndMarker) { ! if (r1.isEndMarker()) { return -1; } } else { return r2.from; } } else { if (r2.from < r1.from) { if (r2.to <= r1.from) { r2 = r2.next; ! if (r2 == EndMarker) { ! if (r2.isEndMarker()) { return -1; } } else { return r1.from; } } else { // r1.from() == r2.from() if (r1.from == r1.to) { r1 = r1.next; ! if (r1 == EndMarker) { ! if (r1.isEndMarker()) { return -1; } } else { if (r2.from == r2.to) { r2 = r2.next; ! if (r2 == EndMarker) { ! if (r2.isEndMarker()) { return -1; } } else { return r1.from; }

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/Range.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File