# HG changeset patch # User Lukas Stadler # Date 1431338368 -7200 # Node ID f026cf83c2bb76e26e96bda98fa1c489cd0b3e9b # Parent 2b8fb2b8b586815d8733a279833925a3fcef70d2 additional boxing elimination test diff -r 2b8fb2b8b586 -r f026cf83c2bb graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PartialEscapeAnalysisTest.java --- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PartialEscapeAnalysisTest.java Mon May 11 10:48:14 2015 +0200 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PartialEscapeAnalysisTest.java Mon May 11 11:59:28 2015 +0200 @@ -23,12 +23,14 @@ package com.oracle.graal.compiler.test.ea; import java.lang.ref.*; + import org.junit.*; import com.oracle.graal.compiler.test.*; import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.cfg.*; +import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.java.*; import com.oracle.graal.nodes.virtual.*; import com.oracle.graal.phases.common.*; @@ -191,6 +193,23 @@ assertTrue(graph.getNodes().filter(ReturnNode.class).first().result() == graph.getParameter(0)); } + public static int testBoxLoopSnippet(int n) { + Integer sum = 0; + for (Integer i = 0; i < n; i++) { + if (sum == null) { + sum = null; + } else { + sum += i; + } + } + return sum; + } + + @Test + public void testBoxLoop() { + testPartialEscapeAnalysis("testBoxLoopSnippet", 0, 0, BoxNode.class, UnboxNode.class); + } + @SafeVarargs protected final void testPartialEscapeAnalysis(String snippet, double expectedProbability, int expectedCount, Class... invalidNodeClasses) { prepareGraph(snippet, false);