]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
A few minor tweaks to get stats working and compiling cleanly. (#117219)
authorMark Shannon <mark@hotpy.org>
Mon, 25 Mar 2024 20:43:51 +0000 (20:43 +0000)
committerGitHub <noreply@github.com>
Mon, 25 Mar 2024 20:43:51 +0000 (13:43 -0700)
Fixes a compilation error when configured with `--enable-pystats`,
an array size issue, and an unused variable.

Include/cpython/pystats.h
Python/gc.c
Python/specialize.c

index 5bf7bacd514699996af69dcec52036d7f2b719ce..2fb7723f583cc7716f1e23b4148603296dd3e752 100644 (file)
@@ -118,7 +118,7 @@ typedef struct _optimization_stats {
     uint64_t recursive_call;
     uint64_t low_confidence;
     uint64_t executors_invalidated;
-    UOpStats opcode[MAX_UOP_ID];
+    UOpStats opcode[MAX_UOP_ID+1];
     uint64_t unsupported_opcode[256];
     uint64_t trace_length_hist[_Py_UOP_HIST_SIZE];
     uint64_t trace_run_length_hist[_Py_UOP_HIST_SIZE];
@@ -128,7 +128,7 @@ typedef struct _optimization_stats {
     uint64_t optimizer_failure_reason_no_memory;
     uint64_t remove_globals_builtins_changed;
     uint64_t remove_globals_incorrect_keys;
-    uint64_t error_in_opcode[MAX_UOP_ID];
+    uint64_t error_in_opcode[MAX_UOP_ID+1];
 } OptimizationStats;
 
 typedef struct _rare_event_stats {
index 2517b86a41fa53f03fcb3afb18edf13eece13b15..6d86059174a8cd6750bbc95e114f4cc2a9a51b8c 100644 (file)
@@ -1285,7 +1285,6 @@ gc_collect_young(PyThreadState *tstate,
         for (gc = GC_NEXT(young); gc != young; gc = GC_NEXT(gc)) {
             count++;
         }
-        GC_STAT_ADD(0, objects_queued, count);
     }
 #endif
 
@@ -1422,7 +1421,6 @@ gc_collect_increment(PyThreadState *tstate, struct gc_collection_stats *stats)
         gc_set_old_space(gc, gcstate->visited_space);
         increment_size += expand_region_transitively_reachable(&increment, gc, gcstate);
     }
-    GC_STAT_ADD(1, objects_queued, region_size);
     PyGC_Head survivors;
     gc_list_init(&survivors);
     gc_collect_region(tstate, &increment, &survivors, UNTRACK_TUPLES, stats);
@@ -1805,10 +1803,10 @@ _PyGC_Collect(PyThreadState *tstate, int generation, _PyGC_Reason reason)
     _PyErr_SetRaisedException(tstate, exc);
     GC_STAT_ADD(generation, objects_collected, stats.collected);
 #ifdef Py_STATS
-    if (_py_stats) {
+    if (_Py_stats) {
         GC_STAT_ADD(generation, object_visits,
-            _py_stats->object_stats.object_visits);
-        _py_stats->object_stats.object_visits = 0;
+            _Py_stats->object_stats.object_visits);
+        _Py_stats->object_stats.object_visits = 0;
     }
 #endif
     validate_old(gcstate);
index 801ab1f2e64e5da2c2e0a89cf656655db701857f..c1edf8842faf68df71d968db99dccab49ba1f12d 100644 (file)
@@ -250,7 +250,6 @@ print_optimization_stats(FILE *out, OptimizationStats *stats)
     fprintf(out, "Optimizer remove globals builtins changed: %" PRIu64 "\n", stats->remove_globals_builtins_changed);
     fprintf(out, "Optimizer remove globals incorrect keys: %" PRIu64 "\n", stats->remove_globals_incorrect_keys);
 
-    const char* const* names;
     for (int i = 0; i <= MAX_UOP_ID; i++) {
         if (stats->opcode[i].execution_count) {
             fprintf(out, "uops[%s].execution_count : %" PRIu64 "\n", _PyUOpName(i), stats->opcode[i].execution_count);