# HG changeset patch # User Christian Humer # Date 1380722237 -7200 # Node ID 5151a758838428e0fe46363a767696ff4ba34d53 # Parent 9d1a5d61cc11a1cd4cf828a4f98114dbf0411e0e SL: fixed literals generate unnecessary code. diff -r 9d1a5d61cc11 -r 5151a7588384 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/NodeFactory.java --- 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)); } } diff -r 9d1a5d61cc11 -r 5151a7588384 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/BigIntegerLiteralNode.java --- 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; + } + } diff -r 9d1a5d61cc11 -r 5151a7588384 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/IntegerLiteralNode.java --- 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; } } diff -r 9d1a5d61cc11 -r 5151a7588384 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/StringLiteralNode.java --- 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; + } + }