mirror of
https://github.com/python/cpython.git
synced 2025-07-18 16:55:20 +00:00
gh-115178: Add Counts of UOp Pairs to pystats (GH-115181)
This commit is contained in:
parent
c053d52edd
commit
acf69e09c6
6 changed files with 26 additions and 4 deletions
|
@ -995,6 +995,7 @@ enter_tier_two:
|
|||
; // dummy statement after a label, before a declaration
|
||||
uint16_t uopcode;
|
||||
#ifdef Py_STATS
|
||||
int lastuop = 0;
|
||||
uint64_t trace_uop_execution_counter = 0;
|
||||
#endif
|
||||
|
||||
|
@ -1018,6 +1019,7 @@ tier2_dispatch:
|
|||
next_uop++;
|
||||
OPT_STAT_INC(uops_executed);
|
||||
UOP_STAT_INC(uopcode, execution_count);
|
||||
UOP_PAIR_INC(uopcode, lastuop);
|
||||
#ifdef Py_STATS
|
||||
trace_uop_execution_counter++;
|
||||
#endif
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "pycore_object.h"
|
||||
#include "pycore_opcode_metadata.h" // _PyOpcode_Caches
|
||||
#include "pycore_uop_metadata.h" // _PyOpcode_uop_name
|
||||
#include "pycore_uop_ids.h" // MAX_UOP_ID
|
||||
#include "pycore_opcode_utils.h" // RESUME_AT_FUNC_START
|
||||
#include "pycore_pylifecycle.h" // _PyOS_URandomNonblock()
|
||||
#include "pycore_runtime.h" // _Py_ID()
|
||||
|
@ -269,6 +270,14 @@ print_optimization_stats(FILE *out, OptimizationStats *stats)
|
|||
}
|
||||
}
|
||||
|
||||
for (int i = 1; i <= MAX_UOP_ID; i++){
|
||||
for (int j = 1; j <= MAX_UOP_ID; j++) {
|
||||
if (stats->opcode[i].pair_count[j]) {
|
||||
fprintf(out, "uop[%s].pair_count[%s] : %" PRIu64 "\n",
|
||||
_PyOpcode_uop_name[i], _PyOpcode_uop_name[j], stats->opcode[i].pair_count[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < MAX_UOP_ID; i++) {
|
||||
if (stats->error_in_opcode[i]) {
|
||||
fprintf(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue