Skip to content

Commit 78d84e9

Browse files
committed
Merge commit '24e71c61bfd8ac30671b05654943ffaab48787a4' into release/graal-vm/1.0
2 parents d9b993d + 24e71c6 commit 78d84e9

File tree

66 files changed

+4188
-1033
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+4188
-1033
lines changed

com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -582,13 +582,6 @@ public int LEVELS(Object x) {
582582
if (x instanceof RTypedValue) {
583583
int gpBits = ((RTypedValue) x).getGPBits();
584584
return gpBits;
585-
} else if (x instanceof CharSXPWrapper) {
586-
// TODO returning ASCII_MASK works for data.table,
587-
// but properly CharSXPWrapper has to implement RTypedValue ...
588-
// see also CHARSXP charset bits in include/Defn.h
589-
// #define ASCII_MASK (1<<6)
590-
// return 1 << 6;
591-
throw RInternalError.shouldNotReachHere("Not yet implemented - CharSXPWrapper has to implement RTypedValue!");
592585
}
593586
throw RInternalError.shouldNotReachHere();
594587
}

com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/PPSum.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@
2323
package com.oracle.truffle.r.library.stats;
2424

2525
import com.oracle.truffle.api.dsl.Cached;
26+
import com.oracle.truffle.api.dsl.ImportStatic;
2627
import com.oracle.truffle.api.dsl.Specialization;
2728
import com.oracle.truffle.api.profiles.ValueProfile;
2829
import com.oracle.truffle.r.library.stats.PPSumFactory.IntgrtVecNodeGen;
2930
import com.oracle.truffle.r.library.stats.PPSumFactory.PPSumExternalNodeGen;
3031
import com.oracle.truffle.r.nodes.builtin.RExternalBuiltinNode;
32+
import com.oracle.truffle.r.runtime.DSLConfig;
3133
import com.oracle.truffle.r.runtime.data.RDataFactory.VectorFactory;
3234
import com.oracle.truffle.r.runtime.data.RDoubleVector;
3335
import com.oracle.truffle.r.runtime.data.model.RAbstractDoubleVector;
@@ -36,14 +38,15 @@
3638

