# HG changeset patch # User Christian Humer # Date 1372703317 -7200 # Node ID 447465567e6feb0c108f2e59818acd05781dc3ba # Parent 99b58803d6d9210d50861eca1989a04b03e6d6e6 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. diff -r 99b58803d6d9 -r 447465567e6f graal/com.oracle.truffle.api.codegen/src/com/oracle/truffle/api/codegen/Generic.java --- 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; - } diff -r 99b58803d6d9 -r 447465567e6f graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/FrameSlotNode.java --- 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); } diff -r 99b58803d6d9 -r 447465567e6f graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/LessThanNode.java --- 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()); - } } diff -r 99b58803d6d9 -r 447465567e6f graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/PrintNode.java --- 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()); } diff -r 99b58803d6d9 -r 447465567e6f graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ReadLocalNode.java --- 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); - } - } diff -r 99b58803d6d9 -r 447465567e6f graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/TernaryNode.java --- 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; } } diff -r 99b58803d6d9 -r 447465567e6f graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/WriteLocalNode.java --- 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); - } - }