Skip to content

Commit fe69d51

Browse files
committed
Resolve some DSL warnings in the builtin modules Java package
1 parent bf91be6 commit fe69d51

14 files changed

+216
-186
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/ArrayModuleBuiltins.java

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
import com.oracle.truffle.api.dsl.Bind;
8686
import com.oracle.truffle.api.dsl.Cached;
8787
import com.oracle.truffle.api.dsl.Cached.Exclusive;
88+
import com.oracle.truffle.api.dsl.Cached.Shared;
8889
import com.oracle.truffle.api.dsl.Fallback;
8990
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
9091
import com.oracle.truffle.api.dsl.ImportStatic;
@@ -121,8 +122,8 @@ abstract static class ArrayNode extends PythonVarargsBuiltinNode {
121122
Object array2(VirtualFrame frame, Object cls, Object[] args, PKeyword[] kwargs,
122123
@Bind("this") Node inliningTarget,
123124
@Exclusive @Cached InlineIsBuiltinClassProfile isNotSubtypeProfile,
124-
@Cached CastToTruffleStringCheckedNode cast,
125-
@Cached ArrayNodeInternal arrayNodeInternal) {
125+
@Shared @Cached CastToTruffleStringCheckedNode cast,
126+
@Shared @Cached ArrayNodeInternal arrayNodeInternal) {
126127
checkKwargs(cls, kwargs, inliningTarget, isNotSubtypeProfile);
127128
return arrayNodeInternal.execute(frame, cls, cast.cast(args[0], ErrorMessages.ARG_1_MUST_BE_UNICODE_NOT_P, args[0]), PNone.NO_VALUE);
128129
}
@@ -131,8 +132,8 @@ Object array2(VirtualFrame frame, Object cls, Object[] args, PKeyword[] kwargs,
131132
Object array3(VirtualFrame frame, Object cls, Object[] args, PKeyword[] kwargs,
132133
@Bind("this") Node inliningTarget,
133134
@Exclusive @Cached InlineIsBuiltinClassProfile isNotSubtypeProfile,
134-
@Cached CastToTruffleStringCheckedNode cast,
135-
@Cached ArrayNodeInternal arrayNodeInternal) {
135+
@Shared @Cached CastToTruffleStringCheckedNode cast,
136+
@Shared @Cached ArrayNodeInternal arrayNodeInternal) {
136137
checkKwargs(cls, kwargs, inliningTarget, isNotSubtypeProfile);
137138
return arrayNodeInternal.execute(frame, cls, cast.cast(args[0], ErrorMessages.ARG_1_MUST_BE_UNICODE_NOT_P, args[0]), args[1]);
138139
}
@@ -174,17 +175,17 @@ abstract static class ArrayNodeInternal extends Node {
174175

175176
@Specialization(guards = "isNoValue(initializer)")
176177
PArray array(Object cls, TruffleString typeCode, @SuppressWarnings("unused") PNone initializer,
177-
@Cached TruffleString.CodePointLengthNode lengthNode,
178-
@Cached TruffleString.CodePointAtIndexNode atIndexNode) {
178+
@Shared @Cached TruffleString.CodePointLengthNode lengthNode,
179+
@Shared @Cached TruffleString.CodePointAtIndexNode atIndexNode) {
179180
BufferFormat format = getFormatChecked(typeCode, lengthNode, atIndexNode);
180181
return getFactory().createArray(cls, typeCode, format);
181182
}
182183

183184
@Specialization
184185
PArray arrayWithRangeInitializer(Object cls, TruffleString typeCode, PIntRange range,
185-
@Cached ArrayNodes.PutValueNode putValueNode,
186-
@Cached TruffleString.CodePointLengthNode lengthNode,
187-
@Cached TruffleString.CodePointAtIndexNode atIndexNode) {
186+
@Shared @Cached ArrayNodes.PutValueNode putValueNode,
187+
@Shared @Cached TruffleString.CodePointLengthNode lengthNode,
188+
@Shared @Cached TruffleString.CodePointAtIndexNode atIndexNode) {
188189
BufferFormat format = getFormatChecked(typeCode, lengthNode, atIndexNode);
189190
PArray array;
190191
try {
@@ -208,8 +209,8 @@ PArray arrayWithRangeInitializer(Object cls, TruffleString typeCode, PIntRange r
208209
@Specialization
209210
PArray arrayWithBytesInitializer(VirtualFrame frame, Object cls, TruffleString typeCode, PBytesLike bytes,
210211
@Cached ArrayBuiltins.FromBytesNode fromBytesNode,
211-
@Cached TruffleString.CodePointLengthNode lengthNode,
212-
@Cached TruffleString.CodePointAtIndexNode atIndexNode) {
212+
@Shared @Cached TruffleString.CodePointLengthNode lengthNode,
213+
@Shared @Cached TruffleString.CodePointAtIndexNode atIndexNode) {
213214
PArray array = getFactory().createArray(cls, typeCode, getFormatChecked(typeCode, lengthNode, atIndexNode));
214215
fromBytesNode.executeWithoutClinic(frame, array, bytes);
215216
return array;
@@ -218,8 +219,8 @@ PArray arrayWithBytesInitializer(VirtualFrame frame, Object cls, TruffleString t
218219
@Specialization(guards = "isString(initializer)")
219220
PArray arrayWithStringInitializer(VirtualFrame frame, Object cls, TruffleString typeCode, Object initializer,
220221
@Cached ArrayBuiltins.FromUnicodeNode fromUnicodeNode,
221-
@Cached TruffleString.CodePointLengthNode lengthNode,
222-
@Cached TruffleString.CodePointAtIndexNode atIndexNode) {
222+
@Shared @Cached TruffleString.CodePointLengthNode lengthNode,
223+
@Shared @Cached TruffleString.CodePointAtIndexNode atIndexNode) {
223224
BufferFormat format = getFormatChecked(typeCode, lengthNode, atIndexNode);
224225
if (format != BufferFormat.UNICODE) {
225226
throw raise(TypeError, ErrorMessages.CANNOT_USE_STR_TO_INITIALIZE_ARRAY, typeCode);
@@ -231,9 +232,10 @@ PArray arrayWithStringInitializer(VirtualFrame frame, Object cls, TruffleString
231232

232233
@Specialization
233234
PArray arrayArrayInitializer(VirtualFrame frame, Object cls, TruffleString typeCode, PArray initializer,
234-
@Cached ArrayNodes.PutValueNode putValueNode,
235-
@Cached ArrayNodes.GetValueNode getValueNode, @Cached TruffleString.CodePointLengthNode lengthNode,
236-
@Cached TruffleString.CodePointAtIndexNode atIndexNode) {
235+
@Shared @Cached ArrayNodes.PutValueNode putValueNode,
236+
@Cached ArrayNodes.GetValueNode getValueNode,
237+
@Shared @Cached TruffleString.CodePointLengthNode lengthNode,
238+
@Shared @Cached TruffleString.CodePointAtIndexNode atIndexNode) {
237239
BufferFormat format = getFormatChecked(typeCode, lengthNode, atIndexNode);
238240
try {
239241
PArray array = getFactory().createArray(cls, typeCode, format, initializer.getLength());
@@ -249,11 +251,11 @@ PArray arrayArrayInitializer(VirtualFrame frame, Object cls, TruffleString typeC
249251

250252
@Specialization(guards = "!isBytes(initializer)")
251253
PArray arraySequenceInitializer(VirtualFrame frame, Object cls, TruffleString typeCode, PSequence initializer,
252-
@Cached ArrayNodes.PutValueNode putValueNode,
254+
@Shared @Cached ArrayNodes.PutValueNode putValueNode,
253255
@Cached SequenceNodes.GetSequenceStorageNode getSequenceStorageNode,
254256
@Cached SequenceStorageNodes.GetItemScalarNode getItemNode,
255-
@Cached TruffleString.CodePointLengthNode lengthNode,
256-
@Cached TruffleString.CodePointAtIndexNode atIndexNode) {
257+
@Shared @Cached TruffleString.CodePointLengthNode lengthNode,
258+
@Shared @Cached TruffleString.CodePointAtIndexNode atIndexNode) {
257259
BufferFormat format = getFormatChecked(typeCode, lengthNode, atIndexNode);
258260
SequenceStorage storage = getSequenceStorageNode.execute(initializer);
259261
int length = storage.length();
@@ -273,11 +275,11 @@ PArray arraySequenceInitializer(VirtualFrame frame, Object cls, TruffleString ty
273275
PArray arrayIteratorInitializer(VirtualFrame frame, Object cls, TruffleString typeCode, Object initializer,
274276
@Bind("this") Node inliningTarget,
275277
@Cached PyObjectGetIter getIter,
276-
@Cached ArrayNodes.PutValueNode putValueNode,
278+
@Shared @Cached ArrayNodes.PutValueNode putValueNode,
277279
@Cached GetNextNode nextNode,
278280
@Cached IsBuiltinObjectProfile errorProfile,
279-
@Cached TruffleString.CodePointLengthNode lengthNode,
280-
@Cached TruffleString.CodePointAtIndexNode atIndexNode) {
281+
@Shared @Cached TruffleString.CodePointLengthNode lengthNode,
282+
@Shared @Cached TruffleString.CodePointAtIndexNode atIndexNode) {
281283
Object iter = getIter.execute(frame, initializer);
282284

283285
BufferFormat format = getFormatChecked(typeCode, lengthNode, atIndexNode);
@@ -348,17 +350,17 @@ private PythonObjectFactory getFactory() {
348350
@ArgumentClinic(name = "mformatCode", conversion = ArgumentClinic.ClinicConversion.Index)
349351
@GenerateNodeFactory
350352
abstract static class ArrayReconstructorNode extends PythonClinicBuiltinNode {
351-
@Specialization(guards = "mformatCode == cachedCode")
353+
@Specialization(guards = "mformatCode == cachedCode", limit = "3")
352354
Object reconstructCached(VirtualFrame frame, Object arrayType, TruffleString typeCode, @SuppressWarnings("unused") int mformatCode, PBytes bytes,
353355
@Cached("mformatCode") int cachedCode,
354356
@Cached("createIdentityProfile()") ValueProfile formatProfile,
355-
@Cached PyObjectCallMethodObjArgs callDecode,
356-
@Cached ArrayBuiltins.FromBytesNode fromBytesNode,
357-
@Cached ArrayBuiltins.FromUnicodeNode fromUnicodeNode,
358-
@Cached IsSubtypeNode isSubtypeNode,
359-
@Cached ArrayBuiltins.ByteSwapNode byteSwapNode,
360-
@Cached TruffleString.CodePointLengthNode lengthNode,
361-
@Cached TruffleString.CodePointAtIndexNode atIndexNode) {
357+
@Exclusive @Cached PyObjectCallMethodObjArgs callDecode,
358+
@Exclusive @Cached ArrayBuiltins.FromBytesNode fromBytesNode,
359+
@Exclusive @Cached ArrayBuiltins.FromUnicodeNode fromUnicodeNode,
360+
@Exclusive @Cached IsSubtypeNode isSubtypeNode,
361+
@Exclusive @Cached ArrayBuiltins.ByteSwapNode byteSwapNode,
362+
@Exclusive @Cached TruffleString.CodePointLengthNode lengthNode,
363+
@Exclusive @Cached TruffleString.CodePointAtIndexNode atIndexNode) {
362364
BufferFormat format = BufferFormat.forArray(typeCode, lengthNode, atIndexNode);
363365
if (format == null) {
364366
throw raise(ValueError, ErrorMessages.BAD_TYPECODE);
@@ -368,13 +370,13 @@ Object reconstructCached(VirtualFrame frame, Object arrayType, TruffleString typ
368370

369371
@Specialization(replaces = "reconstructCached")
370372
Object reconstruct(VirtualFrame frame, Object arrayType, TruffleString typeCode, int mformatCode, PBytes bytes,
371-
@Cached PyObjectCallMethodObjArgs callDecode,
372-
@Cached ArrayBuiltins.FromBytesNode fromBytesNode,
373-
@Cached ArrayBuiltins.FromUnicodeNode fromUnicodeNode,
374-
@Cached IsSubtypeNode isSubtypeNode,
375-
@Cached ArrayBuiltins.ByteSwapNode byteSwapNode,
376-
@Cached TruffleString.CodePointLengthNode lengthNode,
377-
@Cached TruffleString.CodePointAtIndexNode atIndexNode) {
373+
@Exclusive @Cached PyObjectCallMethodObjArgs callDecode,
374+
@Exclusive @Cached ArrayBuiltins.FromBytesNode fromBytesNode,
375+
@Exclusive @Cached ArrayBuiltins.FromUnicodeNode fromUnicodeNode,
376+
@Exclusive @Cached IsSubtypeNode isSubtypeNode,
377+
@Exclusive @Cached ArrayBuiltins.ByteSwapNode byteSwapNode,
378+
@Exclusive @Cached TruffleString.CodePointLengthNode lengthNode,
379+
@Exclusive @Cached TruffleString.CodePointAtIndexNode atIndexNode) {
378380
BufferFormat format = BufferFormat.forArray(typeCode, lengthNode, atIndexNode);
379381
if (format == null) {
380382
throw raise(ValueError, ErrorMessages.BAD_TYPECODE);

0 commit comments

Comments
 (0)