mirror of
https://github.com/python/cpython.git
synced 2026-01-22 23:28:43 +00:00
gh-138050: Use cold flag instead of warm flag in MAKE_WARM (GH-143827)
This commit is contained in:
parent
7e8a1b5061
commit
94dbce1397
5 changed files with 14 additions and 14 deletions
|
|
@ -5474,7 +5474,7 @@ dummy_func(
|
|||
}
|
||||
|
||||
tier2 op(_MAKE_WARM, (--)) {
|
||||
current_executor->vm_data.warm = true;
|
||||
current_executor->vm_data.cold = false;
|
||||
}
|
||||
|
||||
tier2 op(_FATAL_ERROR, (--)) {
|
||||
|
|
|
|||
8
Python/executor_cases.c.h
generated
8
Python/executor_cases.c.h
generated
|
|
@ -18511,7 +18511,7 @@
|
|||
case _MAKE_WARM_r00: {
|
||||
CHECK_CURRENT_CACHED_VALUES(0);
|
||||
assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE());
|
||||
current_executor->vm_data.warm = true;
|
||||
current_executor->vm_data.cold = false;
|
||||
SET_CURRENT_CACHED_VALUES(0);
|
||||
assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE());
|
||||
break;
|
||||
|
|
@ -18521,7 +18521,7 @@
|
|||
CHECK_CURRENT_CACHED_VALUES(1);
|
||||
assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE());
|
||||
_PyStackRef _stack_item_0 = _tos_cache0;
|
||||
current_executor->vm_data.warm = true;
|
||||
current_executor->vm_data.cold = false;
|
||||
_tos_cache0 = _stack_item_0;
|
||||
SET_CURRENT_CACHED_VALUES(1);
|
||||
assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE());
|
||||
|
|
@ -18533,7 +18533,7 @@
|
|||
assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE());
|
||||
_PyStackRef _stack_item_0 = _tos_cache0;
|
||||
_PyStackRef _stack_item_1 = _tos_cache1;
|
||||
current_executor->vm_data.warm = true;
|
||||
current_executor->vm_data.cold = false;
|
||||
_tos_cache1 = _stack_item_1;
|
||||
_tos_cache0 = _stack_item_0;
|
||||
SET_CURRENT_CACHED_VALUES(2);
|
||||
|
|
@ -18547,7 +18547,7 @@
|
|||
_PyStackRef _stack_item_0 = _tos_cache0;
|
||||
_PyStackRef _stack_item_1 = _tos_cache1;
|
||||
_PyStackRef _stack_item_2 = _tos_cache2;
|
||||
current_executor->vm_data.warm = true;
|
||||
current_executor->vm_data.cold = false;
|
||||
_tos_cache2 = _stack_item_2;
|
||||
_tos_cache1 = _stack_item_1;
|
||||
_tos_cache0 = _stack_item_0;
|
||||
|
|
|
|||
|
|
@ -1408,9 +1408,9 @@ make_executor_from_uops(_PyThreadStateImpl *tstate, _PyUOpInstruction *buffer, i
|
|||
#ifdef _Py_JIT
|
||||
executor->jit_code = NULL;
|
||||
executor->jit_size = 0;
|
||||
// This is initialized to true so we can prevent the executor
|
||||
// This is initialized to false so we can prevent the executor
|
||||
// from being immediately detected as cold and invalidated.
|
||||
executor->vm_data.warm = true;
|
||||
executor->vm_data.cold = false;
|
||||
if (_PyJIT_Compile(executor, executor->trace, length)) {
|
||||
Py_DECREF(executor);
|
||||
return NULL;
|
||||
|
|
@ -1698,9 +1698,9 @@ make_cold_executor(uint16_t opcode)
|
|||
Py_FatalError("Cannot allocate core JIT code");
|
||||
}
|
||||
((_PyUOpInstruction *)cold->trace)->opcode = opcode;
|
||||
// This is initialized to true so we can prevent the executor
|
||||
// This is initialized to false so we can prevent the executor
|
||||
// from being immediately detected as cold and invalidated.
|
||||
cold->vm_data.warm = true;
|
||||
cold->vm_data.cold = false;
|
||||
#ifdef _Py_JIT
|
||||
cold->jit_code = NULL;
|
||||
cold->jit_size = 0;
|
||||
|
|
@ -1895,11 +1895,11 @@ _Py_Executors_InvalidateCold(PyInterpreterState *interp)
|
|||
assert(exec->vm_data.valid);
|
||||
_PyExecutorObject *next = exec->vm_data.links.next;
|
||||
|
||||
if (!exec->vm_data.warm && PyList_Append(invalidate, (PyObject *)exec) < 0) {
|
||||
if (exec->vm_data.cold && PyList_Append(invalidate, (PyObject *)exec) < 0) {
|
||||
goto error;
|
||||
}
|
||||
else {
|
||||
exec->vm_data.warm = false;
|
||||
exec->vm_data.cold = true;
|
||||
}
|
||||
|
||||
exec = next;
|
||||
|
|
|
|||
|
|
@ -820,7 +820,7 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
|
|||
if (cold != NULL) {
|
||||
interp->cold_executor = NULL;
|
||||
assert(cold->vm_data.valid);
|
||||
assert(cold->vm_data.warm);
|
||||
assert(!cold->vm_data.cold);
|
||||
_PyExecutor_Free(cold);
|
||||
}
|
||||
|
||||
|
|
@ -828,7 +828,7 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
|
|||
if (cold_dynamic != NULL) {
|
||||
interp->cold_dynamic_executor = NULL;
|
||||
assert(cold_dynamic->vm_data.valid);
|
||||
assert(cold_dynamic->vm_data.warm);
|
||||
assert(!cold_dynamic->vm_data.cold);
|
||||
_PyExecutor_Free(cold_dynamic);
|
||||
}
|
||||
/* We don't clear sysdict and builtins until the end of this function.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue