# HG changeset patch # User Tom Rodriguez # Date 1435073661 25200 # Node ID bc502be71702c508aab3ebc5887f561630d9be60 # Parent eeeea6cc9139f4a6ff726556bf613bed136f5128# Parent 2bca65cc5f3ac79ba5af5204fc14cd8439ab91c7 Merge diff -r 2bca65cc5f3a -r bc502be71702 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Tue Jun 23 12:32:16 2015 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Tue Jun 23 08:34:21 2015 -0700 @@ -574,8 +574,8 @@ if (filter == null || filter.test(usage)) { boolean result = usage.getNodeClass().getInputEdges().replaceFirst(usage, this, other); assert assertTrue(result, "not found in inputs, usage: %s", usage); + maybeNotifyInputChanged(usage); if (other != null) { - maybeNotifyInputChanged(usage); other.addUsage(usage); } this.movUsageFromEndTo(i); diff -r 2bca65cc5f3a -r bc502be71702 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java Tue Jun 23 12:32:16 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java Tue Jun 23 08:34:21 2015 -0700 @@ -68,7 +68,7 @@ protected final InvokeKind invokeKind; protected MacroNode(NodeClass c, InvokeKind invokeKind, ResolvedJavaMethod targetMethod, int bci, JavaType returnType, ValueNode... arguments) { - super(c, StampFactory.forKind(returnType.getKind())); + super(c, returnStamp(returnType)); assert targetMethod.getSignature().getParameterCount(!targetMethod.isStatic()) == arguments.length; this.arguments = new NodeInputList<>(this, arguments); this.bci = bci; @@ -78,6 +78,15 @@ assert !isPlaceholderBci(bci); } + private static Stamp returnStamp(JavaType returnType) { + Kind kind = returnType.getKind(); + if (kind == Kind.Object) { + return StampFactory.declared((ResolvedJavaType) returnType); + } else { + return StampFactory.forKind(kind); + } + } + public int getBci() { return bci; }