Mercurial > hg > truffle
diff graal/GraalCompiler/src/com/sun/c1x/graph/IR.java @ 2760:127db58b044e
One more step towards schedule.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Fri, 20 May 2011 16:56:58 +0200 |
parents | b72e6638b9e6 |
children | d3398b21faf9 |
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/graph/IR.java Fri May 20 16:40:32 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/graph/IR.java Fri May 20 16:56:58 2011 +0200 @@ -24,6 +24,7 @@ import java.util.*; +import com.oracle.graal.graph.*; import com.oracle.max.graal.schedule.*; import com.sun.c1x.*; import com.sun.c1x.debug.*; @@ -84,6 +85,25 @@ } Schedule schedule = new Schedule(this.compilation.graph); + List<Block> blocks = schedule.getBlocks(); + NodeMap<Block> nodeToBlock = schedule.getNodeToBlock(); + Map<Block, LIRBlock> map = new HashMap<Block, LIRBlock>(); + for (Block b : blocks) { + map.put(b, new LIRBlock(b.blockID())); + } + + for (Block b : blocks) { + for (Block succ : b.getSuccessors()) { + map.get(b).blockSuccessors().add(map.get(succ)); + } + + for (Block pred : b.getPredecessors()) { + map.get(b).blockPredecessors().add(map.get(pred)); + } + } + + // TODO(tw): Schedule nodes within a block. + valueToBlock = computeLinearScanOrder(); verifyAndPrint("After linear scan order");