changeset 19578:f918e65eb2bb

Simplify scheduleOutOfLoops.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 24 Feb 2015 00:07:00 +0100
parents 8a764553675d
children 3df56ce39922
files graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java
diffstat 1 files changed, 11 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java	Tue Feb 24 00:00:24 2015 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java	Tue Feb 24 00:07:00 2015 +0100
@@ -704,14 +704,19 @@
         }
         Block cur = latestBlock;
         Block result = latestBlock;
-        while (cur.getLoop() != null && cur != earliest && cur.getDominator() != null) {
-            Block dom = cur.getDominator();
-            if (dom.getLoopDepth() < result.getLoopDepth()) {
-                result = dom;
+        Loop<?> earliestLoop = earliest.getLoop();
+        while (true) {
+            Loop<?> curLoop = cur.getLoop();
+            if (curLoop == earliestLoop) {
+                return result;
+            } else {
+                Block dom = cur.getDominator();
+                if (dom.getLoopDepth() < result.getLoopDepth()) {
+                    result = dom;
+                }
+                cur = dom;
             }
-            cur = dom;
         }
-        return result;
     }
 
     /**