changeset 10593:447465567e6f

Truffle-DSL: API change: removed useSpecializations in @Generic. The way of specifying this behaviour now is to create a @Specialization which won't rewrite. This way there is no generic case anymore which could use the specializations for its implementation.
author Christian Humer <christian.humer@gmail.com>
date Mon, 01 Jul 2013 20:28:37 +0200
parents 99b58803d6d9
children 72e6b178de16
files graal/com.oracle.truffle.api.codegen/src/com/oracle/truffle/api/codegen/Generic.java graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/FrameSlotNode.java graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/LessThanNode.java graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/PrintNode.java graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ReadLocalNode.java graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/TernaryNode.java graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/WriteLocalNode.java
diffstat 7 files changed, 6 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api.codegen/src/com/oracle/truffle/api/codegen/Generic.java	Mon Jul 01 20:24:49 2013 +0200
+++ b/graal/com.oracle.truffle.api.codegen/src/com/oracle/truffle/api/codegen/Generic.java	Mon Jul 01 20:28:37 2013 +0200
@@ -31,6 +31,4 @@
 @Target({ElementType.METHOD})
 public @interface Generic {
 
-    boolean useSpecializations() default true;
-
 }
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/FrameSlotNode.java	Mon Jul 01 20:24:49 2013 +0200
+++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/FrameSlotNode.java	Mon Jul 01 20:28:37 2013 +0200
@@ -32,5 +32,4 @@
         this.slot = slot;
     }
 
-    protected abstract FrameSlotNode specialize(Class<?> clazz);
 }
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/LessThanNode.java	Mon Jul 01 20:24:49 2013 +0200
+++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/LessThanNode.java	Mon Jul 01 20:28:37 2013 +0200
@@ -42,9 +42,4 @@
     public boolean doString(Object left, Object right) {
         return left.toString().compareTo(right.toString()) < 0;
     }
-
-    @Generic
-    public boolean doGeneric(Object left, Object right) {
-        throw new RuntimeException("comparison not defined for types " + left.getClass().getSimpleName() + ", " + right.getClass().getSimpleName());
-    }
 }
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/PrintNode.java	Mon Jul 01 20:24:49 2013 +0200
+++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/PrintNode.java	Mon Jul 01 20:28:37 2013 +0200
@@ -54,7 +54,7 @@
         output.print(value);
     }
 
-    @Generic
+    @Specialization
     public void doGeneric(Object value) {
         output.print(value.toString());
     }
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ReadLocalNode.java	Mon Jul 01 20:24:49 2013 +0200
+++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ReadLocalNode.java	Mon Jul 01 20:28:37 2013 +0200
@@ -45,7 +45,7 @@
         return frame.getBoolean(slot);
     }
 
-    @Generic(useSpecializations = false)
+    @Specialization
     public Object doObject(VirtualFrame frame) {
         try {
             return frame.getObject(slot);
@@ -54,9 +54,4 @@
         }
     }
 
-    @Override
-    protected FrameSlotNode specialize(Class<?> clazz) {
-        return ReadLocalNodeFactory.createSpecialized(this, clazz);
-    }
-
 }
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/TernaryNode.java	Mon Jul 01 20:24:49 2013 +0200
+++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/TernaryNode.java	Mon Jul 01 20:28:37 2013 +0200
@@ -11,7 +11,7 @@
  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  * version 2 for more details (a copy is included in the LICENSE file that
  * accompanied this code).
- *
+ *  
  * You should have received a copy of the GNU General Public License version
  * 2 along with this work; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
@@ -23,7 +23,6 @@
 package com.oracle.truffle.sl.nodes;
 
 import java.math.*;
-
 import com.oracle.truffle.api.codegen.*;
 
 @SuppressWarnings("unused")
@@ -50,8 +49,8 @@
         return hasIfPart ? ifPart : elsePart;
     }
 
-    @Generic
-    public Object doGeneric(boolean condition, boolean hasIfPart, Object ifPart, boolean hasElsePart, Object elsePart) {
+    @Specialization
+    public Object doObject(boolean condition, boolean hasIfPart, Object ifPart, boolean hasElsePart, Object elsePart) {
         return hasIfPart ? ifPart : elsePart;
     }
 }
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/WriteLocalNode.java	Mon Jul 01 20:24:49 2013 +0200
+++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/WriteLocalNode.java	Mon Jul 01 20:28:37 2013 +0200
@@ -48,7 +48,7 @@
         return right;
     }
 
-    @Generic(useSpecializations = false)
+    @Specialization
     public Object writeGeneric(VirtualFrame frame, Object right) {
         try {
             frame.setObject(slot, right);
@@ -58,9 +58,4 @@
         return right;
     }
 
-    @Override
-    protected FrameSlotNode specialize(Class<?> clazz) {
-        return WriteLocalNodeFactory.createSpecialized(this, clazz);
-    }
-
 }