# HG changeset patch # User Josef Eisl # Date 1397586952 -7200 # Node ID d0e2d565176fc7b0a7b9edb33e1a90e4fe4c8d7b # Parent dc774fe9d0e0106368e198da303ed1883f6c7029 BaselineCompiler: copy frame state builder at loop headers. diff -r dc774fe9d0e0 -r d0e2d565176f graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineBytecodeParser.java --- a/graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineBytecodeParser.java Tue Apr 15 19:52:23 2014 +0200 +++ b/graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineBytecodeParser.java Tue Apr 15 20:35:52 2014 +0200 @@ -717,6 +717,14 @@ assert block.getPredecessorCount() > 0; } + if (block.isLoopHeader) { + /* + * We need to preserve the frame state builder of the loop header so that we can merge + * values for phi functions, so make a copy of it. + */ + block.entryState = frameState.copy(); + + } int endBCI = stream.endBCI(); stream.setBCI(block.startBci); diff -r dc774fe9d0e0 -r d0e2d565176f test/baseline_whitelist.txt --- a/test/baseline_whitelist.txt Tue Apr 15 19:52:23 2014 +0200 +++ b/test/baseline_whitelist.txt Tue Apr 15 20:35:52 2014 +0200 @@ -1,6 +1,7 @@ com.oracle.graal.jtt.loop.Loop03 com.oracle.graal.jtt.loop.Loop04 com.oracle.graal.jtt.loop.Loop08 +com.oracle.graal.jtt.loop.Loop11 com.oracle.graal.jtt.bytecode.BC_iadd com.oracle.graal.jtt.bytecode.BC_iadd2 com.oracle.graal.jtt.bytecode.BC_iadd3