@@ -19,36 +19,36 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
1919 [_NOP ] = 0 ,
2020 [_RESUME_CHECK ] = HAS_DEOPT_FLAG ,
2121 [_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 ,
2323 [_LOAD_FAST_AND_CLEAR ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG ,
2424 [_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 ,
2626 [_STORE_FAST ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG ,
2727 [_STORE_FAST_LOAD_FAST ] = HAS_ARG_FLAG | HAS_LOCAL_FLAG ,
2828 [_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 ,
3232 [_UNARY_NEGATIVE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
33- [_UNARY_NOT ] = 0 ,
33+ [_UNARY_NOT ] = HAS_PURE_FLAG ,
3434 [_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 ,
3636 [_TO_BOOL_INT ] = HAS_DEOPT_FLAG ,
3737 [_TO_BOOL_LIST ] = HAS_DEOPT_FLAG ,
3838 [_TO_BOOL_NONE ] = HAS_DEOPT_FLAG ,
3939 [_TO_BOOL_STR ] = HAS_DEOPT_FLAG ,
4040 [_TO_BOOL_ALWAYS_TRUE ] = HAS_DEOPT_FLAG ,
4141 [_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 ,
5252 [_BINARY_SUBSCR ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
5353 [_BINARY_SLICE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
5454 [_STORE_SLICE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
@@ -112,17 +112,17 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
112112 [_LOAD_SUPER_ATTR_ATTR ] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
113113 [_LOAD_SUPER_ATTR_METHOD ] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
114114 [_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 ,
117117 [_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 ,
119119 [_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 ,
121121 [_LOAD_ATTR_WITH_HINT ] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG ,
122122 [_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 ,
124124 [_LOAD_ATTR_CLASS ] = HAS_ARG_FLAG ,
125- [_GUARD_DORV_VALUES ] = HAS_DEOPT_FLAG ,
125+ [_GUARD_DORV_VALUES ] = HAS_DEOPT_FLAG | HAS_PASSTHROUGH_FLAG ,
126126 [_STORE_ATTR_INSTANCE_VALUE ] = HAS_ESCAPES_FLAG ,
127127 [_STORE_ATTR_SLOT ] = HAS_ESCAPES_FLAG ,
128128 [_COMPARE_OP ] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
@@ -142,33 +142,33 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
142142 [_GET_ITER ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
143143 [_GET_YIELD_FROM_ITER ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
144144 [_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 ,
147147 [_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 ,
150150 [_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 ,
153153 [_ITER_NEXT_RANGE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
154154 [_BEFORE_ASYNC_WITH ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
155155 [_BEFORE_WITH ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
156156 [_WITH_EXCEPT_START ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
157157 [_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 ,
160160 [_LOAD_ATTR_METHOD_WITH_VALUES ] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG ,
161161 [_LOAD_ATTR_METHOD_NO_DICT ] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG ,
162162 [_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES ] = HAS_ARG_FLAG ,
163163 [_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 ,
165165 [_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 ,
167167 [_INIT_CALL_BOUND_METHOD_EXACT_ARGS ] = HAS_ARG_FLAG ,
168168 [_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 ,
172172 [_PUSH_FRAME ] = 0 ,
173173 [_CALL_TYPE_1 ] = HAS_ARG_FLAG | HAS_DEOPT_FLAG ,
174174 [_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] = {
190190 [_CONVERT_VALUE ] = HAS_ARG_FLAG | HAS_ERROR_FLAG ,
191191 [_FORMAT_SIMPLE ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
192192 [_FORMAT_WITH_SPEC ] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG ,
193- [_COPY ] = HAS_ARG_FLAG ,
193+ [_COPY ] = HAS_ARG_FLAG | HAS_PURE_FLAG ,
194194 [_BINARY_OP ] = HAS_ARG_FLAG | HAS_ERROR_FLAG ,
195- [_SWAP ] = HAS_ARG_FLAG ,
195+ [_SWAP ] = HAS_ARG_FLAG | HAS_PURE_FLAG ,
196196 [_GUARD_IS_TRUE_POP ] = HAS_DEOPT_FLAG ,
197197 [_GUARD_IS_FALSE_POP ] = HAS_DEOPT_FLAG ,
198198 [_GUARD_IS_NONE_POP ] = HAS_DEOPT_FLAG ,
@@ -201,7 +201,6 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
201201 [_SET_IP ] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG ,
202202 [_SAVE_RETURN_OFFSET ] = HAS_ARG_FLAG ,
203203 [_EXIT_TRACE ] = HAS_DEOPT_FLAG ,
204- [_INSERT ] = HAS_ARG_FLAG ,
205204 [_CHECK_VALIDITY ] = HAS_DEOPT_FLAG ,
206205 [_LOAD_CONST_INLINE_BORROW ] = 0 ,
207206 [_INTERNAL_INCREMENT_OPT_COUNTER ] = 0 ,
@@ -304,7 +303,6 @@ const char *const _PyOpcode_uop_name[MAX_UOP_ID+1] = {
304303 [_GUARD_TYPE_VERSION ] = "_GUARD_TYPE_VERSION" ,
305304 [_INIT_CALL_BOUND_METHOD_EXACT_ARGS ] = "_INIT_CALL_BOUND_METHOD_EXACT_ARGS" ,
306305 [_INIT_CALL_PY_EXACT_ARGS ] = "_INIT_CALL_PY_EXACT_ARGS" ,
307- [_INSERT ] = "_INSERT" ,
308306 [_INTERNAL_INCREMENT_OPT_COUNTER ] = "_INTERNAL_INCREMENT_OPT_COUNTER" ,
309307 [_IS_NONE ] = "_IS_NONE" ,
310308 [_IS_OP ] = "_IS_OP" ,
0 commit comments