changeset 11625:94a28e1b2c86

Add a test to ConditionalEliminationTest
author Gilles Duboscq <duboscq@ssw.jku.at>
date Wed, 11 Sep 2013 15:19:58 +0200
parents 3c2dc8364696
children 340e67bf1758
files graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest.java
diffstat 1 files changed, 32 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest.java	Wed Sep 11 10:36:09 2013 +0200
+++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest.java	Wed Sep 11 15:19:58 2013 +0200
@@ -229,4 +229,36 @@
         assertEquals(0, graph.getNodes().filter(StoreFieldNode.class).count());
     }
 
+    public static String testInstanceOfCheckCastSnippet(Object e) {
+        if (e instanceof Entry) {
+            return ((Entry) e).name;
+        }
+        return null;
+    }
+
+    @Test
+    public void testInstanceOfCheckCast() {
+        StructuredGraph graph = parse("testInstanceOfCheckCastSnippet");
+        new CanonicalizerPhase(true).apply(graph, new PhaseContext(runtime(), null, replacements));
+        new ConditionalEliminationPhase(runtime()).apply(graph);
+        new CanonicalizerPhase(true).apply(graph, new PhaseContext(runtime(), null, replacements));
+
+        assertEquals(0, graph.getNodes().filter(CheckCastNode.class).count());
+    }
+
+    @Test
+    @Ignore
+    public void testInstanceOfCheckCastLowered() {
+        StructuredGraph graph = parse("testInstanceOfCheckCastSnippet");
+
+        CanonicalizerPhase canonicalizer = new CanonicalizerPhase(true);
+        PhaseContext context = new PhaseContext(runtime(), null, replacements);
+
+        new LoweringPhase(canonicalizer).apply(graph, context);
+        canonicalizer.apply(graph, context);
+        new ConditionalEliminationPhase(runtime()).apply(graph);
+        canonicalizer.apply(graph, context);
+
+        assertEquals(0, graph.getNodes().filter(GuardNode.class).count());
+    }
 }