@@ -128,8 +128,8 @@ typedef struct {
128128 bool cold ;
129129 uint8_t pending_deletion ;
130130 int32_t index ; // Index of ENTER_EXECUTOR (if code isn't NULL, below).
131- _PyBloomFilter bloom ;
132- _PyExecutorLinkListNode links ;
131+ int32_t bloom_array_idx ; // Index in interp->executor_blooms/executor_ptrs.
132+ _PyExecutorLinkListNode links ; // Used by deletion list.
133133 PyCodeObject * code ; // Weak (NULL if no corresponding ENTER_EXECUTOR).
134134} _PyVMData ;
135135
@@ -157,7 +157,7 @@ typedef struct _PyExecutorObject {
157157// Export for '_opcode' shared extension (JIT compiler).
158158PyAPI_FUNC (_PyExecutorObject * ) _Py_GetExecutor (PyCodeObject * code , int offset );
159159
160- void _Py_ExecutorInit (_PyExecutorObject * , const _PyBloomFilter * );
160+ int _Py_ExecutorInit (_PyExecutorObject * , const _PyBloomFilter * );
161161void _Py_ExecutorDetach (_PyExecutorObject * );
162162void _Py_BloomFilter_Init (_PyBloomFilter * );
163163void _Py_BloomFilter_Add (_PyBloomFilter * bloom , void * obj );
@@ -361,6 +361,8 @@ _PyJit_TryInitializeTracing(PyThreadState *tstate, _PyInterpreterFrame *frame,
361361 int oparg , _PyExecutorObject * current_executor );
362362
363363PyAPI_FUNC (void ) _PyJit_FinalizeTracing (PyThreadState * tstate , int err );
364+ PyAPI_FUNC (bool ) _PyJit_EnterExecutorShouldStopTracing (int og_opcode );
365+
364366void _PyPrintExecutor (_PyExecutorObject * executor , const _PyUOpInstruction * marker );
365367void _PyJit_TracerFree (_PyThreadStateImpl * _tstate );
366368
0 commit comments