From: Mark Shannon Date: Thu, 10 Feb 2022 15:55:52 +0000 (+0000) Subject: Gather stats for PRECALL_METHOD. (GH-31259) X-Git-Tag: v3.11.0a6~242 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1a6411f5738895fa48d35a93435f7c7b6c17bdb9;p=thirdparty%2FPython%2Fcpython.git Gather stats for PRECALL_METHOD. (GH-31259) --- diff --git a/Python/ceval.c b/Python/ceval.c index c3703a75ce0c..ffce6b735c1c 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -4451,8 +4451,11 @@ handle_eval_breaker: assert(call_shape.kwnames == NULL); #ifdef Py_STATS extern int _PySpecialization_ClassifyCallable(PyObject *); - _py_stats.opcode_stats[PRECALL_FUNCTION].specialization.failure++; - _py_stats.opcode_stats[PRECALL_FUNCTION].specialization.failure_kinds[_PySpecialization_ClassifyCallable(call_shape.callable)]++; + SpecializationStats *stats = + &_py_stats.opcode_stats[PRECALL_FUNCTION].specialization; + stats->failure++; + int kind = _PySpecialization_ClassifyCallable(call_shape.callable); + stats->failure_kinds[kind]++; #endif DISPATCH(); } @@ -4493,6 +4496,14 @@ handle_eval_breaker: call_shape.total_args = nargs; assert(call_shape.kwnames == NULL); +#ifdef Py_STATS + extern int _PySpecialization_ClassifyCallable(PyObject *); + SpecializationStats *stats = + &_py_stats.opcode_stats[PRECALL_METHOD].specialization; + stats->failure++; + int kind = _PySpecialization_ClassifyCallable(call_shape.callable); + stats->failure_kinds[kind]++; +#endif DISPATCH(); } diff --git a/Python/specialize.c b/Python/specialize.c index 940ab172d55f..b051f45157ad 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -176,6 +176,7 @@ print_spec_stats(FILE *out, OpcodeStats *stats) * even though we don't specialize them yet. */ fprintf(out, " opcode[%d].specializable : 1\n", FOR_ITER); fprintf(out, " opcode[%d].specializable : 1\n", PRECALL_FUNCTION); + fprintf(out, " opcode[%d].specializable : 1\n", PRECALL_METHOD); fprintf(out, " opcode[%d].specializable : 1\n", UNPACK_SEQUENCE); for (int i = 0; i < 256; i++) { if (adaptive_opcodes[i]) {