changeset 12390:5151a7588384

SL: fixed literals generate unnecessary code.
author Christian Humer <christian.humer@gmail.com>
date Wed, 02 Oct 2013 15:57:17 +0200
parents 9d1a5d61cc11
children 7aa2a8c69ba3
files graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/NodeFactory.java graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/BigIntegerLiteralNode.java graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/IntegerLiteralNode.java graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/StringLiteralNode.java
diffstat 4 files changed, 35 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/NodeFactory.java	Wed Oct 02 15:33:25 2013 +0200
+++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/NodeFactory.java	Wed Oct 02 15:57:17 2013 +0200
@@ -63,7 +63,7 @@
     }
 
     public TypedNode createStringLiteral(String value) {
-        return StringLiteralNodeFactory.create(value);
+        return new StringLiteralNode(value);
     }
 
     public StatementNode createAssignment(String name, TypedNode right) {
@@ -112,9 +112,9 @@
 
     public TypedNode createNumericLiteral(String value) {
         try {
-            return IntegerLiteralNodeFactory.create(Integer.parseInt(value));
+            return new IntegerLiteralNode(Integer.parseInt(value));
         } catch (NumberFormatException ex) {
-            return BigIntegerLiteralNodeFactory.create(new BigInteger(value));
+            return new BigIntegerLiteralNode(new BigInteger(value));
         }
     }
 
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/BigIntegerLiteralNode.java	Wed Oct 02 15:33:25 2013 +0200
+++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/BigIntegerLiteralNode.java	Wed Oct 02 15:57:17 2013 +0200
@@ -24,9 +24,10 @@
 
 import java.math.*;
 
-import com.oracle.truffle.api.dsl.*;
+import com.oracle.truffle.api.frame.*;
+import com.oracle.truffle.api.nodes.*;
 
-public abstract class BigIntegerLiteralNode extends TypedNode {
+public final class BigIntegerLiteralNode extends TypedNode {
 
     private final BigInteger value;
 
@@ -34,8 +35,14 @@
         this.value = value;
     }
 
-    @Specialization
-    public BigInteger doBigInteger() {
+    @Override
+    public BigInteger executeBigInteger(VirtualFrame frame) throws UnexpectedResultException {
         return value;
     }
+
+    @Override
+    public Object executeGeneric(VirtualFrame frame) {
+        return value;
+    }
+
 }
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/IntegerLiteralNode.java	Wed Oct 02 15:33:25 2013 +0200
+++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/IntegerLiteralNode.java	Wed Oct 02 15:57:17 2013 +0200
@@ -22,9 +22,10 @@
  */
 package com.oracle.truffle.sl.nodes;
 
-import com.oracle.truffle.api.dsl.*;
+import com.oracle.truffle.api.frame.*;
+import com.oracle.truffle.api.nodes.*;
 
-public abstract class IntegerLiteralNode extends TypedNode {
+public final class IntegerLiteralNode extends TypedNode {
 
     private final int value;
 
@@ -32,8 +33,13 @@
         this.value = value;
     }
 
-    @Specialization
-    protected int doInteger() {
-        return this.value;
+    @Override
+    public int executeInteger(VirtualFrame frame) throws UnexpectedResultException {
+        return value;
+    }
+
+    @Override
+    public Object executeGeneric(VirtualFrame frame) {
+        return value;
     }
 }
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/StringLiteralNode.java	Wed Oct 02 15:33:25 2013 +0200
+++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/StringLiteralNode.java	Wed Oct 02 15:57:17 2013 +0200
@@ -22,9 +22,9 @@
  */
 package com.oracle.truffle.sl.nodes;
 
-import com.oracle.truffle.api.dsl.*;
+import com.oracle.truffle.api.frame.*;
 
-public abstract class StringLiteralNode extends TypedNode {
+public final class StringLiteralNode extends TypedNode {
 
     private final String value;
 
@@ -32,8 +32,14 @@
         this.value = value;
     }
 
-    @Specialization
-    protected String doString() {
+    @Override
+    public String executeString(VirtualFrame frame) {
         return value;
     }
+
+    @Override
+    public Object executeGeneric(VirtualFrame frame) {
+        return value;
+    }
+
 }