https://github.com/python/cpython/commit/988286e51001aa1960c9893b3c11edde5e6cb895
commit: 988286e51001aa1960c9893b3c11edde5e6cb895
branch: main
author: Hai Zhu <[email protected]>
committer: Fidget-Spinner <[email protected]>
date: 2026-02-09T13:23:02Z
summary:
gh-144623: Fix missing output uops in optimizer debug output (GH-144617)
files:
M Python/optimizer_analysis.c
diff --git a/Python/optimizer_analysis.c b/Python/optimizer_analysis.c
index 381b2500158ef0..7bd6970e5fd2dc 100644
--- a/Python/optimizer_analysis.c
+++ b/Python/optimizer_analysis.c
@@ -83,7 +83,7 @@ dump_abstract_stack(_Py_UOpsAbstractFrame *frame, JitOptRef
*stack_pointer)
static void
dump_uop(JitOptContext *ctx, const char *label, int index,
- const _PyUOpInstruction *instr, JitOptRef *stack_pointer)
+ const _PyUOpInstruction *instr, JitOptRef *stack_pointer)
{
if (get_lltrace() >= 3) {
printf("%4d %s: ", index, label);
@@ -95,11 +95,24 @@ dump_uop(JitOptContext *ctx, const char *label, int index,
}
}
+static void
+dump_uops(JitOptContext *ctx, const char *label,
+ _PyUOpInstruction *start, JitOptRef *stack_pointer)
+{
+ int current_len = uop_buffer_length(&ctx->out_buffer);
+ int added_count = (int)(ctx->out_buffer.next - start);
+ for (int j = 0; j < added_count; j++) {
+ dump_uop(ctx, label, current_len - added_count + j, &start[j],
stack_pointer);
+ }
+}
+
#define DUMP_UOP dump_uop
+#define DUMP_UOPS dump_uops
#else
#define DPRINTF(level, ...)
#define DUMP_UOP(ctx, label, index, instr, stack_pointer)
+ #define DUMP_UOPS(ctx, label, start, stack_pointer)
#endif
static int
@@ -508,7 +521,7 @@ optimize_uops(
*(ctx->out_buffer.next++) = *this_instr;
}
assert(ctx->frame != NULL);
- DUMP_UOP(ctx, "out", uop_buffer_length(&ctx->out_buffer) - 1, out_ptr,
stack_pointer);
+ DUMP_UOPS(ctx, "out", out_ptr, stack_pointer);
if (!CURRENT_FRAME_IS_INIT_SHIM() && !ctx->done) {
DPRINTF(3, " stack_level %d\n", STACK_LEVEL());
ctx->frame->stack_pointer = stack_pointer;
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]