gh-138050: [WIP] JIT - Streamline MAKE_WARM - move coldness check to executor creation (GH-138240)

This commit is contained in:
alm 2025-10-27 18:37:37 +02:00 committed by GitHub
parent e03d8e4f50
commit 1753ccb432
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 15 additions and 13 deletions

View file

@ -6,6 +6,7 @@
#include "pycore_interp.h"
#include "pycore_backoff.h"
#include "pycore_bitutils.h" // _Py_popcount32()
#include "pycore_ceval.h" // _Py_set_eval_breaker_bit
#include "pycore_code.h" // _Py_GetBaseCodeUnit
#include "pycore_function.h" // _PyFunction_LookupByVersion()
#include "pycore_interpframe.h"
@ -1343,6 +1344,14 @@ uop_optimize(
return -1;
}
assert(length <= UOP_MAX_TRACE_LENGTH);
// Check executor coldness
PyThreadState *tstate = PyThreadState_Get();
// It's okay if this ends up going negative.
if (--tstate->interp->executor_creation_counter == 0) {
_Py_set_eval_breaker_bit(tstate, _PY_EVAL_JIT_INVALIDATE_COLD_BIT);
}
*exec_ptr = executor;
return 1;
}