Mercurial > hg > graal-compiler
changeset 2661:194d93d089bd
Towards clean up of canTrap().
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Wed, 11 May 2011 17:18:31 +0200 |
parents | 9f557e940180 |
children | 440ceca8e3d7 |
files | graal/GraalCompiler/src/com/sun/c1x/gen/LIRGenerator.java graal/GraalCompiler/src/com/sun/c1x/graph/GraphBuilder.java graal/GraalCompiler/src/com/sun/c1x/graph/IR.java graal/GraalCompiler/src/com/sun/c1x/ir/BlockEnd.java graal/GraalCompiler/src/com/sun/c1x/target/amd64/AMD64LIRGenerator.java |
diffstat | 5 files changed, 4 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/gen/LIRGenerator.java Wed May 11 16:40:22 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/gen/LIRGenerator.java Wed May 11 17:18:31 2011 +0200 @@ -625,13 +625,9 @@ @Override public void visitNullCheck(NullCheck x) { - // TODO: this is suboptimal because it may result in an unnecessary move CiValue value = load(x.object()); - if (x.canTrap()) { - LIRDebugInfo info = stateFor(x); - lir.nullCheck(value, info); - } - x.setOperand(value); + LIRDebugInfo info = stateFor(x); + lir.nullCheck(value, info); } @Override @@ -1595,7 +1591,7 @@ } public boolean requiresNullCheck() { - return current == null || current.canTrap() || current instanceof InstanceOf || current instanceof CheckCast; + return current == null || true; } public boolean requiresBoundsCheck() {
--- a/graal/GraalCompiler/src/com/sun/c1x/graph/GraphBuilder.java Wed May 11 16:40:22 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/graph/GraphBuilder.java Wed May 11 17:18:31 2011 +0200 @@ -32,7 +32,6 @@ import com.sun.c1x.*; import com.sun.c1x.debug.*; import com.sun.c1x.ir.*; -import com.sun.c1x.opt.*; import com.sun.c1x.util.*; import com.sun.c1x.value.*; import com.sun.cri.bytecode.*;
--- a/graal/GraalCompiler/src/com/sun/c1x/graph/IR.java Wed May 11 16:40:22 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/graph/IR.java Wed May 11 17:18:31 2011 +0200 @@ -192,7 +192,6 @@ // for the first and delete the rest. List<BlockBegin> list = target.blockPredecessors(); int x = list.indexOf(source); - assert x >= 0; list.set(x, newSucc); newSucc.addPredecessor(source); Iterator<BlockBegin> iterator = list.iterator();
--- a/graal/GraalCompiler/src/com/sun/c1x/ir/BlockEnd.java Wed May 11 16:40:22 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/ir/BlockEnd.java Wed May 11 17:18:31 2011 +0200 @@ -169,6 +169,7 @@ * Gets this block end's list of successors. * @return the successor list */ + @SuppressWarnings("unchecked") public List<BlockBegin> blockSuccessors() { List<BlockBegin> list = (List) successors().subList(super.successorCount() + SUCCESSOR_COUNT, super.successorCount() + blockSuccessorCount + SUCCESSOR_COUNT); return Collections.unmodifiableList(list);
--- a/graal/GraalCompiler/src/com/sun/c1x/target/amd64/AMD64LIRGenerator.java Wed May 11 16:40:22 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/target/amd64/AMD64LIRGenerator.java Wed May 11 17:18:31 2011 +0200 @@ -24,13 +24,11 @@ package com.sun.c1x.target.amd64; import com.sun.c1x.*; -import com.sun.c1x.alloc.OperandPool.VariableFlag; import com.sun.c1x.gen.*; import com.sun.c1x.globalstub.*; import com.sun.c1x.ir.*; import com.sun.c1x.lir.*; import com.sun.c1x.util.*; -import com.sun.c1x.value.*; import com.sun.cri.bytecode.*; import com.sun.cri.ci.*;