Mercurial > hg > graal-compiler
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); }