diff options
author | Mark Shannon <mark@hotpy.org> | 2022-02-02 15:56:47 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-02 15:56:47 (GMT) |
commit | 0d05da1fbf39f32d2c22a1f3702f40f916997b60 (patch) | |
tree | 832794ca2c6f84e807f82289a7fa45487493ccd7 /Python/ceval.c | |
parent | f66c857572a308822c70fd25e0197b6e0dec6e34 (diff) | |
download | cpython-0d05da1fbf39f32d2c22a1f3702f40f916997b60.zip cpython-0d05da1fbf39f32d2c22a1f3702f40f916997b60.tar.gz cpython-0d05da1fbf39f32d2c22a1f3702f40f916997b60.tar.bz2 |
Add specialization stats for FOR_ITER. (GH-31079)
Diffstat (limited to 'Python/ceval.c')
-rw-r--r-- | Python/ceval.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index 70748e8..3c52c58 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -4212,6 +4212,11 @@ handle_eval_breaker: PREDICTED(FOR_ITER); /* before: [iter]; after: [iter, iter()] *or* [] */ PyObject *iter = TOP(); +#ifdef Py_STATS + extern int _PySpecialization_ClassifyIterator(PyObject *); + _py_stats.opcode_stats[FOR_ITER].specialization.failure++; + _py_stats.opcode_stats[FOR_ITER].specialization.failure_kinds[_PySpecialization_ClassifyIterator(iter)]++; +#endif PyObject *next = (*Py_TYPE(iter)->tp_iternext)(iter); if (next != NULL) { PUSH(next); |