@@ -179,6 +179,7 @@ typedef enum _JitSymType {
179179 JIT_SYM_KNOWN_VALUE_TAG = 7 ,
180180 JIT_SYM_TUPLE_TAG = 8 ,
181181 JIT_SYM_TRUTHINESS_TAG = 9 ,
182+ JIT_SYM_COMPACT_INT = 10 ,
182183} JitSymType ;
183184
184185typedef struct _jit_opt_known_class {
@@ -211,13 +212,18 @@ typedef struct {
211212 uint16_t value ;
212213} JitOptTruthiness ;
213214
215+ typedef struct {
216+ uint8_t tag ;
217+ } JitOptCompactInt ;
218+
214219typedef union _jit_opt_symbol {
215220 uint8_t tag ;
216221 JitOptKnownClass cls ;
217222 JitOptKnownValue value ;
218223 JitOptKnownVersion version ;
219224 JitOptTuple tuple ;
220225 JitOptTruthiness truthiness ;
226+ JitOptCompactInt compact ;
221227} JitOptSymbol ;
222228
223229
@@ -308,6 +314,7 @@ extern JitOptRef _Py_uop_sym_new_unknown(JitOptContext *ctx);
308314extern JitOptRef _Py_uop_sym_new_not_null (JitOptContext * ctx );
309315extern JitOptRef _Py_uop_sym_new_type (
310316 JitOptContext * ctx , PyTypeObject * typ );
317+
311318extern JitOptRef _Py_uop_sym_new_const (JitOptContext * ctx , PyObject * const_val );
312319extern JitOptRef _Py_uop_sym_new_null (JitOptContext * ctx );
313320extern bool _Py_uop_sym_has_type (JitOptRef sym );
@@ -325,6 +332,9 @@ extern JitOptRef _Py_uop_sym_new_tuple(JitOptContext *ctx, int size, JitOptRef *
325332extern JitOptRef _Py_uop_sym_tuple_getitem (JitOptContext * ctx , JitOptRef sym , int item );
326333extern int _Py_uop_sym_tuple_length (JitOptRef sym );
327334extern JitOptRef _Py_uop_sym_new_truthiness (JitOptContext * ctx , JitOptRef value , bool truthy );
335+ extern bool _Py_uop_sym_is_compact_int (JitOptRef sym );
336+ extern JitOptRef _Py_uop_sym_new_compact_int (JitOptContext * ctx );
337+ extern void _Py_uop_sym_set_compact_int (JitOptContext * ctx , JitOptRef sym );
328338
329339extern void _Py_uop_abstractcontext_init (JitOptContext * ctx );
330340extern void _Py_uop_abstractcontext_fini (JitOptContext * ctx );
0 commit comments