From f8883539841e08e905b4237ca41b4a5918f67178 Mon Sep 17 00:00:00 2001 From: Adam Welc <adam.welc@oracle.com> Date: Thu, 30 Jan 2014 11:19:19 -0800 Subject: [PATCH] Refactoring. --- .../truffle/r/nodes/builtin/base/Combine.java | 4 ++-- .../truffle/r/nodes/builtin/base/UpdateAttr.java | 4 ++-- .../r/nodes/builtin/base/UpdateAttributes.java | 4 ++-- .../truffle/r/nodes/unary/CastComplexNode.java | 13 ------------- .../truffle/r/nodes/unary/CastDoubleNode.java | 13 ------------- .../truffle/r/nodes/unary/CastIntegerNode.java | 13 ------------- .../truffle/r/nodes/unary/CastLogicalNode.java | 13 ------------- .../oracle/truffle/r/nodes/unary/CastNode.java | 14 ++++++++++++++ .../oracle/truffle/r/nodes/unary/CastRawNode.java | 13 ------------- .../truffle/r/nodes/unary/CastStringNode.java | 15 +-------------- 10 files changed, 21 insertions(+), 85 deletions(-) diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/Combine.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/Combine.java index 10c93c4624..787425e735 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/Combine.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/Combine.java @@ -64,7 +64,7 @@ public abstract class Combine extends RBuiltinNode { private RAbstractVector castVector(VirtualFrame frame, Object value) { if (castVector == null) { CompilerDirectives.transferToInterpreter(); - castVector = adoptChild(CastToVectorNodeFactory.create(null)); + castVector = adoptChild(CastToVectorNodeFactory.create(null, false, false)); } RVector resultVector = castVector.executeRAbstractVector(frame, value).materialize(); // need to copy if vector is shared in case the same variable is used in combine, e.g. : @@ -304,7 +304,7 @@ public abstract class Combine extends RBuiltinNode { private Object castList(VirtualFrame frame, Object operand) { if (castList == null) { CompilerDirectives.transferToInterpreter(); - castList = adoptChild(CastListNodeFactory.create(null)); + castList = adoptChild(CastListNodeFactory.create(null, true, false)); } return castList.executeCast(frame, operand); } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttr.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttr.java index db66eedf88..ce0694b512 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttr.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttr.java @@ -72,7 +72,7 @@ public abstract class UpdateAttr extends RBuiltinNode { private RAbstractVector castVector(VirtualFrame frame, Object value) { if (castVector == null) { CompilerDirectives.transferToInterpreter(); - castVector = adoptChild(CastToVectorNodeFactory.create(null)); + castVector = adoptChild(CastToVectorNodeFactory.create(null, false, false)); } return castVector.executeRAbstractVector(frame, value); } @@ -80,7 +80,7 @@ public abstract class UpdateAttr extends RBuiltinNode { private RList castList(VirtualFrame frame, Object value) { if (castList == null) { CompilerDirectives.transferToInterpreter(); - castList = adoptChild(CastListNodeFactory.create(null)); + castList = adoptChild(CastListNodeFactory.create(null, true, false)); } return castList.executeList(frame, value); } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttributes.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttributes.java index b556928b0a..ea5e4d0177 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttributes.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttributes.java @@ -64,7 +64,7 @@ public abstract class UpdateAttributes extends RBuiltinNode { private RAbstractVector castVector(VirtualFrame frame, Object value) { if (castVector == null) { CompilerDirectives.transferToInterpreter(); - castVector = adoptChild(CastToVectorNodeFactory.create(null)); + castVector = adoptChild(CastToVectorNodeFactory.create(null, false, false)); } return castVector.executeRAbstractVector(frame, value); } @@ -72,7 +72,7 @@ public abstract class UpdateAttributes extends RBuiltinNode { private RList castList(VirtualFrame frame, Object value) { if (castList == null) { CompilerDirectives.transferToInterpreter(); - castList = adoptChild(CastListNodeFactory.create(null)); + castList = adoptChild(CastListNodeFactory.create(null, true, false)); } return castList.executeList(frame, value); } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastComplexNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastComplexNode.java index ea8f2c4f04..5d0babcebe 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastComplexNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastComplexNode.java @@ -31,7 +31,6 @@ import com.oracle.truffle.r.runtime.data.*; import com.oracle.truffle.r.runtime.data.model.*; import com.oracle.truffle.r.runtime.ops.na.*; -@NodeFields({@NodeField(name = "namesPreservation", type = boolean.class), @NodeField(name = "dimensionsPreservation", type = boolean.class)}) public abstract class CastComplexNode extends CastNode { private final NACheck naCheck = NACheck.create(); @@ -46,18 +45,6 @@ public abstract class CastComplexNode extends CastNode { public abstract Object executeComplexVector(VirtualFrame frame, Object o); - protected abstract boolean isNamesPreservation(); - - protected abstract boolean isDimensionsPreservation(); - - protected boolean preserveNames() { - return isNamesPreservation(); - } - - protected boolean preserveDimensions() { - return isDimensionsPreservation(); - } - @Specialization public RNull doNull(@SuppressWarnings("unused") RNull operand) { return RNull.instance; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleNode.java index 15897f20a1..4786dc93ad 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleNode.java @@ -31,7 +31,6 @@ import com.oracle.truffle.r.runtime.data.*; import com.oracle.truffle.r.runtime.data.model.*; import com.oracle.truffle.r.runtime.ops.na.*; -@NodeFields({@NodeField(name = "namesPreservation", type = boolean.class), @NodeField(name = "dimensionsPreservation", type = boolean.class)}) public abstract class CastDoubleNode extends CastNode { private final NACheck naCheck = NACheck.create(); @@ -46,18 +45,6 @@ public abstract class CastDoubleNode extends CastNode { public abstract Object executeDoubleVector(VirtualFrame frame, Object o); - protected abstract boolean isNamesPreservation(); - - protected abstract boolean isDimensionsPreservation(); - - protected boolean preserveNames() { - return isNamesPreservation(); - } - - protected boolean preserveDimensions() { - return isDimensionsPreservation(); - } - @Specialization public RNull doNull(@SuppressWarnings("unused") RNull operand) { return RNull.instance; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerNode.java index 77500f191b..0799ed3679 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerNode.java @@ -30,7 +30,6 @@ import com.oracle.truffle.r.runtime.*; import com.oracle.truffle.r.runtime.data.*; import com.oracle.truffle.r.runtime.ops.na.*; -@NodeFields({@NodeField(name = "namesPreservation", type = boolean.class), @NodeField(name = "dimensionsPreservation", type = boolean.class)}) public abstract class CastIntegerNode extends CastNode { private final NACheck check = NACheck.create(); @@ -45,18 +44,6 @@ public abstract class CastIntegerNode extends CastNode { public abstract Object executeIntVector(VirtualFrame frame, Object o); - protected abstract boolean isNamesPreservation(); - - protected abstract boolean isDimensionsPreservation(); - - protected boolean preserveNames() { - return isNamesPreservation(); - } - - protected boolean preserveDimensions() { - return isDimensionsPreservation(); - } - @Child CastIntegerNode recursiveCastInteger; private Object castIntegerRecursive(VirtualFrame frame, Object o) { diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalNode.java index 772007a5dc..d559e1494a 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalNode.java @@ -31,7 +31,6 @@ import com.oracle.truffle.r.runtime.data.*; import com.oracle.truffle.r.runtime.data.model.*; import com.oracle.truffle.r.runtime.ops.na.*; -@NodeFields({@NodeField(name = "namesPreservation", type = boolean.class), @NodeField(name = "dimensionsPreservation", type = boolean.class)}) public abstract class CastLogicalNode extends CastNode { private final NACheck naCheck = NACheck.create(); @@ -40,18 +39,6 @@ public abstract class CastLogicalNode extends CastNode { public abstract Object executeLogicalVector(VirtualFrame frame, Object o); - protected abstract boolean isNamesPreservation(); - - protected abstract boolean isDimensionsPreservation(); - - protected boolean preserveNames() { - return isNamesPreservation(); - } - - protected boolean preserveDimensions() { - return isDimensionsPreservation(); - } - @Specialization public RNull doNull(@SuppressWarnings("unused") RNull operand) { return RNull.instance; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastNode.java index 0a719e7e4d..0bca0be0eb 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastNode.java @@ -22,10 +22,24 @@ */ package com.oracle.truffle.r.nodes.unary; +import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.frame.*; +@NodeFields({@NodeField(name = "namesPreservation", type = boolean.class), @NodeField(name = "dimensionsPreservation", type = boolean.class)}) public abstract class CastNode extends UnaryNode { public abstract Object executeCast(VirtualFrame frame, Object value); + protected abstract boolean isNamesPreservation(); + + protected abstract boolean isDimensionsPreservation(); + + protected boolean preserveNames() { + return isNamesPreservation(); + } + + protected boolean preserveDimensions() { + return isDimensionsPreservation(); + } + } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastRawNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastRawNode.java index 07745a17b2..7dee771ef0 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastRawNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastRawNode.java @@ -30,13 +30,8 @@ import com.oracle.truffle.r.runtime.*; import com.oracle.truffle.r.runtime.data.*; import com.oracle.truffle.r.runtime.data.model.*; -@NodeFields({@NodeField(name = "namesPreservation", type = boolean.class), @NodeField(name = "dimensionsPreservation", type = boolean.class)}) public abstract class CastRawNode extends CastNode { - protected abstract boolean isNamesPreservation(); - - protected abstract boolean isDimensionsPreservation(); - public abstract Object executeRaw(VirtualFrame frame, int o); public abstract Object executeRaw(VirtualFrame frame, double o); @@ -47,14 +42,6 @@ public abstract class CastRawNode extends CastNode { public abstract Object executeRawVector(VirtualFrame frame, Object o); - protected boolean preserveNames() { - return isNamesPreservation(); - } - - protected boolean preserveDimensions() { - return isDimensionsPreservation(); - } - @Specialization public RNull doNull(@SuppressWarnings("unused") RNull operand) { return RNull.instance; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastStringNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastStringNode.java index bfc7a33515..a5a93a0645 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastStringNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastStringNode.java @@ -29,8 +29,7 @@ import com.oracle.truffle.r.nodes.builtin.base.*; import com.oracle.truffle.r.runtime.data.*; import com.oracle.truffle.r.runtime.data.model.*; -@NodeFields({@NodeField(name = "emptyVectorConvertedToNull", type = boolean.class), @NodeField(name = "namesPreservation", type = boolean.class), - @NodeField(name = "dimensionsPreservation", type = boolean.class)}) +@NodeField(name = "emptyVectorConvertedToNull", type = boolean.class) public abstract class CastStringNode extends CastNode { @Child private ToString toString = adoptChild(ToStringFactory.create(new RNode[1], null)); @@ -47,18 +46,6 @@ public abstract class CastStringNode extends CastNode { public abstract boolean isEmptyVectorConvertedToNull(); - protected abstract boolean isNamesPreservation(); - - protected abstract boolean isDimensionsPreservation(); - - protected boolean preserveNames() { - return isNamesPreservation(); - } - - protected boolean preserveDimensions() { - return isDimensionsPreservation(); - } - public CastStringNode() { toString.setQuotes(false); } -- GitLab