Skip to content

Commit aa92d84

Browse files
cold dynamic executors
1 parent c78a4e6 commit aa92d84

File tree

13 files changed

+516
-275
lines changed

13 files changed

+516
-275
lines changed

Include/internal/pycore_interp_structs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -962,6 +962,7 @@ struct _is {
962962
struct _PyExecutorObject *executor_list_head;
963963
struct _PyExecutorObject *executor_deletion_list_head;
964964
struct _PyExecutorObject *cold_executor;
965+
struct _PyExecutorObject *cold_dynamic_executor;
965966
int executor_deletion_list_remaining_capacity;
966967
size_t executor_creation_counter;
967968
_rare_events rare_events;

Include/internal/pycore_optimizer.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ typedef struct {
3737
typedef struct _PyExitData {
3838
uint32_t target;
3939
uint16_t index;
40+
char is_dynamic;
4041
_Py_BackoffCounter temperature;
4142
struct _PyExecutorObject *executor;
4243
} _PyExitData;
@@ -340,6 +341,7 @@ static inline _PyExecutorObject *_PyExecutor_FromExit(_PyExitData *exit)
340341
}
341342

342343
extern _PyExecutorObject *_PyExecutor_GetColdExecutor(void);
344+
extern _PyExecutorObject *_PyExecutor_GetColdDynamicExecutor(void);
343345

344346
PyAPI_FUNC(void) _PyExecutor_ClearExit(_PyExitData *exit);
345347

@@ -366,7 +368,7 @@ int
366368
_PyJit_TryInitializeTracing(PyThreadState *tstate, _PyInterpreterFrame *frame,
367369
_Py_CODEUNIT *curr_instr, _Py_CODEUNIT *insert_exec_instr,
368370
_Py_CODEUNIT *close_loop_instr, int curr_stackdepth, int chain_depth, _PyExitData *exit,
369-
_PyExecutorObject *prev_exec, int oparg);
371+
_PyExecutorObject *prev_exec, int oparg, bool is_dynamic_target);
370372

371373
void _PyJit_FinalizeTracing(PyThreadState *tstate);
372374

0 commit comments

Comments
 (0)