@@ -19,36 +19,36 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
19
19
[_NOP ] = 0 ,
20
20
[_RESUME_CHECK ] = HAS_DEOPT_FLAG ,
21
21
[_LOAD_FAST_CHECK ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG ,
22
- [_LOAD_FAST ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG ,
22
+ [_LOAD_FAST ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG ,
23
23
[_LOAD_FAST_AND_CLEAR ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG ,
24
24
[_LOAD_FAST_LOAD_FAST ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG ,
25
- [_LOAD_CONST ] = HAS_ARG_FLAG | HAS_CONST_FLAG ,
25
+ [_LOAD_CONST ] = HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_PURE_FLAG ,
26
26
[_STORE_FAST ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG ,
27
27
[_STORE_FAST_LOAD_FAST ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG ,
28
28
[_STORE_FAST_STORE_FAST ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG ,
29
- [_POP_TOP ] = 0 ,
30
- [_PUSH_NULL ] = 0 ,
31
- [_END_SEND ] = 0 ,
29
+ [_POP_TOP ] = HAS_PURE_FLAG ,
30
+ [_PUSH_NULL ] = HAS_PURE_FLAG ,
31
+ [_END_SEND ] = HAS_PURE_FLAG ,
32
32
[_UNARY_NEGATIVE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
33
- [_UNARY_NOT ] = 0 ,
33
+ [_UNARY_NOT ] = HAS_PURE_FLAG ,
34
34
[_TO_BOOL ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
35
- [_TO_BOOL_BOOL ] = HAS_DEOPT_FLAG ,
35
+ [_TO_BOOL_BOOL ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
36
36
[_TO_BOOL_INT ] = HAS_DEOPT_FLAG ,
37
37
[_TO_BOOL_LIST ] = HAS_DEOPT_FLAG ,
38
38
[_TO_BOOL_NONE ] = HAS_DEOPT_FLAG ,
39
39
[_TO_BOOL_STR ] = HAS_DEOPT_FLAG ,
40
40
[_TO_BOOL_ALWAYS_TRUE ] = HAS_DEOPT_FLAG ,
41
41
[_UNARY_INVERT ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
42
- [_GUARD_BOTH_INT ] = HAS_DEOPT_FLAG ,
43
- [_BINARY_OP_MULTIPLY_INT ] = HAS_ERROR_FLAG ,
44
- [_BINARY_OP_ADD_INT ] = HAS_ERROR_FLAG ,
45
- [_BINARY_OP_SUBTRACT_INT ] = HAS_ERROR_FLAG ,
46
- [_GUARD_BOTH_FLOAT ] = HAS_DEOPT_FLAG ,
47
- [_BINARY_OP_MULTIPLY_FLOAT ] = 0 ,
48
- [_BINARY_OP_ADD_FLOAT ] = 0 ,
49
- [_BINARY_OP_SUBTRACT_FLOAT ] = 0 ,
50
- [_GUARD_BOTH_UNICODE ] = HAS_DEOPT_FLAG ,
51
- [_BINARY_OP_ADD_UNICODE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
42
+ [_GUARD_BOTH_INT ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
43
+ [_BINARY_OP_MULTIPLY_INT ] = HAS_ERROR_FLAG | HAS_PURE_FLAG ,
44
+ [_BINARY_OP_ADD_INT ] = HAS_ERROR_FLAG | HAS_PURE_FLAG ,
45
+ [_BINARY_OP_SUBTRACT_INT ] = HAS_ERROR_FLAG | HAS_PURE_FLAG ,
46
+ [_GUARD_BOTH_FLOAT ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
47
+ [_BINARY_OP_MULTIPLY_FLOAT ] = HAS_PURE_FLAG ,
48
+ [_BINARY_OP_ADD_FLOAT ] = HAS_PURE_FLAG ,
49
+ [_BINARY_OP_SUBTRACT_FLOAT ] = HAS_PURE_FLAG ,
50
+ [_GUARD_BOTH_UNICODE ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
51
+ [_BINARY_OP_ADD_UNICODE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG | HAS_PURE_FLAG ,
52
52
[_BINARY_SUBSCR ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
53
53
[_BINARY_SLICE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
54
54
[_STORE_SLICE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
@@ -112,17 +112,17 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
112
112
[_LOAD_SUPER_ATTR_ATTR ] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
113
113
[_LOAD_SUPER_ATTR_METHOD ] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
114
114
[_LOAD_ATTR ] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
115
- [_GUARD_TYPE_VERSION ] = HAS_DEOPT_FLAG ,
116
- [_CHECK_MANAGED_OBJECT_HAS_VALUES ] = HAS_DEOPT_FLAG ,
115
+ [_GUARD_TYPE_VERSION ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
116
+ [_CHECK_MANAGED_OBJECT_HAS_VALUES ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
117
117
[_LOAD_ATTR_INSTANCE_VALUE ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG ,
118
- [_CHECK_ATTR_MODULE ] = HAS_DEOPT_FLAG ,
118
+ [_CHECK_ATTR_MODULE ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
119
119
[_LOAD_ATTR_MODULE ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG ,
120
- [_CHECK_ATTR_WITH_HINT ] = HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG ,
120
+ [_CHECK_ATTR_WITH_HINT ] = HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG | HAS_PASSTHROUGH_FLAG ,
121
121
[_LOAD_ATTR_WITH_HINT ] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG ,
122
122
[_LOAD_ATTR_SLOT ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG ,
123
- [_CHECK_ATTR_CLASS ] = HAS_DEOPT_FLAG ,
123
+ [_CHECK_ATTR_CLASS ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
124
124
[_LOAD_ATTR_CLASS ] = HAS_ARG_FLAG ,
125
- [_GUARD_DORV_VALUES ] = HAS_DEOPT_FLAG ,
125
+ [_GUARD_DORV_VALUES ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
126
126
[_STORE_ATTR_INSTANCE_VALUE ] = HAS_ESCAPES_FLAG ,
127
127
[_STORE_ATTR_SLOT ] = HAS_ESCAPES_FLAG ,
128
128
[_COMPARE_OP ] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
@@ -142,33 +142,33 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
142
142
[_GET_ITER ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
143
143
[_GET_YIELD_FROM_ITER ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
144
144
[_FOR_ITER_TIER_TWO ] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
145
- [_ITER_CHECK_LIST ] = HAS_DEOPT_FLAG ,
146
- [_GUARD_NOT_EXHAUSTED_LIST ] = HAS_DEOPT_FLAG ,
145
+ [_ITER_CHECK_LIST ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
146
+ [_GUARD_NOT_EXHAUSTED_LIST ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
147
147
[_ITER_NEXT_LIST ] = 0 ,
148
- [_ITER_CHECK_TUPLE ] = HAS_DEOPT_FLAG ,
149
- [_GUARD_NOT_EXHAUSTED_TUPLE ] = HAS_DEOPT_FLAG ,
148
+ [_ITER_CHECK_TUPLE ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
149
+ [_GUARD_NOT_EXHAUSTED_TUPLE ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
150
150
[_ITER_NEXT_TUPLE ] = 0 ,
151
- [_ITER_CHECK_RANGE ] = HAS_DEOPT_FLAG ,
152
- [_GUARD_NOT_EXHAUSTED_RANGE ] = HAS_DEOPT_FLAG ,
151
+ [_ITER_CHECK_RANGE ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
152
+ [_GUARD_NOT_EXHAUSTED_RANGE ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
153
153
[_ITER_NEXT_RANGE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
154
154
[_BEFORE_ASYNC_WITH ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
155
155
[_BEFORE_WITH ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
156
156
[_WITH_EXCEPT_START ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
157
157
[_PUSH_EXC_INFO ] = 0 ,
158
- [_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT ] = HAS_DEOPT_FLAG ,
159
- [_GUARD_KEYS_VERSION ] = HAS_DEOPT_FLAG ,
158
+ [_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
159
+ [_GUARD_KEYS_VERSION ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
160
160
[_LOAD_ATTR_METHOD_WITH_VALUES ] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG ,
161
161
[_LOAD_ATTR_METHOD_NO_DICT ] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG ,
162
162
[_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES ] = HAS_ARG_FLAG ,
163
163
[_LOAD_ATTR_NONDESCRIPTOR_NO_DICT ] = HAS_ARG_FLAG ,
164
- [_CHECK_ATTR_METHOD_LAZY_DICT ] = HAS_DEOPT_FLAG ,
164
+ [_CHECK_ATTR_METHOD_LAZY_DICT ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
165
165
[_LOAD_ATTR_METHOD_LAZY_DICT ] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG ,
166
- [_CHECK_CALL_BOUND_METHOD_EXACT_ARGS ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG ,
166
+ [_CHECK_CALL_BOUND_METHOD_EXACT_ARGS ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
167
167
[_INIT_CALL_BOUND_METHOD_EXACT_ARGS ] = HAS_ARG_FLAG ,
168
168
[_CHECK_PEP_523 ] = HAS_DEOPT_FLAG ,
169
- [_CHECK_FUNCTION_EXACT_ARGS ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG ,
170
- [_CHECK_STACK_SPACE ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG ,
171
- [_INIT_CALL_PY_EXACT_ARGS ] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG ,
169
+ [_CHECK_FUNCTION_EXACT_ARGS ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
170
+ [_CHECK_STACK_SPACE ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
171
+ [_INIT_CALL_PY_EXACT_ARGS ] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG | HAS_PURE_FLAG ,
172
172
[_PUSH_FRAME ] = 0 ,
173
173
[_CALL_TYPE_1 ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG ,
174
174
[_CALL_STR_1 ] = HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
@@ -190,9 +190,9 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
190
190
[_CONVERT_VALUE ] = HAS_ARG_FLAG | HAS_ERROR_FLAG ,
191
191
[_FORMAT_SIMPLE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
192
192
[_FORMAT_WITH_SPEC ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
193
- [_COPY ] = HAS_ARG_FLAG ,
193
+ [_COPY ] = HAS_ARG_FLAG | HAS_PURE_FLAG ,
194
194
[_BINARY_OP ] = HAS_ARG_FLAG | HAS_ERROR_FLAG ,
195
- [_SWAP ] = HAS_ARG_FLAG ,
195
+ [_SWAP ] = HAS_ARG_FLAG | HAS_PURE_FLAG ,
196
196
[_GUARD_IS_TRUE_POP ] = HAS_DEOPT_FLAG ,
197
197
[_GUARD_IS_FALSE_POP ] = HAS_DEOPT_FLAG ,
198
198
[_GUARD_IS_NONE_POP ] = HAS_DEOPT_FLAG ,
@@ -201,7 +201,6 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
201
201
[_SET_IP ] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG ,
202
202
[_SAVE_RETURN_OFFSET ] = HAS_ARG_FLAG ,
203
203
[_EXIT_TRACE ] = HAS_DEOPT_FLAG ,
204
- [_INSERT ] = HAS_ARG_FLAG ,
205
204
[_CHECK_VALIDITY ] = HAS_DEOPT_FLAG ,
206
205
[_LOAD_CONST_INLINE_BORROW ] = 0 ,
207
206
[_INTERNAL_INCREMENT_OPT_COUNTER ] = 0 ,
@@ -304,7 +303,6 @@ const char *const _PyOpcode_uop_name[MAX_UOP_ID+1] = {
304
303
[_GUARD_TYPE_VERSION ] = "_GUARD_TYPE_VERSION" ,
305
304
[_INIT_CALL_BOUND_METHOD_EXACT_ARGS ] = "_INIT_CALL_BOUND_METHOD_EXACT_ARGS" ,
306
305
[_INIT_CALL_PY_EXACT_ARGS ] = "_INIT_CALL_PY_EXACT_ARGS" ,
307
- [_INSERT ] = "_INSERT" ,
308
306
[_INTERNAL_INCREMENT_OPT_COUNTER ] = "_INTERNAL_INCREMENT_OPT_COUNTER" ,
309
307
[_IS_NONE ] = "_IS_NONE" ,
310
308
[_IS_OP ] = "_IS_OP" ,
0 commit comments