# HG changeset patch # User Christian Humer # Date 1426069820 -3600 # Node ID e773cc48d3e8a71fc9f1474732fed7c904531c20 # Parent 8caabd6cf363f62cd32ee2390519e6bd96a7e96c Truffle-DSL: make specialization types mergable with other specialization types. diff -r 8caabd6cf363 -r e773cc48d3e8 graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MergeSpecializationsTest.java --- a/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MergeSpecializationsTest.java Tue Mar 10 21:13:07 2015 +0100 +++ b/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MergeSpecializationsTest.java Wed Mar 11 11:30:20 2015 +0100 @@ -84,27 +84,37 @@ @Test public void testMultithreadedMergeInOrder() { - multithreadedMerge(TestNodeFactory.getInstance(), new Executions(1, 1L << 32, 1.0), 1, 2, 3); + for (int i = 0; i < 100; i++) { + multithreadedMerge(TestNodeFactory.getInstance(), new Executions(1, 1L << 32, 1.0), 1, 2, 3); + } } @Test public void testMultithreadedMergeReverse() { - multithreadedMerge(TestNodeFactory.getInstance(), new Executions(1.0, 1L << 32, 1), 3, 2, 1); + for (int i = 0; i < 100; i++) { + multithreadedMerge(TestNodeFactory.getInstance(), new Executions(1.0, 1L << 32, 1), 3, 2, 1); + } } @Test public void testMultithreadedMergeCachedInOrder() { - multithreadedMerge(TestCachedNodeFactory.getInstance(), new Executions(1, 1L << 32, 1.0), 1, 2, 3); + for (int i = 0; i < 100; i++) { + multithreadedMerge(TestCachedNodeFactory.getInstance(), new Executions(1, 1L << 32, 1.0), 1, 2, 3); + } } @Test public void testMultithreadedMergeCachedTwoEntries() { - multithreadedMerge(TestCachedNodeFactory.getInstance(), new Executions(1, 2, 1.0), 1, 1, 3); + for (int i = 0; i < 100; i++) { + multithreadedMerge(TestCachedNodeFactory.getInstance(), new Executions(1, 2, 1.0), 1, 1, 3); + } } @Test public void testMultithreadedMergeCachedThreeEntries() { - multithreadedMerge(TestCachedNodeFactory.getInstance(), new Executions(1, 2, 3), 1, 1, 1); + for (int i = 0; i < 100; i++) { + multithreadedMerge(TestCachedNodeFactory.getInstance(), new Executions(1, 2, 3), 1, 1, 1); + } } private static void multithreadedMerge(NodeFactory factory, final Executions executions, int... order) { diff -r 8caabd6cf363 -r e773cc48d3e8 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java Tue Mar 10 21:13:07 2015 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java Wed Mar 11 11:30:20 2015 +0100 @@ -517,9 +517,7 @@ } }; - builder.startIf().string("isSame(other)").end().startBlock(); builder.tree(createGuardAndCast(group, typeSystem.getGenericTypeData(), currentLocals, executionFactory)); - builder.end(); builder.returnFalse(); return method; }