changeset 23313:0ca595288320

Clean up in the scheduling phase.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 15 Jan 2016 18:20:21 +0100
parents ddd530cc44c9
children 00a2a20e8109
files graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java
diffstat 1 files changed, 8 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java	Fri Jan 15 18:02:41 2016 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java	Fri Jan 15 18:20:21 2016 +0100
@@ -140,25 +140,20 @@
             // assert GraphOrder.assertNonCyclicGraph(graph);
             cfg = ControlFlowGraph.compute(graph, true, true, true, false);
 
+            NodeMap<Block> currentNodeMap = graph.createNodeMap();
+            NodeBitMap visited = graph.createNodeBitMap();
+            BlockMap<List<Node>> earliestBlockToNodesMap = new BlockMap<>(cfg);
+            this.nodeToBlockMap = currentNodeMap;
+            this.blockToNodesMap = earliestBlockToNodesMap;
+
             if (selectedStrategy == SchedulingStrategy.EARLIEST) {
                 // Assign early so we are getting a context in case of an exception.
-                this.nodeToBlockMap = graph.createNodeMap();
-                this.blockToNodesMap = new BlockMap<>(cfg);
-                NodeBitMap visited = graph.createNodeBitMap();
-                scheduleEarliestIterative(blockToNodesMap, nodeToBlockMap, visited, graph, null, immutableGraph);
+                scheduleEarliestIterative(earliestBlockToNodesMap, currentNodeMap, visited, graph, null, immutableGraph);
             } else {
-                NodeMap<Block> currentNodeMap = graph.createNodeMap();
-                BlockMap<List<Node>> earliestBlockToNodesMap = new BlockMap<>(cfg);
-                NodeBitMap visited = graph.createNodeBitMap();
                 NodeBitMap unreachableNodes = immutableGraph ? graph.createNodeBitMap() : null;
+                scheduleEarliestIterative(earliestBlockToNodesMap, currentNodeMap, visited, graph, unreachableNodes, immutableGraph);
 
-                // Assign early so we are getting a context in case of an exception.
-                this.blockToNodesMap = earliestBlockToNodesMap;
-                this.nodeToBlockMap = currentNodeMap;
-
-                scheduleEarliestIterative(earliestBlockToNodesMap, currentNodeMap, visited, graph, unreachableNodes, immutableGraph);
                 BlockMap<List<Node>> latestBlockToNodesMap = new BlockMap<>(cfg);
-
                 for (Block b : cfg.getBlocks()) {
                     latestBlockToNodesMap.put(b, new ArrayList<Node>());
                 }
@@ -171,7 +166,6 @@
                 assert MemoryScheduleVerification.check(cfg.getStartBlock(), latestBlockToNodesMap);
 
                 this.blockToNodesMap = latestBlockToNodesMap;
-                this.nodeToBlockMap = currentNodeMap;
 
                 cfg.setNodeToBlock(currentNodeMap);
             }