# HG changeset patch # User Lukas Stadler # Date 1405612620 -7200 # Node ID 9d03461887a7a1844a9ed4b1d0643acd616a869f # Parent a657c513e1283b442923c024dd1d2d8dbbeee01e use Double.compare in FloatStamp diff -r a657c513e128 -r 9d03461887a7 graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/FloatStamp.java --- a/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/FloatStamp.java Thu Jul 17 14:30:12 2014 +0200 +++ b/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/FloatStamp.java Thu Jul 17 17:57:00 2014 +0200 @@ -159,9 +159,9 @@ double meetUpperBound = meetBounds(upperBound, other.upperBound, Math::max); double meetLowerBound = meetBounds(lowerBound, other.lowerBound, Math::min); boolean meetNonNaN = nonNaN && other.nonNaN; - if (meetLowerBound == lowerBound && meetUpperBound == upperBound && meetNonNaN == nonNaN) { + if (Double.compare(meetLowerBound, lowerBound) == 0 && Double.compare(meetUpperBound, upperBound) == 0 && meetNonNaN == nonNaN) { return this; - } else if (meetLowerBound == other.lowerBound && meetUpperBound == other.upperBound && meetNonNaN == other.nonNaN) { + } else if (Double.compare(meetLowerBound, other.lowerBound) == 0 && Double.compare(meetUpperBound, other.upperBound) == 0 && meetNonNaN == other.nonNaN) { return other; } else { return new FloatStamp(getBits(), meetLowerBound, meetUpperBound, meetNonNaN); @@ -181,9 +181,9 @@ double joinUpperBound = Math.min(upperBound, other.upperBound); double joinLowerBound = Math.max(lowerBound, other.lowerBound); boolean joinNonNaN = nonNaN || other.nonNaN; - if (joinLowerBound == lowerBound && joinUpperBound == upperBound && joinNonNaN == nonNaN) { + if (Double.compare(joinLowerBound, lowerBound) == 0 && Double.compare(joinUpperBound, upperBound) == 0 && joinNonNaN == nonNaN) { return this; - } else if (joinLowerBound == other.lowerBound && joinUpperBound == other.upperBound && joinNonNaN == other.nonNaN) { + } else if (Double.compare(joinLowerBound, other.lowerBound) == 0 && Double.compare(joinUpperBound, other.upperBound) == 0 && joinNonNaN == other.nonNaN) { return other; } else { return new FloatStamp(getBits(), joinLowerBound, joinUpperBound, joinNonNaN); @@ -239,7 +239,7 @@ @Override public Constant asConstant() { - if (nonNaN && lowerBound == upperBound) { + if (nonNaN && Double.compare(lowerBound, upperBound) == 0) { switch (getBits()) { case 32: return Constant.forFloat((float) lowerBound);