@@ -1863,6 +1863,7 @@ public static void doUnpackIterable(VirtualFrame virtualFrame, Object collection
1863
1863
1864
1864
@ Operation
1865
1865
@ ImportStatic ({PGuards .class })
1866
+ @ SuppressWarnings ("truffle-interpreted-performance" )
1866
1867
public static final class UnpackStarredToLocals {
1867
1868
@ Specialization (guards = {"cannotBeOverridden(sequence, inliningTarget, getClassNode)" , "!isPString(sequence)" }, limit = "1" )
1868
1869
public static void doUnpackSequence (VirtualFrame localFrame , PSequence sequence , int starIndex ,
@@ -2949,7 +2950,7 @@ public static void doEnter(VirtualFrame frame, Object contextManager,
2949
2950
public static final class ContextManagerExit {
2950
2951
@ Specialization
2951
2952
public static void doRegular (VirtualFrame frame , PNone none , Object exit , Object contextManager ,
2952
- @ Cached CallQuaternaryMethodNode callExit ) {
2953
+ @ Shared @ Cached CallQuaternaryMethodNode callExit ) {
2953
2954
callExit .execute (frame , exit , contextManager , PNone .NONE , PNone .NONE , PNone .NONE );
2954
2955
}
2955
2956
@@ -2959,7 +2960,7 @@ public static void doExceptional(VirtualFrame frame,
2959
2960
Object exception , Object exit , Object contextManager ,
2960
2961
@ Bind ("this" ) Node inliningTarget ,
2961
2962
@ Bind ("$root" ) PBytecodeDSLRootNode rootNode ,
2962
- @ Cached CallQuaternaryMethodNode callExit ,
2963
+ @ Shared @ Cached CallQuaternaryMethodNode callExit ,
2963
2964
@ Cached GetClassNode getClass ,
2964
2965
@ Cached ExceptionNodes .GetTracebackNode getTraceback ,
2965
2966
@ Cached PyObjectIsTrueNode isTrue ,
@@ -3023,7 +3024,7 @@ public static final class AsyncContextManagerCallExit {
3023
3024
@ Specialization
3024
3025
public static Object doRegular (VirtualFrame frame ,
3025
3026
PNone none , Object exit , Object contextManager ,
3026
- @ Cached CallQuaternaryMethodNode callExit ) {
3027
+ @ Shared @ Cached CallQuaternaryMethodNode callExit ) {
3027
3028
return callExit .execute (frame , exit , contextManager , PNone .NONE , PNone .NONE , PNone .NONE );
3028
3029
}
3029
3030
@@ -3033,7 +3034,7 @@ public static Object doExceptional(VirtualFrame frame,
3033
3034
Object exception , Object exit , Object contextManager ,
3034
3035
@ Bind ("this" ) Node inliningTarget ,
3035
3036
@ Bind ("$root" ) PBytecodeDSLRootNode rootNode ,
3036
- @ Cached CallQuaternaryMethodNode callExit ,
3037
+ @ Shared @ Cached CallQuaternaryMethodNode callExit ,
3037
3038
@ Cached GetClassNode getClass ,
3038
3039
@ Cached ExceptionNodes .GetTracebackNode getTraceback ,
3039
3040
@ Cached PyObjectIsTrueNode isTrue ,
@@ -3056,9 +3057,10 @@ public static Object doExceptional(VirtualFrame frame,
3056
3057
3057
3058
@ Operation
3058
3059
public static final class AsyncContextManagerExit {
3059
- // NB: There is nothing to do after awaiting __exit__(None, None, None), so this
3060
- // operation is only used for the case where the context manager exits due to an
3061
- // exception.
3060
+ /**
3061
+ * NB: There is nothing to do after awaiting __exit__(None, None, None), so this operation
3062
+ * is only emitted for the case where the context manager exits due to an exception.
3063
+ */
3062
3064
@ Specialization
3063
3065
@ InliningCutoff
3064
3066
public static void doExceptional (VirtualFrame frame ,
@@ -3268,6 +3270,7 @@ public static Object doObject(VirtualFrame frame, Object sendValue,
3268
3270
}
3269
3271
3270
3272
@ Operation
3273
+ @ SuppressWarnings ("truffle-interpreted-performance" )
3271
3274
public static final class YieldFromSend {
3272
3275
private static final TruffleString T_SEND = tsLiteral ("send" );
3273
3276
@@ -3336,6 +3339,7 @@ private static void handleException(VirtualFrame frame, PException e, Node inlin
3336
3339
}
3337
3340
3338
3341
@ Operation
3342
+ @ SuppressWarnings ("turffle-interpreted-performance" )
3339
3343
public static final class YieldFromThrow {
3340
3344
3341
3345
private static final TruffleString T_CLOSE = tsLiteral ("close" );
0 commit comments