Mercurial > hg > graal-compiler
changeset 14815:61821c3e9235
Track AbstractBlock in LIRGenerator.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Wed, 19 Mar 2014 15:13:13 +0100 |
parents | f200eb890729 |
children | 836d558c3a5f |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java |
diffstat | 2 files changed, 9 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java Wed Mar 19 15:10:28 2014 +0100 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java Wed Mar 19 15:13:13 2014 +0100 @@ -74,7 +74,7 @@ private final NodeMap<Value> nodeOperands; private final DebugInfoBuilder debugInfoBuilder; - protected Block currentBlock; + protected AbstractBlock<?> currentBlock; private final int traceLevel; private final boolean printIRWithLIR; @@ -250,13 +250,14 @@ constantLoads = new HashMap<>(); } LoadConstant load = constantLoads.get(value); + assert currentBlock instanceof Block; if (load == null) { int index = res.getLIR().getLIRforBlock(currentBlock).size(); loadedValue = emitMove(value); LIRInstruction op = res.getLIR().getLIRforBlock(currentBlock).get(index); - constantLoads.put(value, new LoadConstant(loadedValue, currentBlock, index, op)); + constantLoads.put(value, new LoadConstant(loadedValue, (Block) currentBlock, index, op)); } else { - Block dominator = ControlFlowGraph.commonDominator(load.block, currentBlock); + Block dominator = ControlFlowGraph.commonDominator(load.block, (Block) currentBlock); loadedValue = load.variable; if (dominator != load.block) { load.unpin(res.getLIR()); @@ -341,7 +342,8 @@ int suxIndex = currentBlock.getSuccessors().indexOf(result); assert suxIndex != -1 : "Block not in successor list of current block"; - return LabelRef.forSuccessor(res.getLIR(), currentBlock, suxIndex); + assert currentBlock instanceof Block; + return LabelRef.forSuccessor(res.getLIR(), (Block) currentBlock, suxIndex); } /**
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Wed Mar 19 15:10:28 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Wed Mar 19 15:13:13 2014 +0100 @@ -59,6 +59,7 @@ import com.oracle.graal.lir.amd64.AMD64Move.StoreOp; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.calc.*; +import com.oracle.graal.nodes.cfg.*; import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.java.*; import com.oracle.graal.nodes.java.MethodCallTargetNode.InvokeKind; @@ -163,7 +164,8 @@ emitIncomingValues(params); - saveRbp = new SaveRbp(new NoOp(currentBlock, res.getLIR().getLIRforBlock(currentBlock).size())); + assert currentBlock instanceof Block; + saveRbp = new SaveRbp(new NoOp((Block) currentBlock, res.getLIR().getLIRforBlock(currentBlock).size())); append(saveRbp.placeholder); for (ParameterNode param : graph.getNodes(ParameterNode.class)) {