changeset 7252:73139223837c

Merge
author Lukas Stadler <lukas.stadler@jku.at>
date Mon, 17 Dec 2012 17:42:27 +0100
parents c305a0315bea (diff) b903c1099f41 (current diff)
children c66968130037
files
diffstat 4 files changed, 6 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java	Mon Dec 17 17:15:11 2012 +0100
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java	Mon Dec 17 17:42:27 2012 +0100
@@ -517,8 +517,8 @@
     @Override
     public void visitReturn(ReturnNode x) {
         Value operand = Value.ILLEGAL;
-        if (x.kind() != Kind.Void) {
-            operand = resultOperandFor(x.kind());
+        if (x.result() != null) {
+            operand = resultOperandFor(x.result().kind());
             emitMove(operand(x.result()), operand);
         }
         emitReturn(operand);
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/NewObjectSnippets.java	Mon Dec 17 17:15:11 2012 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/NewObjectSnippets.java	Mon Dec 17 17:42:27 2012 +0100
@@ -138,7 +138,7 @@
                     @ConstantParameter("type") ResolvedJavaType type) {
         if (!belowThan(length, MAX_ARRAY_FAST_PATH_ALLOCATION_LENGTH)) {
             // This handles both negative array sizes and very large array sizes
-            DeoptimizeNode.deopt(DeoptimizationAction.InvalidateReprofile, DeoptimizationReason.RuntimeConstraint);
+            DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint);
         }
         int allocationSize = computeArrayAllocationSize(length, alignment, headerSize, log2ElementSize);
         Word memory = TLABAllocateNode.allocateVariableSize(allocationSize);
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ReturnNode.java	Mon Dec 17 17:15:11 2012 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ReturnNode.java	Mon Dec 17 17:42:27 2012 +0100
@@ -40,13 +40,12 @@
      * @param result the instruction producing the result for this return; {@code null} if this is a void return
      */
     public ReturnNode(ValueNode result) {
-        super(result == null ? StampFactory.forVoid() : result.stamp());
+        super(StampFactory.forVoid());
         this.result = result;
     }
 
     @Override
     public boolean verify() {
-        assertTrue((result == null && stamp() == StampFactory.forVoid()) || (result != null && kind() == result.kind()), "invalid stamp");
         return super.verify();
     }
 
--- a/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/WordTypeRewriterPhase.java	Mon Dec 17 17:15:11 2012 +0100
+++ b/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/WordTypeRewriterPhase.java	Mon Dec 17 17:42:27 2012 +0100
@@ -33,6 +33,7 @@
 import com.oracle.graal.nodes.type.*;
 import com.oracle.graal.nodes.util.*;
 import com.oracle.graal.phases.*;
+import com.oracle.graal.phases.util.*;
 import com.oracle.graal.snippets.Word.Opcode;
 import com.oracle.graal.snippets.Word.Operation;
 
@@ -53,7 +54,7 @@
 
     @Override
     protected void run(StructuredGraph graph) {
-        for (Node n : graph.getNodes()) {
+        for (Node n : GraphOrder.forwardGraph(graph)) {
             if (n instanceof ValueNode) {
                 ValueNode valueNode = (ValueNode) n;
                 if (isWord(valueNode)) {
@@ -313,16 +314,5 @@
     private void changeToWord(ValueNode valueNode) {
         assert !(valueNode instanceof ConstantNode) : "boxed Word constants should not appear in a snippet graph: " + valueNode + ", stamp: " + valueNode.stamp();
         valueNode.setStamp(StampFactory.forKind(wordKind));
-
-        // Propagate word kind.
-        for (Node n : valueNode.usages()) {
-            if (n instanceof PhiNode) {
-                changeToWord((ValueNode) n);
-                PhiNode phi = (PhiNode) n;
-                assert phi.type() == PhiType.Value;
-            } else if (n instanceof ReturnNode) {
-                changeToWord((ValueNode) n);
-            }
-        }
     }
 }