# HG changeset patch # User Lukas Stadler # Date 1355762547 -3600 # Node ID 73139223837c7ba8785b9f6372363d6d9acd22b0 # Parent c305a0315bea0e9a0ec17f6246051b96530c2881# Parent b903c1099f415efd2d0a9dde6e2c22f10b34dbc0 Merge diff -r b903c1099f41 -r 73139223837c graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java --- 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); diff -r b903c1099f41 -r 73139223837c graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/NewObjectSnippets.java --- 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); diff -r b903c1099f41 -r 73139223837c graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ReturnNode.java --- 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(); } diff -r b903c1099f41 -r 73139223837c graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/WordTypeRewriterPhase.java --- 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); - } - } } }