mirror of
https://github.com/python/cpython.git
synced 2025-08-22 09:45:06 +00:00
Tier 2 cleanups and tweaks (#115534)
* Rename `_testinternalcapi.get_{uop,counter}_optimizer` to `new_*_optimizer` * Use `_PyUOpName()` instead of` _PyOpcode_uop_name[]` * Add `target` to executor iterator items -- `list(ex)` now returns `(opcode, oparg, target, operand)` quadruples * Add executor methods `get_opcode()` and `get_oparg()` to get `vmdata.opcode`, `vmdata.oparg` * Define a helper for printing uops, and unify various places where they are printed * Add a hack to summarize_stats.py to fix legacy uop names (e.g. `POP_TOP` -> `_POP_TOP`) * Define helpers in `test_opt.py` for accessing the set or list of opnames of an executor
This commit is contained in:
parent
520403ed4c
commit
142502ea8d
8 changed files with 206 additions and 124 deletions
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include <stdlib.h> // rand()
|
||||
|
||||
extern const char *_PyUOpName(int index);
|
||||
|
||||
/* For guidance on adding or extending families of instructions see
|
||||
* ./adaptive.md
|
||||
|
@ -246,17 +247,12 @@ print_optimization_stats(FILE *out, OptimizationStats *stats)
|
|||
stats->optimizer_failure_reason_no_memory);
|
||||
|
||||
const char* const* names;
|
||||
for (int i = 0; i < 512; i++) {
|
||||
if (i < 256) {
|
||||
names = _PyOpcode_OpName;
|
||||
} else {
|
||||
names = _PyOpcode_uop_name;
|
||||
}
|
||||
for (int i = 0; i <= MAX_UOP_ID; i++) {
|
||||
if (stats->opcode[i].execution_count) {
|
||||
fprintf(out, "uops[%s].execution_count : %" PRIu64 "\n", names[i], stats->opcode[i].execution_count);
|
||||
fprintf(out, "uops[%s].execution_count : %" PRIu64 "\n", _PyUOpName(i), stats->opcode[i].execution_count);
|
||||
}
|
||||
if (stats->opcode[i].miss) {
|
||||
fprintf(out, "uops[%s].specialization.miss : %" PRIu64 "\n", names[i], stats->opcode[i].miss);
|
||||
fprintf(out, "uops[%s].specialization.miss : %" PRIu64 "\n", _PyUOpName(i), stats->opcode[i].miss);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue