# HG changeset patch # User Christian Humer # Date 1366453047 -7200 # Node ID aa9ffb3a715eeb4f42cdf2ab2f639cb8e423e905 # Parent 67bee207f20c878efa9b1df6d40c52921d3a0c77 Updated Truffle-SL to new codegen API. diff -r 67bee207f20c -r aa9ffb3a715e 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 Sat Apr 20 12:17:03 2013 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/NodeFactory.java Sat Apr 20 12:17:27 2013 +0200 @@ -74,7 +74,7 @@ if (expressions.size() >= 1) { StatementNode[] nodes = new StatementNode[expressions.size() + 1]; for (int i = 0; i < expressions.size(); i++) { - nodes[i] = PrintNodeFactory.create(expressions.get(i), printOutput); + nodes[i] = PrintNodeFactory.create(printOutput, expressions.get(i)); } nodes[expressions.size()] = new PrintLineNode(printOutput); return new BlockNode(nodes); diff -r 67bee207f20c -r aa9ffb3a715e graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ArithmeticNode.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ArithmeticNode.java Sat Apr 20 12:17:03 2013 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ArithmeticNode.java Sat Apr 20 12:17:27 2013 +0200 @@ -29,24 +29,8 @@ public abstract class ArithmeticNode extends BinaryNode { - public ArithmeticNode(TypedNode left, TypedNode right) { - super(left, right); - } - - protected ArithmeticNode(ArithmeticNode node) { - super(node); - } - public abstract static class AddNode extends ArithmeticNode { - public AddNode(TypedNode left, TypedNode right) { - super(left, right); - } - - protected AddNode(AddNode node) { - super(node); - } - @Specialization(rewriteOn = ArithmeticException.class) int doInt(int left, int right) { return ExactMath.addExact(left, right); @@ -70,14 +54,6 @@ public abstract static class SubNode extends ArithmeticNode { - public SubNode(TypedNode left, TypedNode right) { - super(left, right); - } - - protected SubNode(SubNode node) { - super(node); - } - @Specialization(rewriteOn = ArithmeticException.class) int sub(int left, int right) { return ExactMath.subtractExact(left, right); @@ -92,14 +68,6 @@ public abstract static class DivNode extends ArithmeticNode { - public DivNode(TypedNode left, TypedNode right) { - super(left, right); - } - - protected DivNode(DivNode node) { - super(node); - } - @Specialization(rewriteOn = ArithmeticException.class) int div(int left, int right) { return left / right; @@ -113,14 +81,6 @@ public abstract static class MulNode extends ArithmeticNode { - public MulNode(TypedNode left, TypedNode right) { - super(left, right); - } - - protected MulNode(MulNode node) { - super(node); - } - @Specialization(rewriteOn = ArithmeticException.class) int mul(int left, int right) { return ExactMath.multiplyExact(left, right); diff -r 67bee207f20c -r aa9ffb3a715e graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/BinaryNode.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/BinaryNode.java Sat Apr 20 12:17:03 2013 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/BinaryNode.java Sat Apr 20 12:17:27 2013 +0200 @@ -24,20 +24,7 @@ import com.oracle.truffle.api.codegen.*; -@ExecuteChildren({"leftNode", "rightNode"}) +@NodeChildren({@NodeChild("leftNode"), @NodeChild("rightNode")}) public abstract class BinaryNode extends TypedNode { - @Child protected TypedNode leftNode; - - @Child protected TypedNode rightNode; - - public BinaryNode(TypedNode left, TypedNode right) { - this.leftNode = adoptChild(left); - this.rightNode = adoptChild(right); - } - - public BinaryNode(BinaryNode node) { - this(node.leftNode, node.rightNode); - } - } diff -r 67bee207f20c -r aa9ffb3a715e graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/IfNode.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/IfNode.java Sat Apr 20 12:17:03 2013 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/IfNode.java Sat Apr 20 12:17:27 2013 +0200 @@ -25,23 +25,19 @@ import com.oracle.truffle.api.codegen.*; import com.oracle.truffle.api.frame.*; -@ExecuteChildren("conditionNode") +@NodeChild(value = "conditionNode", type = ConditionNode.class) public abstract class IfNode extends StatementNode { - @Child protected ConditionNode conditionNode; - @Child private StatementNode thenPartNode; - @Child private StatementNode elsePartNode; - public IfNode(ConditionNode condition, StatementNode thenPart, StatementNode elsePart) { - this.conditionNode = adoptChild(condition); + public IfNode(StatementNode thenPart, StatementNode elsePart) { this.thenPartNode = adoptChild(thenPart); this.elsePartNode = adoptChild(elsePart); } protected IfNode(IfNode node) { - this(node.conditionNode, node.thenPartNode, node.elsePartNode); + this(node.thenPartNode, node.elsePartNode); } @Specialization diff -r 67bee207f20c -r aa9ffb3a715e 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 Sat Apr 20 12:17:03 2013 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/LessThanNode.java Sat Apr 20 12:17:27 2013 +0200 @@ -28,14 +28,6 @@ public abstract class LessThanNode extends BinaryNode { - public LessThanNode(TypedNode left, TypedNode right) { - super(left, right); - } - - public LessThanNode(LessThanNode node) { - this(node.leftNode, node.rightNode); - } - @Specialization public boolean doInteger(int left, int right) { return left < right; diff -r 67bee207f20c -r aa9ffb3a715e graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/LogicalAndNode.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/LogicalAndNode.java Sat Apr 20 12:17:03 2013 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/LogicalAndNode.java Sat Apr 20 12:17:27 2013 +0200 @@ -27,14 +27,6 @@ @SuppressWarnings("unused") public abstract class LogicalAndNode extends BinaryNode { - public LogicalAndNode(TypedNode leftNode, TypedNode rightNode) { - super(leftNode, rightNode); - } - - public LogicalAndNode(LogicalAndNode node) { - this(node.leftNode, node.rightNode); - } - @ShortCircuit("rightNode") public boolean needsRightNode(boolean left) { return left; diff -r 67bee207f20c -r aa9ffb3a715e 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 Sat Apr 20 12:17:03 2013 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/PrintNode.java Sat Apr 20 12:17:27 2013 +0200 @@ -26,19 +26,17 @@ import com.oracle.truffle.api.codegen.*; +@NodeChild(value = "expression", type = TypedNode.class) public abstract class PrintNode extends StatementNode { - @Child protected TypedNode expression; - private final PrintStream output; - public PrintNode(TypedNode expression, PrintStream output) { - this.expression = adoptChild(expression); + public PrintNode(PrintStream output) { this.output = output; } public PrintNode(PrintNode node) { - this(node.expression, node.output); + this(node.output); } @Specialization diff -r 67bee207f20c -r aa9ffb3a715e 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 Sat Apr 20 12:17:03 2013 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/TernaryNode.java Sat Apr 20 12:17:27 2013 +0200 @@ -27,25 +27,9 @@ import com.oracle.truffle.api.codegen.*; @SuppressWarnings("unused") -@ExecuteChildren({"conditionNode", "ifPartNode", "elsePartNode"}) +@NodeChildren({@NodeChild(value = "conditionNode", type = ConditionNode.class), @NodeChild("ifPartNode"), @NodeChild("elsePartNode")}) public abstract class TernaryNode extends TypedNode { - @Child protected ConditionNode conditionNode; - - @Child protected TypedNode ifPartNode; - - @Child protected TypedNode elsePartNode; - - public TernaryNode(ConditionNode condition, TypedNode ifPart, TypedNode elsePart) { - this.conditionNode = adoptChild(condition); - this.ifPartNode = adoptChild(ifPart); - this.elsePartNode = adoptChild(elsePart); - } - - public TernaryNode(TernaryNode condition) { - this(condition.conditionNode, condition.ifPartNode, condition.elsePartNode); - } - @ShortCircuit("ifPartNode") public boolean needsIfPart(boolean condition) { return condition; diff -r 67bee207f20c -r aa9ffb3a715e 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 Sat Apr 20 12:17:03 2013 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/WriteLocalNode.java Sat Apr 20 12:17:27 2013 +0200 @@ -27,17 +27,15 @@ import com.oracle.truffle.api.codegen.*; import com.oracle.truffle.api.frame.*; +@NodeChild(value = "rightNode", type = TypedNode.class) public abstract class WriteLocalNode extends FrameSlotNode { - @Child protected TypedNode rightNode; - - public WriteLocalNode(FrameSlot slot, TypedNode right) { + public WriteLocalNode(FrameSlot slot) { super(slot); - this.rightNode = adoptChild(right); } public WriteLocalNode(WriteLocalNode node) { - this(node.slot, node.rightNode); + this(node.slot); } @Specialization