# HG changeset patch # User Thomas Wuerthinger # Date 1305127111 -7200 # Node ID 194d93d089bd68c7da128f6db067c9676f951fd6 # Parent 9f557e9401803a746c0f494efc6397a8939690d0 Towards clean up of canTrap(). diff -r 9f557e940180 -r 194d93d089bd graal/GraalCompiler/src/com/sun/c1x/gen/LIRGenerator.java --- 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() { diff -r 9f557e940180 -r 194d93d089bd graal/GraalCompiler/src/com/sun/c1x/graph/GraphBuilder.java --- 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.*; diff -r 9f557e940180 -r 194d93d089bd graal/GraalCompiler/src/com/sun/c1x/graph/IR.java --- 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 list = target.blockPredecessors(); int x = list.indexOf(source); - assert x >= 0; list.set(x, newSucc); newSucc.addPredecessor(source); Iterator iterator = list.iterator(); diff -r 9f557e940180 -r 194d93d089bd graal/GraalCompiler/src/com/sun/c1x/ir/BlockEnd.java --- 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 blockSuccessors() { List list = (List) successors().subList(super.successorCount() + SUCCESSOR_COUNT, super.successorCount() + blockSuccessorCount + SUCCESSOR_COUNT); return Collections.unmodifiableList(list); diff -r 9f557e940180 -r 194d93d089bd graal/GraalCompiler/src/com/sun/c1x/target/amd64/AMD64LIRGenerator.java --- 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.*;