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.*;