diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-02-22-14-03-56.bpo-46329.RX_AzJ.rst b/Misc/NEWS.d/next/Core and Builtins/2022-02-22-14-03-56.bpo-46329.RX_AzJ.rst new file mode 100644 index 00000000000..8d1d5027ca9 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-02-22-14-03-56.bpo-46329.RX_AzJ.rst @@ -0,0 +1 @@ +Fix specialization stats gathering for :opcode:`PRECALL` instructions. diff --git a/Python/specialize.c b/Python/specialize.c index b46f7014289..91010a5be3c 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -160,6 +160,7 @@ _Py_GetSpecializationStats(void) { err += add_stat_dict(stats, BINARY_OP, "binary_op"); err += add_stat_dict(stats, COMPARE_OP, "compare_op"); err += add_stat_dict(stats, UNPACK_SEQUENCE, "unpack_sequence"); + err += add_stat_dict(stats, PRECALL, "precall"); if (err < 0) { Py_DECREF(stats); return NULL; @@ -180,8 +181,6 @@ print_spec_stats(FILE *out, OpcodeStats *stats) /* Mark some opcodes as specializable for 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); - fprintf(out, "opcode[%d].specializable : 1\n", UNPACK_SEQUENCE); for (int i = 0; i < 256; i++) { if (adaptive_opcodes[i]) { fprintf(out, "opcode[%d].specializable : 1\n", i);