# HG changeset patch # User Roland Schatz # Date 1383561633 -3600 # Node ID ef6745a4597a3049f998f5edf1a860c062814ec7 # Parent a66169e30623225558eac1f093b7f32554d7fc2c Use Arrays.deepEquals in global value numbering. diff -r a66169e30623 -r ef6745a4597a graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Mon Nov 04 11:32:37 2013 +0100 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Mon Nov 04 11:40:33 2013 +0100 @@ -700,7 +700,9 @@ } } else { Object o = unsafe.getObject(n, dataOffsets[i]); - if (o != null) { + if (o instanceof Object[]) { + number += Arrays.deepHashCode((Object[]) o); + } else if (o != null) { number += o.hashCode(); } } @@ -780,8 +782,14 @@ Object objectB = unsafe.getObject(b, dataOffsets[i]); if (objectA != objectB) { if (objectA != null && objectB != null) { - if (!(objectA.equals(objectB))) { - return false; + if (objectA instanceof Object[] && objectB instanceof Object[]) { + if (!Arrays.deepEquals((Object[]) objectA, (Object[]) objectB)) { + return false; + } + } else { + if (!(objectA.equals(objectB))) { + return false; + } } } else { return false;