changeset 19919:df0608c34899

Don't walk out of loop when estimating unswitch benefits
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Mon, 16 Mar 2015 16:38:17 -0700
parents c278c8c727aa
children 7366593c0610
files graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java	Mon Mar 16 15:51:43 2015 -0700
+++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java	Mon Mar 16 16:38:17 2015 -0700
@@ -266,9 +266,12 @@
             if (loop().getExits().contains(b)) {
                 exits.add((LoopExitNode) b.getBeginNode());
             } else {
-                assert loop().getBlocks().contains(b);
                 blocks.add(b.getBeginNode());
-                work.addAll(b.getDominated());
+                for (Block d : b.getDominated()) {
+                    if (loop.getBlocks().contains(d)) {
+                        work.add(d);
+                    }
+                }
             }
         }
         return LoopFragment.computeNodes(branch.graph(), blocks, exits);