Mercurial > hg > graal-jvmci-8
changeset 18885:0e9ae9a7e675
made some hash codes stable across VM executions to support replay compilation
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 20 Jan 2015 16:53:28 +0100 |
parents | 0857a4186ecd |
children | 9afe8fbe088c |
files | graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NullConstant.java graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/ArithmeticOpTable.java |
diffstat | 2 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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> 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; } /**