mirror of
https://github.com/python/cpython.git
synced 2025-08-30 13:38:43 +00:00
gh-97670: Remove sys.getdxp() and analyze_dxp.py script (#97671)
Remove the sys.getdxp() function and the Tools/scripts/analyze_dxp.py script. DXP stands for "dynamic execution pairs". They were related to DYNAMIC_EXECUTION_PROFILE and DXPAIRS macros which have been removed in Python 3.11. Python can now be built with "./configure --enable-pystats" to gather statistics on Python opcodes.
This commit is contained in:
parent
6e53308829
commit
116fa62c6e
6 changed files with 7 additions and 201 deletions
|
@ -7207,61 +7207,6 @@ format_awaitable_error(PyThreadState *tstate, PyTypeObject *type, int oparg)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef Py_STATS
|
||||
|
||||
static PyObject *
|
||||
getarray(uint64_t a[256])
|
||||
{
|
||||
int i;
|
||||
PyObject *l = PyList_New(256);
|
||||
if (l == NULL) return NULL;
|
||||
for (i = 0; i < 256; i++) {
|
||||
PyObject *x = PyLong_FromUnsignedLongLong(a[i]);
|
||||
if (x == NULL) {
|
||||
Py_DECREF(l);
|
||||
return NULL;
|
||||
}
|
||||
PyList_SET_ITEM(l, i, x);
|
||||
}
|
||||
for (i = 0; i < 256; i++)
|
||||
a[i] = 0;
|
||||
return l;
|
||||
}
|
||||
|
||||
PyObject *
|
||||
_Py_GetDXProfile(PyObject *self, PyObject *args)
|
||||
{
|
||||
int i;
|
||||
PyObject *l = PyList_New(257);
|
||||
if (l == NULL) return NULL;
|
||||
for (i = 0; i < 256; i++) {
|
||||
PyObject *x = getarray(_py_stats_struct.opcode_stats[i].pair_count);
|
||||
if (x == NULL) {
|
||||
Py_DECREF(l);
|
||||
return NULL;
|
||||
}
|
||||
PyList_SET_ITEM(l, i, x);
|
||||
}
|
||||
PyObject *counts = PyList_New(256);
|
||||
if (counts == NULL) {
|
||||
Py_DECREF(l);
|
||||
return NULL;
|
||||
}
|
||||
for (i = 0; i < 256; i++) {
|
||||
PyObject *x = PyLong_FromUnsignedLongLong(
|
||||
_py_stats_struct.opcode_stats[i].execution_count);
|
||||
if (x == NULL) {
|
||||
Py_DECREF(counts);
|
||||
Py_DECREF(l);
|
||||
return NULL;
|
||||
}
|
||||
PyList_SET_ITEM(counts, i, x);
|
||||
}
|
||||
PyList_SET_ITEM(l, 256, counts);
|
||||
return l;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Py_ssize_t
|
||||
_PyEval_RequestCodeExtraIndex(freefunc free)
|
||||
|
|
|
@ -2014,11 +2014,6 @@ sys__debugmallocstats_impl(PyObject *module)
|
|||
extern PyObject *_Py_GetObjects(PyObject *, PyObject *);
|
||||
#endif
|
||||
|
||||
#ifdef Py_STATS
|
||||
/* Defined in ceval.c because it uses static globals in that file */
|
||||
extern PyObject *_Py_GetDXProfile(PyObject *, PyObject *);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -2217,9 +2212,6 @@ static PyMethodDef sys_methods[] = {
|
|||
SYS_GETDEFAULTENCODING_METHODDEF
|
||||
SYS_GETDLOPENFLAGS_METHODDEF
|
||||
SYS_GETALLOCATEDBLOCKS_METHODDEF
|
||||
#ifdef Py_STATS
|
||||
{"getdxp", _Py_GetDXProfile, METH_VARARGS},
|
||||
#endif
|
||||
SYS_GETFILESYSTEMENCODING_METHODDEF
|
||||
SYS_GETFILESYSTEMENCODEERRORS_METHODDEF
|
||||
SYS__GETQUICKENEDCOUNT_METHODDEF
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue