Mercurial > hg > graal-compiler
changeset 22657:e65519d858ba
LIRTest: allow void nodes.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Thu, 17 Sep 2015 13:10:35 +0200 |
parents | 475ce82f1cdd |
children | d08945fe8cb4 |
files | graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTest.java graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTestSpecification.java |
diffstat | 2 files changed, 22 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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<Value> 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
--- 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; } }