# HG changeset patch # User Josef Eisl # Date 1442488235 -7200 # Node ID e65519d858ba1c3ad26ecb661c12c36a8217617c # Parent 475ce82f1cddae9c012cb6f85d73050115666c08 LIRTest: allow void nodes. diff -r 475ce82f1cdd -r e65519d858ba graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTest.java --- a/graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTest.java Wed Sep 09 16:43:28 2015 +0200 +++ b/graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTest.java Thu Sep 17 13:10:35 2015 +0200 @@ -86,7 +86,10 @@ Stream v = values().stream().map(node -> gen.operand(node)); ops.generate(gen.getLIRGeneratorTool(), v.toArray(size -> new Value[size])); - gen.setResult(this, ops.getResult()); + Value result = ops.getResult(); + if (result != null) { + gen.setResult(this, result); + } } public LIRTestSpecification getLIROperations() { @@ -137,34 +140,47 @@ private InvocationPlugin lirTestPlugin = new InvocationPlugin() { public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode spec) { JavaKind returnKind = targetMethod.getSignature().getReturnKind(); - b.addPush(returnKind, new LIRTestNode(getSnippetReflection(), returnKind, spec, new ValueNode[]{})); + LIRTestNode node = new LIRTestNode(getSnippetReflection(), returnKind, spec, new ValueNode[]{}); + addNode(b, returnKind, node); return true; } public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode spec, ValueNode arg0) { JavaKind returnKind = targetMethod.getSignature().getReturnKind(); - b.addPush(returnKind, new LIRTestNode(getSnippetReflection(), returnKind, spec, new ValueNode[]{arg0})); + LIRTestNode node = new LIRTestNode(getSnippetReflection(), returnKind, spec, new ValueNode[]{arg0}); + addNode(b, returnKind, node); return true; } public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode spec, ValueNode arg0, ValueNode arg1) { JavaKind returnKind = targetMethod.getSignature().getReturnKind(); - b.addPush(returnKind, new LIRTestNode(getSnippetReflection(), returnKind, spec, new ValueNode[]{arg0, arg1})); + LIRTestNode node = new LIRTestNode(getSnippetReflection(), returnKind, spec, new ValueNode[]{arg0, arg1}); + addNode(b, returnKind, node); return true; } public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode spec, ValueNode arg0, ValueNode arg1, ValueNode arg2) { JavaKind returnKind = targetMethod.getSignature().getReturnKind(); - b.addPush(returnKind, new LIRTestNode(getSnippetReflection(), returnKind, spec, new ValueNode[]{arg0, arg1, arg2})); + LIRTestNode node = new LIRTestNode(getSnippetReflection(), returnKind, spec, new ValueNode[]{arg0, arg1, arg2}); + addNode(b, returnKind, node); return true; } public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode spec, ValueNode arg0, ValueNode arg1, ValueNode arg2, ValueNode arg3) { JavaKind returnKind = targetMethod.getSignature().getReturnKind(); - b.addPush(returnKind, new LIRTestNode(getSnippetReflection(), returnKind, spec, new ValueNode[]{arg0, arg1, arg2, arg3})); + LIRTestNode node = new LIRTestNode(getSnippetReflection(), returnKind, spec, new ValueNode[]{arg0, arg1, arg2, arg3}); + addNode(b, returnKind, node); return true; } + private void addNode(GraphBuilderContext b, JavaKind returnKind, LIRTestNode node) { + if (returnKind.equals(JavaKind.Void)) { + b.add(node); + } else { + b.addPush(returnKind, node); + } + } + }; @Override diff -r 475ce82f1cdd -r e65519d858ba graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTestSpecification.java --- a/graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTestSpecification.java Wed Sep 09 16:43:28 2015 +0200 +++ b/graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTestSpecification.java Thu Sep 17 13:10:35 2015 +0200 @@ -93,7 +93,6 @@ } public Value getResult() { - assert result != null : "Result not set (using setResult())"; return result; } }