gh-109329: Add stat for "trace too short" (GH-110402)

This commit is contained in:
Michael Droettboom 2023-10-05 11:12:06 -04:00 committed by GitHub
parent 1328fa31fe
commit 9eb2489266
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 5 additions and 0 deletions

View File

@ -110,6 +110,7 @@ typedef struct _optimization_stats {
uint64_t trace_stack_overflow;
uint64_t trace_stack_underflow;
uint64_t trace_too_long;
uint64_t trace_too_short;
uint64_t inner_loop;
uint64_t recursive_call;
UOpStats opcode[512];

View File

@ -798,6 +798,7 @@ done:
return trace_length;
}
else {
OPT_STAT_INC(trace_too_short);
DPRINTF(4,
"No trace for %s (%s:%d) at byte offset %d\n",
PyUnicode_AsUTF8(code->co_qualname),

View File

@ -229,6 +229,7 @@ print_optimization_stats(FILE *out, OptimizationStats *stats)
fprintf(out, "Optimization trace stack overflow: %" PRIu64 "\n", stats->trace_stack_overflow);
fprintf(out, "Optimization trace stack underflow: %" PRIu64 "\n", stats->trace_stack_underflow);
fprintf(out, "Optimization trace too long: %" PRIu64 "\n", stats->trace_too_long);
fprintf(out, "Optimization trace too short: %" PRIu64 "\n", stats->trace_too_short);
fprintf(out, "Optimization inner loop: %" PRIu64 "\n", stats->inner_loop);
fprintf(out, "Optimization recursive call: %" PRIu64 "\n", stats->recursive_call);

View File

@ -760,6 +760,7 @@ def calculate_optimization_stats(stats):
trace_stack_overflow = stats["Optimization trace stack overflow"]
trace_stack_underflow = stats["Optimization trace stack underflow"]
trace_too_long = stats["Optimization trace too long"]
trace_too_short = stats["Optimiztion trace too short"]
inner_loop = stats["Optimization inner loop"]
recursive_call = stats["Optimization recursive call"]
@ -771,6 +772,7 @@ def calculate_optimization_stats(stats):
("Trace stack overflow", trace_stack_overflow, ""),
("Trace stack underflow", trace_stack_underflow, ""),
("Trace too long", trace_too_long, ""),
("Trace too short", trace_too_short, ""),
("Inner loop found", inner_loop, ""),
("Recursive call", recursive_call, ""),
]