Mercurial > hg > graal-jvmci-8
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); - } - } } }