3739
public abstract class PPSum {
3840

41+
@ImportStatic(DSLConfig.class)
3942
public abstract static class PPSumExternal extends RExternalBuiltinNode.Arg2 {
4043
static {
4144
Casts casts = new Casts(PPSumExternal.class);
4245
casts.arg(0).asDoubleVector();
4346
casts.arg(1).asIntegerVector().findFirst();
4447
}
4548

46-
@Specialization(guards = "uAccess.supports(u)")
49+
@Specialization(guards = "uAccess.supports(u)", limit = "getVectorAccessCacheSize()")
4750
protected RDoubleVector doPPSum(RAbstractDoubleVector u, int sl,
4851
@Cached("create()") VectorFactory factory,
4952
@Cached("u.access()") VectorAccess uAccess) {

com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/RMultinomNode.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,15 @@
2929
import static com.oracle.truffle.r.runtime.RError.Message.NO_POSITIVE_PROBABILITIES;
3030

3131
import com.oracle.truffle.api.dsl.Cached;
32+
import com.oracle.truffle.api.dsl.ImportStatic;
3233
import com.oracle.truffle.api.dsl.Specialization;
3334
import com.oracle.truffle.api.profiles.ConditionProfile;
3435
import com.oracle.truffle.api.profiles.ValueProfile;
3536
import com.oracle.truffle.r.nodes.attributes.GetFixedAttributeNode;
3637
import com.oracle.truffle.r.nodes.attributes.SetFixedAttributeNode;
3738
import com.oracle.truffle.r.nodes.builtin.RExternalBuiltinNode;
3839
import com.oracle.truffle.r.nodes.function.opt.UpdateShareableChildValueNode;
40+
import com.oracle.truffle.r.runtime.DSLConfig;
3941
import com.oracle.truffle.r.runtime.RError;
4042
import com.oracle.truffle.r.runtime.RError.Message;
4143
import com.oracle.truffle.r.runtime.data.RDataFactory;
@@ -52,6 +54,7 @@
5254
/**
5355
* Implements the vectorization of {@link RMultinomNode}.
5456
*/
57+
@ImportStatic(DSLConfig.class)
5558
public abstract class RMultinomNode extends RExternalBuiltinNode.Arg3 {
5659

5760
private final Rbinom rbinom = new Rbinom();
@@ -78,7 +81,7 @@ public RBaseNode getErrorContext() {
7881
return RError.SHOW_CALLER;
7982
}
8083

81-
@Specialization(guards = "probsAccess.supports(probs)")
84+
@Specialization(guards = "probsAccess.supports(probs)", limit = "getVectorAccessCacheSize()")
8285
protected RIntVector doMultinom(int n, int size, RAbstractDoubleVector probs,
8386
@Cached("probs.access()") VectorAccess probsAccess) {
8487
try (SequentialIterator probsIter = probsAccess.access(probs)) {

com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AnyNA.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@
2929

3030
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
3131
import com.oracle.truffle.api.dsl.Cached;
32+
import com.oracle.truffle.api.dsl.ImportStatic;
3233
import com.oracle.truffle.api.dsl.Specialization;
3334
import com.oracle.truffle.api.profiles.ValueProfile;
3435
import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
3536
import com.oracle.truffle.r.nodes.control.RLengthNode;
37+
import com.oracle.truffle.r.runtime.DSLConfig;
3638
import com.oracle.truffle.r.runtime.RRuntime;
3739
import com.oracle.truffle.r.runtime.builtins.RBuiltin;
3840
import com.oracle.truffle.r.runtime.data.RComplex;
@@ -44,6 +46,7 @@
4446
import com.oracle.truffle.r.runtime.data.nodes.VectorAccess;
4547
import com.oracle.truffle.r.runtime.data.nodes.VectorAccess.SequentialIterator;
4648

49+
@ImportStatic(DSLConfig.class)
4750
@RBuiltin(name = "anyNA", kind = PRIMITIVE, parameterNames = {"x", "recursive"}, dispatch = INTERNAL_GENERIC, behavior = PURE_SUMMARY)
4851
public abstract class AnyNA extends RBuiltinNode.Arg2 {
4952

@@ -106,7 +109,7 @@ protected byte isNA(@SuppressWarnings("unused") RNull value, @SuppressWarnings("
106109
return RRuntime.LOGICAL_FALSE;
107110
}
108111

109-
@Specialization(guards = "xAccess.supports(x)")
112+
@Specialization(guards = "xAccess.supports(x)", limit = "getVectorAccessCacheSize()")
110113
protected byte anyNACached(RAbstractAtomicVector x, @SuppressWarnings("unused") boolean recursive,
111114
@Cached("x.access()") VectorAccess xAccess) {
112115
switch (xAccess.getType()) {

com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BasePackage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@ public BasePackage() {
414414
add(DynLoadFunctions.GetSymbolInfo.class, DynLoadFunctionsFactory.GetSymbolInfoNodeGen::create);
415415
add(DynLoadFunctions.IsLoaded.class, DynLoadFunctionsFactory.IsLoadedNodeGen::create);
416416
add(VersionFunctions.ExtSoftVersion.class, VersionFunctionsFactory.ExtSoftVersionNodeGen::create);
417+
add(EApply.class, EApplyNodeGen::create);
417418
add(EncodeString.class, EncodeStringNodeGen::create);
418419
add(EncodingFunctions.Encoding.class, EncodingFunctionsFactory.EncodingNodeGen::create);
419420
add(EncodingFunctions.SetEncoding.class, EncodingFunctionsFactory.SetEncodingNodeGen::create);

com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CharTr.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public static CharTr create() {
5454
return CharTrNodeGen.create();
5555
}
5656

57-
@Specialization(guards = "vectorReuse.supports(values)")
57+
@Specialization(guards = "vectorReuse.supports(values)", limit = "getVectorAccessCacheSize()")
5858
RAbstractStringVector doIt(String oldStr, String newStr, RAbstractStringVector values,
5959
@Cached("createTemporary(values)") VectorReuse vectorReuse,
6060
@Cached("create()") RemoveRegAttributesNode removeRegAttributesNode) {

com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Colon.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ protected RSequence colonAscending(int left, double right,
161161
if (isDouble.profile(right > Integer.MAX_VALUE)) {
162162
return RDataFactory.createAscendingRange(left, right);
163163
} else {
164-
return RDataFactory.createAscendingRange(left, (int) right);
164+
return RDataFactory.createIntSequence(left, 1, RDataFactory.effectiveLength(left, right));
165165
}
166166
}
167167

@@ -174,7 +174,7 @@ protected RSequence colonDescending(int left, double right,
174174
if (isDouble.profile(right <= Integer.MIN_VALUE)) {
175175
return RDataFactory.createDescendingRange(left, right);
176176
} else {
177-
return RDataFactory.createDescendingRange(left, (int) right);
177+
return RDataFactory.createIntSequence(left, -1, RDataFactory.effectiveLength(left, right));
178178
}
179179
}
180180

com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Combine.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
import com.oracle.truffle.r.runtime.RError;
6969
import com.oracle.truffle.r.runtime.RRuntime;
7070
import com.oracle.truffle.r.runtime.builtins.RBuiltin;
71+
import com.oracle.truffle.r.runtime.data.CharSXPWrapper;
7172
import com.oracle.truffle.r.runtime.data.RArgsValuesAndNames;
7273
import com.oracle.truffle.r.runtime.data.RAttributesLayout;
7374
import com.oracle.truffle.r.runtime.data.RDataFactory;
@@ -127,6 +128,7 @@ protected boolean isSimpleArguments(RArgsValuesAndNames args) {
127128
!(args.getArgument(0) instanceof RPairList) &&
128129
!(args.getArgument(0) instanceof RSymbol) &&
129130
!(args.getArgument(0) instanceof RS4Object) &&
131+
!(args.getArgument(0) instanceof CharSXPWrapper) &&
130132
!RRuntime.isForeignObject(args.getArgument(0));
131133
}
132134

com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConnectionFunctions.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,15 @@
6565
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
6666
import com.oracle.truffle.api.TruffleLanguage;
6767
import com.oracle.truffle.api.dsl.Cached;
68+
import com.oracle.truffle.api.dsl.ImportStatic;
6869
import com.oracle.truffle.api.dsl.Specialization;
6970
import com.oracle.truffle.api.dsl.TypeSystemReference;
7071
import com.oracle.truffle.api.interop.TruffleObject;
7172
import com.oracle.truffle.r.nodes.builtin.NodeWithArgumentCasts.Casts;
7273
import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
7374
import com.oracle.truffle.r.nodes.builtin.base.ConnectionFunctionsFactory.WriteDataNodeGen;
7475
import com.oracle.truffle.r.nodes.builtin.casts.fluent.HeadPhaseBuilder;
76+
import com.oracle.truffle.r.runtime.DSLConfig;
7577
import com.oracle.truffle.r.runtime.RCompression;
7678
import com.oracle.truffle.r.runtime.RError;
7779
import com.oracle.truffle.r.runtime.RError.Message;
@@ -1048,6 +1050,7 @@ private static RLogicalVector readLogical(RConnection con, int n, boolean swap)
10481050
}
10491051
}
10501052

1053+
@ImportStatic(DSLConfig.class)
10511054
@TypeSystemReference(RTypes.class)
10521055
public abstract static class WriteDataNode extends RBaseNode {
10531056

@@ -1069,7 +1072,7 @@ private static byte[] encodeString(String s) {
10691072
return s.getBytes(StandardCharsets.UTF_8);
10701073
}
10711074

1072-
@Specialization(guards = "objectAccess.supports(object)")
1075+
@Specialization(guards = "objectAccess.supports(object)", limit = "getVectorAccessCacheSize()")
10731076
protected ByteBuffer write(RAbstractVector object, @SuppressWarnings("unused") int size, boolean swap, @SuppressWarnings("unused") boolean useBytes,
10741077
@Cached("object.access()") VectorAccess objectAccess) {
10751078
try (SequentialIterator iter = objectAccess.access(object)) {

com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CumProd.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ protected RDoubleVector cumNull(@SuppressWarnings("unused") RNull x) {
6868
return RDataFactory.createEmptyDoubleVector();
6969
}
7070

71-
@Specialization(guards = "xAccess.supports(x)")
71+
@Specialization(guards = "xAccess.supports(x)", limit = "getVectorAccessCacheSize()")
7272
protected RDoubleVector cumprodDouble(RAbstractDoubleVector x,
7373
@Cached("x.access()") VectorAccess xAccess) {
7474
try (SequentialIterator iter = xAccess.access(x)) {
@@ -97,7 +97,7 @@ protected RDoubleVector cumprodDoubleGeneric(RAbstractDoubleVector x) {
9797
return cumprodDouble(x, x.slowPathAccess());
9898
}
9999

100-
@Specialization(guards = "xAccess.supports(x)")
100+
@Specialization(guards = "xAccess.supports(x)", limit = "getVectorAccessCacheSize()")
101101
protected RComplexVector cumprodComplex(RAbstractComplexVector x,
102102
@Cached("x.access()") VectorAccess xAccess) {
103103
try (SequentialIterator iter = xAccess.access(x)) {

0 commit comments

Comments
 (0)