Mercurial > hg > graal-compiler
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; + } + }