From 6b9a84a23a28019c095673659a835b429be1e389 Mon Sep 17 00:00:00 2001 From: Lukas Stadler <lukas.stadler@oracle.com> Date: Fri, 3 Nov 2017 13:12:46 +0100 Subject: [PATCH] convert RRuntime raw utilities to use byte representation --- .../truffle/r/nodes/builtin/base/Unlist.java | 4 ++-- .../r/nodes/unary/CastDoubleBaseNode.java | 2 +- .../truffle/r/nodes/unary/CastDoubleNode.java | 2 +- .../r/nodes/unary/CastIntegerBaseNode.java | 2 +- .../truffle/r/nodes/unary/CastIntegerNode.java | 2 +- .../r/nodes/unary/CastLogicalBaseNode.java | 2 +- .../truffle/r/nodes/unary/CastLogicalNode.java | 2 +- .../r/nodes/unary/ConvertBooleanNode.java | 2 +- .../truffle/r/nodes/unary/FirstBooleanNode.java | 2 +- .../com/oracle/truffle/r/runtime/RRuntime.java | 16 ++++++---------- .../com/oracle/truffle/r/runtime/data/RRaw.java | 2 +- .../truffle/r/runtime/data/RRawVector.java | 2 +- .../data/closures/RToComplexVectorClosure.java | 2 +- .../data/closures/RToDoubleVectorClosure.java | 2 +- .../data/closures/RToIntVectorClosure.java | 2 +- 15 files changed, 21 insertions(+), 25 deletions(-) diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java index 77f3c42c9f..b48a1b574a 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unlist.java @@ -1023,7 +1023,7 @@ public abstract class Unlist extends RBuiltinNode.Arg3 { private static int unlistValueInt(Object dataAtAsObject) { if (dataAtAsObject instanceof RRaw) { RRaw rRaw = (RRaw) dataAtAsObject; - return RRuntime.raw2int(rRaw); + return RRuntime.raw2int(rRaw.getValue()); } else if (dataAtAsObject instanceof Byte) { return RRuntime.logical2int((byte) dataAtAsObject); } else { @@ -1034,7 +1034,7 @@ public abstract class Unlist extends RBuiltinNode.Arg3 { private static byte unlistValueLogical(Object dataAtAsObject) { if (dataAtAsObject instanceof RRaw) { RRaw rRaw = (RRaw) dataAtAsObject; - return RRuntime.raw2logical(rRaw); + return RRuntime.raw2logical(rRaw.getValue()); } else { return (byte) dataAtAsObject; } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java index 15a9514d39..95fd1191fc 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastDoubleBaseNode.java @@ -113,6 +113,6 @@ public abstract class CastDoubleBaseNode extends CastBaseNode { @Specialization protected double doRaw(RRaw operand) { - return RRuntime.raw2double(operand); + return RRuntime.raw2double(operand.getValue()); } } 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 485dbd68f3..ef5078d262 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 @@ -119,7 +119,7 @@ public abstract class CastDoubleNode extends CastDoubleBaseNode { if (useClosure()) { return (RAbstractDoubleVector) castWithReuse(RType.Double, operand, naProfile.getConditionProfile()); } - return createResultVector(operand, index -> RRuntime.raw2double(operand.getDataAt(index))); + return createResultVector(operand, index -> RRuntime.raw2double(operand.getRawDataAt(index))); } @Specialization diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerBaseNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerBaseNode.java index f223992784..e339bbce6d 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerBaseNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastIntegerBaseNode.java @@ -115,6 +115,6 @@ public abstract class CastIntegerBaseNode extends CastBaseNode { @Specialization protected int doRaw(RRaw operand) { - return RRuntime.raw2int(operand); + return RRuntime.raw2int(operand.getValue()); } } 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 132ddaa3f2..5e80bbdf7b 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 @@ -187,7 +187,7 @@ public abstract class CastIntegerNode extends CastIntegerBaseNode { if (useClosure()) { return (RAbstractIntVector) castWithReuse(RType.Integer, operand, naProfile.getConditionProfile()); } - return createResultVector(operand, index -> RRuntime.raw2int(operand.getDataAt(index))); + return createResultVector(operand, index -> RRuntime.raw2int(operand.getRawDataAt(index))); } @Specialization diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalBaseNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalBaseNode.java index a01f4bdf4d..ac3430fad1 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalBaseNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/CastLogicalBaseNode.java @@ -77,6 +77,6 @@ public abstract class CastLogicalBaseNode extends CastBaseNode { @Specialization protected byte doRaw(RRaw operand) { - return RRuntime.raw2logical(operand); + return RRuntime.raw2logical(operand.getValue()); } } 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 be9c6edda8..1d734075f1 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 @@ -144,7 +144,7 @@ public abstract class CastLogicalNode extends CastLogicalBaseNode { @Specialization protected RLogicalVector doRawVectorDims(RRawVector operand) { - return createResultVector(operand, index -> RRuntime.raw2logical(operand.getDataAt(index))); + return createResultVector(operand, index -> RRuntime.raw2logical(operand.getRawDataAt(index))); } @Specialization diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/ConvertBooleanNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/ConvertBooleanNode.java index 29b41d3297..098e7e4264 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/ConvertBooleanNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/ConvertBooleanNode.java @@ -117,7 +117,7 @@ public abstract class ConvertBooleanNode extends RNode { @Specialization protected byte doRaw(RRaw value) { - return RRuntime.raw2logical(value); + return RRuntime.raw2logical(value.getValue()); } private void checkLength(RAbstractVector value) { diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/FirstBooleanNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/FirstBooleanNode.java index ef81593433..0f79c7a4d6 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/FirstBooleanNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/FirstBooleanNode.java @@ -98,7 +98,7 @@ public abstract class FirstBooleanNode extends CastNode { @Specialization protected boolean firstVector(RAbstractRawVector argument) { checkLength(argument); - return firstScalar(RRuntime.raw2logical(argument.getDataAt(0))); + return firstScalar(RRuntime.raw2logical(argument.getRawDataAt(0))); } @Fallback diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java index 7e6238657b..d3965fab24 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RRuntime.java @@ -332,23 +332,19 @@ public class RRuntime { // conversions from raw - public static byte raw2logical(RRaw value) { - return value.getValue() == 0 ? LOGICAL_FALSE : LOGICAL_TRUE; - } - - public static int raw2int(RRaw value) { - return raw2int(value.getValue()); + public static byte raw2logical(byte value) { + return value == 0 ? LOGICAL_FALSE : LOGICAL_TRUE; } public static int raw2int(byte value) { return value & 0xFF; } - public static double raw2double(RRaw value) { - return int2double(value.getValue() & 0xFF); + public static double raw2double(byte value) { + return int2double(value & 0xFF); } - public static RComplex raw2complex(RRaw r) { + public static RComplex raw2complex(byte r) { return int2complex(raw2int(r)); } @@ -357,7 +353,7 @@ public class RRuntime { } @TruffleBoundary - public static String rawToString(RRaw operand) { + public static String rawToString(byte operand) { return intToString(raw2int(operand)); } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRaw.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRaw.java index b88afcc338..14e0d01fb1 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRaw.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRaw.java @@ -56,7 +56,7 @@ public final class RRaw extends RScalarVector implements RAbstractRawVector { case Complex: return RComplex.valueOf(value, 0.0); case Character: - return RString.valueOf(RRuntime.rawToString(this)); + return RString.valueOf(RRuntime.rawToString(value)); default: return null; } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java index 58025d7eb7..1fe82c7dc8 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java @@ -125,7 +125,7 @@ public final class RRawVector extends RVector<byte[]> implements RAbstractRawVec @Override public String toString() { - return toString(i -> RRuntime.rawToString(getDataAt(i))); + return toString(i -> RRuntime.rawToString(getRawDataAt(i))); } @Override diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToComplexVectorClosure.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToComplexVectorClosure.java index 3932e3c982..81c0735592 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToComplexVectorClosure.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToComplexVectorClosure.java @@ -199,6 +199,6 @@ final class RRawToComplexVectorClosure extends RToComplexVectorClosure implement @Override public RComplex getDataAt(int index) { - return RRuntime.raw2complex(vector.getDataAt(index)); + return RRuntime.raw2complex(vector.getRawDataAt(index)); } } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToDoubleVectorClosure.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToDoubleVectorClosure.java index 79a57bf9fb..5a2c794e02 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToDoubleVectorClosure.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToDoubleVectorClosure.java @@ -161,6 +161,6 @@ final class RRawToDoubleVectorClosure extends RToDoubleVectorClosure implements @Override public double getDataAt(int index) { - return RRuntime.raw2double(vector.getDataAt(index)); + return RRuntime.raw2double(vector.getRawDataAt(index)); } } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToIntVectorClosure.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToIntVectorClosure.java index 6c92572997..ef0f7cbe31 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToIntVectorClosure.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToIntVectorClosure.java @@ -210,6 +210,6 @@ final class RRawToIntVectorClosure extends RToIntVectorClosure implements RAbstr @Override public int getDataAt(int index) { - return RRuntime.raw2int(vector.getDataAt(index)); + return RRuntime.raw2int(vector.getRawDataAt(index)); } } -- GitLab