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;
     }
 }