diff graal/com.oracle.graal.alloc/src/com/oracle/graal/alloc/ComputeBlockOrder.java @ 7331:88b3b9b9a47b

Experimentation with new probability based code emission order.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Thu, 10 Jan 2013 16:04:25 +0100
parents 40be0ff5a3ce
children 9f69799a1768
line wrap: on
line diff
--- a/graal/com.oracle.graal.alloc/src/com/oracle/graal/alloc/ComputeBlockOrder.java	Thu Jan 10 15:29:52 2013 +0100
+++ b/graal/com.oracle.graal.alloc/src/com/oracle/graal/alloc/ComputeBlockOrder.java	Thu Jan 10 16:04:25 2013 +0100
@@ -58,6 +58,22 @@
 
         countEdges(startBlock, null);
         computeOrder(startBlock);
+
+
+        List<Block> newCodeEmittingOrder = new ArrayList<>();
+        List<Block> outOfLine = new ArrayList<>();
+        for (Block b : codeEmittingOrder) {
+            if (b.getBeginNode().probability() > 0.07) {
+                newCodeEmittingOrder.add(b);
+            } else {
+                outOfLine.add(b);
+            }
+        }
+
+        for (Block b : outOfLine) {
+            newCodeEmittingOrder.add(b);
+        }
+        codeEmittingOrder = newCodeEmittingOrder;
     }
 
     /**