# HG changeset patch # User Doug Simon # Date 1421769208 -3600 # Node ID 0e9ae9a7e675efe9f30d4040258dcddf66f9cf8c # Parent 0857a4186ecdffe1a782dba3f3205c77999d7532 made some hash codes stable across VM executions to support replay compilation diff -r 0857a4186ecd -r 0e9ae9a7e675 graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NullConstant.java --- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NullConstant.java Tue Jan 20 16:52:16 2015 +0100 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NullConstant.java Tue Jan 20 16:53:28 2015 +0100 @@ -85,7 +85,7 @@ @Override public int hashCode() { - return System.identityHashCode(this); + return 13; } @Override diff -r 0857a4186ecd -r 0e9ae9a7e675 graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/ArithmeticOpTable.java --- a/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/ArithmeticOpTable.java Tue Jan 20 16:52:16 2015 +0100 +++ b/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/ArithmeticOpTable.java Tue Jan 20 16:53:28 2015 +0100 @@ -79,6 +79,7 @@ private final IntegerConvertOp narrow; private final FloatConvertOp[] floatConvert; + private final int hash; public static ArithmeticOpTable forStamp(Stamp s) { if (s instanceof ArithmeticStamp) { @@ -170,6 +171,13 @@ this.narrow = narrow; this.floatConvert = new FloatConvertOp[FloatConvert.values().length]; floatConvert.forEach(op -> this.floatConvert[op.getFloatConvert().ordinal()] = op); + + this.hash = Objects.hash(neg, add, sub, mul, div, rem, not, and, or, xor, shl, shr, ushr, abs, sqrt, zeroExtend, signExtend, narrow, floatConvert); + } + + @Override + public int hashCode() { + return hash; } /**