@@ -714,9 +714,9 @@ public Object values(VirtualFrame frame, Object obj,
714
714
@ Builtin (name = "PySequence_SetItem" , minNumOfPositionalArgs = 3 )
715
715
@ GenerateNodeFactory
716
716
public abstract static class PySequenceSetItemNode extends PythonTernaryBuiltinNode {
717
- @ Specialization (guards = "checkNode.execute(obj)" )
717
+ @ Specialization (guards = "checkNode.execute(obj)" , limit = "1" )
718
718
public Object setItem (VirtualFrame frame , Object obj , Object key , Object value ,
719
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
719
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
720
720
@ Cached PyObjectLookupAttr lookupAttrNode ,
721
721
@ Cached ConditionProfile hasSetItem ,
722
722
@ Cached CallNode callNode ,
@@ -735,9 +735,9 @@ public Object setItem(VirtualFrame frame, Object obj, Object key, Object value,
735
735
}
736
736
}
737
737
738
- @ Specialization (guards = "!checkNode.execute(obj)" )
738
+ @ Specialization (guards = "!checkNode.execute(obj)" , limit = "1" )
739
739
Object setItem (VirtualFrame frame , Object obj , @ SuppressWarnings ("unused" ) Object key , @ SuppressWarnings ("unused" ) Object value ,
740
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
740
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
741
741
@ Cached PRaiseNativeNode raiseNativeNode ) {
742
742
return raiseNativeNode .raiseInt (frame , -1 , TypeError , ErrorMessages .IS_NOT_A_SEQUENCE , obj );
743
743
}
@@ -748,9 +748,9 @@ Object setItem(VirtualFrame frame, Object obj, @SuppressWarnings("unused") Objec
748
748
@ GenerateNodeFactory
749
749
abstract static class PySequenceGetSliceNode extends PythonTernaryBuiltinNode {
750
750
751
- @ Specialization (guards = "checkNode.execute(obj)" )
751
+ @ Specialization (guards = "checkNode.execute(obj)" , limit = "1" )
752
752
Object getSlice (VirtualFrame frame , Object obj , long iLow , long iHigh ,
753
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
753
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
754
754
@ Cached PyObjectLookupAttr lookupAttrNode ,
755
755
@ Cached SliceLiteralNode sliceNode ,
756
756
@ Cached CallNode callNode ,
@@ -764,9 +764,9 @@ Object getSlice(VirtualFrame frame, Object obj, long iLow, long iHigh,
764
764
}
765
765
}
766
766
767
- @ Specialization (guards = "!checkNode.execute(obj)" )
767
+ @ Specialization (guards = "!checkNode.execute(obj)" , limit = "1" )
768
768
Object getSlice (VirtualFrame frame , Object obj , @ SuppressWarnings ("unused" ) Object key , @ SuppressWarnings ("unused" ) Object value ,
769
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
769
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
770
770
@ Cached PRaiseNativeNode raiseNativeNode ) {
771
771
return raiseNativeNode .raise (frame , getContext ().getNativeNull (), TypeError , ErrorMessages .OBJ_IS_UNSLICEABLE , obj );
772
772
}
@@ -792,9 +792,9 @@ static Object contains(VirtualFrame frame, Object haystack, Object needle,
792
792
@ Builtin (name = "PySequence_Repeat" , minNumOfPositionalArgs = 2 )
793
793
@ GenerateNodeFactory
794
794
abstract static class PySequenceRepeatNode extends PythonBinaryBuiltinNode {
795
- @ Specialization (guards = "checkNode.execute(obj)" )
795
+ @ Specialization (guards = "checkNode.execute(obj)" , limit = "1" )
796
796
Object repeat (VirtualFrame frame , Object obj , long n ,
797
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
797
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
798
798
@ Cached ("createMul()" ) MulNode mulNode ,
799
799
@ Cached TransformExceptionToNativeNode transformExceptionToNativeNode ) {
800
800
try {
@@ -805,9 +805,9 @@ Object repeat(VirtualFrame frame, Object obj, long n,
805
805
}
806
806
}
807
807
808
- @ Specialization (guards = "!checkNode.execute(obj)" )
808
+ @ Specialization (guards = "!checkNode.execute(obj)" , limit = "1" )
809
809
protected Object repeat (VirtualFrame frame , Object obj , @ SuppressWarnings ("unused" ) Object n ,
810
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
810
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
811
811
@ Cached PRaiseNativeNode raiseNativeNode ) {
812
812
return raiseNativeNode .raise (frame , getContext ().getNativeNull (), TypeError , ErrorMessages .OBJ_CANT_BE_REPEATED , obj );
813
813
}
@@ -820,12 +820,12 @@ protected MulNode createMul() {
820
820
@ Builtin (name = "PySequence_InPlaceRepeat" , minNumOfPositionalArgs = 2 )
821
821
@ GenerateNodeFactory
822
822
abstract static class PySequenceInPlaceRepeatNode extends PythonBinaryBuiltinNode {
823
- @ Specialization (guards = {"checkNode.execute(obj)" })
823
+ @ Specialization (guards = {"checkNode.execute(obj)" }, limit = "1" )
824
824
Object repeat (VirtualFrame frame , Object obj , long n ,
825
825
@ Cached PyObjectLookupAttr lookupNode ,
826
826
@ Cached CallNode callNode ,
827
827
@ Cached ("createMul()" ) MulNode mulNode ,
828
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
828
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
829
829
@ Cached TransformExceptionToNativeNode transformExceptionToNativeNode ) {
830
830
try {
831
831
Object imulCallable = lookupNode .execute (frame , obj , __IMUL__ );
@@ -840,9 +840,9 @@ Object repeat(VirtualFrame frame, Object obj, long n,
840
840
}
841
841
}
842
842
843
- @ Specialization (guards = "!checkNode.execute(obj)" )
843
+ @ Specialization (guards = "!checkNode.execute(obj)" , limit = "1" )
844
844
protected Object repeat (VirtualFrame frame , Object obj , @ SuppressWarnings ("unused" ) Object n ,
845
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
845
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
846
846
@ Cached PRaiseNativeNode raiseNativeNode ) {
847
847
return raiseNativeNode .raise (frame , getContext ().getNativeNull (), TypeError , ErrorMessages .OBJ_CANT_BE_REPEATED , obj );
848
848
}
@@ -855,9 +855,9 @@ protected MulNode createMul() {
855
855
@ Builtin (name = "PySequence_Concat" , minNumOfPositionalArgs = 2 )
856
856
@ GenerateNodeFactory
857
857
abstract static class PySequenceConcatNode extends PythonBinaryBuiltinNode {
858
- @ Specialization (guards = {"checkNode.execute(s1)" , "checkNode.execute(s1)" })
858
+ @ Specialization (guards = {"checkNode.execute(s1)" , "checkNode.execute(s1)" }, limit = "1" )
859
859
Object concat (VirtualFrame frame , Object s1 , Object s2 ,
860
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
860
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
861
861
@ Cached ("createAdd()" ) BinaryArithmetic .AddNode addNode ,
862
862
@ Cached TransformExceptionToNativeNode transformExceptionToNativeNode ) {
863
863
try {
@@ -868,9 +868,9 @@ Object concat(VirtualFrame frame, Object s1, Object s2,
868
868
}
869
869
}
870
870
871
- @ Specialization (guards = {"!checkNode.execute(s1) || checkNode.execute(s2)" })
871
+ @ Specialization (guards = {"!checkNode.execute(s1) || checkNode.execute(s2)" }, limit = "1" )
872
872
protected Object cantConcat (VirtualFrame frame , Object s1 , @ SuppressWarnings ("unused" ) Object s2 ,
873
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
873
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
874
874
@ Cached PRaiseNativeNode raiseNativeNode ) {
875
875
return raiseNativeNode .raise (frame , getContext ().getNativeNull (), TypeError , ErrorMessages .OBJ_CANT_BE_CONCATENATED , s1 );
876
876
}
@@ -884,12 +884,12 @@ protected BinaryArithmetic.AddNode createAdd() {
884
884
@ GenerateNodeFactory
885
885
abstract static class PySequenceInPlaceConcatNode extends PythonBinaryBuiltinNode {
886
886
887
- @ Specialization (guards = {"checkNode.execute(s1)" })
887
+ @ Specialization (guards = {"checkNode.execute(s1)" }, limit = "1" )
888
888
Object concat (VirtualFrame frame , Object s1 , Object s2 ,
889
889
@ Cached PyObjectLookupAttr lookupNode ,
890
890
@ Cached CallNode callNode ,
891
891
@ Cached ("createAdd()" ) BinaryArithmetic .AddNode addNode ,
892
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
892
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
893
893
@ Cached TransformExceptionToNativeNode transformExceptionToNativeNode ) {
894
894
try {
895
895
Object iaddCallable = lookupNode .execute (frame , s1 , __IADD__ );
@@ -903,9 +903,9 @@ Object concat(VirtualFrame frame, Object s1, Object s2,
903
903
}
904
904
}
905
905
906
- @ Specialization (guards = "!checkNode.execute(s1)" )
906
+ @ Specialization (guards = "!checkNode.execute(s1)" , limit = "1" )
907
907
protected Object concat (VirtualFrame frame , Object s1 , @ SuppressWarnings ("unused" ) Object s2 ,
908
- @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
908
+ @ Shared ( "check" ) @ SuppressWarnings ("unused" ) @ Cached com .oracle .graal .python .lib .PySequenceCheckNode checkNode ,
909
909
@ Cached PRaiseNativeNode raiseNativeNode ) {
910
910
return raiseNativeNode .raise (frame , getContext ().getNativeNull (), TypeError , ErrorMessages .OBJ_CANT_BE_CONCATENATED , s1 );
911
911
}
@@ -1270,8 +1270,8 @@ static Object notMapping(VirtualFrame frame, Object obj,
1270
1270
protected static boolean isSetOrDeque (Object obj , IsSameTypeNode isSameType , GetClassNode getClassNode ) {
1271
1271
Object cls = getClassNode .execute (obj );
1272
1272
return isSameType .execute (cls , PythonBuiltinClassType .PSet ) ||
1273
- isSameType .execute (cls , PythonBuiltinClassType .PFrozenSet ) ||
1274
- isSameType .execute (cls , PythonBuiltinClassType .PDeque );
1273
+ isSameType .execute (cls , PythonBuiltinClassType .PFrozenSet ) ||
1274
+ isSameType .execute (cls , PythonBuiltinClassType .PDeque );
1275
1275
}
1276
1276
}
1277
1277
0 commit comments