Mercurial > hg > graal-jvmci-8
changeset 19593:5b24a15988fe
Fix scheduling of value proxy nodes.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 24 Feb 2015 21:02:22 +0100 |
parents | d28482893f28 |
children | 884188ccc9d8 3349fe56e6e9 |
files | graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SchedulingTest.java graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java |
diffstat | 2 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SchedulingTest.java Tue Feb 24 20:23:42 2015 +0100 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SchedulingTest.java Tue Feb 24 21:02:22 2015 +0100 @@ -66,7 +66,7 @@ for (BinaryArithmeticNode<?> node : graph.getNodes().filter(BinaryArithmeticNode.class)) { if (!(node instanceof AddNode)) { assertTrue(nodeToBlock.get(node) == nodeToBlock.get(loopExit)); - assertTrue(list.indexOf(node) < list.indexOf(loopExit)); + assertTrue(list.indexOf(node) + " < " + list.indexOf(loopExit) + ", " + node + ", " + loopExit, list.indexOf(node) < list.indexOf(loopExit)); } } }
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Tue Feb 24 20:23:42 2015 +0100 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Tue Feb 24 21:02:22 2015 +0100 @@ -1048,6 +1048,13 @@ return; } + if (i instanceof LoopExitNode) { + LoopExitNode loopExitNode = (LoopExitNode) i; + for (ProxyNode proxy : loopExitNode.proxies()) { + addToLatestSorting(proxy, state); + } + } + addToLatestSortingHelper(i, state); }