mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
gh-104584: Baby steps towards generating and executing traces (#105924)
Added a new, experimental, tracing optimizer and interpreter (a.k.a. "tier 2"). This currently pessimizes, so don't use yet -- this is infrastructure so we can experiment with optimizing passes. To enable it, pass ``-Xuops`` or set ``PYTHONUOPS=1``. To get debug output, set ``PYTHONUOPSDEBUG=N`` where ``N`` is a debug level (0-4, where 0 is no debug output and 4 is excessively verbose). All of this code is likely to change dramatically before the 3.13 feature freeze. But this is a first step.
This commit is contained in:
parent
d3af83b934
commit
51fc725117
21 changed files with 2559 additions and 305 deletions
|
|
@ -830,6 +830,12 @@ get_counter_optimizer(PyObject *self, PyObject *arg)
|
|||
return PyUnstable_Optimizer_NewCounter();
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
get_uop_optimizer(PyObject *self, PyObject *arg)
|
||||
{
|
||||
return PyUnstable_Optimizer_NewUOpOptimizer();
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
set_optimizer(PyObject *self, PyObject *opt)
|
||||
{
|
||||
|
|
@ -994,6 +1000,7 @@ static PyMethodDef module_functions[] = {
|
|||
{"get_optimizer", get_optimizer, METH_NOARGS, NULL},
|
||||
{"set_optimizer", set_optimizer, METH_O, NULL},
|
||||
{"get_counter_optimizer", get_counter_optimizer, METH_NOARGS, NULL},
|
||||
{"get_uop_optimizer", get_uop_optimizer, METH_NOARGS, NULL},
|
||||
{"pending_threadfunc", _PyCFunction_CAST(pending_threadfunc),
|
||||
METH_VARARGS | METH_KEYWORDS},
|
||||
// {"pending_fd_identify", pending_fd_identify, METH_VARARGS, NULL},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue