summaryrefslogtreecommitdiffstats
path: root/Python/optimizer.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2023-11-17 22:25:57 (GMT)
committerGitHub <noreply@github.com>2023-11-17 22:25:57 (GMT)
commit7405745817d19e13585dd4f0f9b8338ba5b32418 (patch)
tree6cf36de2e68fafd3abfebaca35f454609bb5dd77 /Python/optimizer.c
parentbe0bd54c6b3b2382d03f2073070353c8b946902b (diff)
downloadcpython-7405745817d19e13585dd4f0f9b8338ba5b32418.zip
cpython-7405745817d19e13585dd4f0f9b8338ba5b32418.tar.gz
cpython-7405745817d19e13585dd4f0f9b8338ba5b32418.tar.bz2
Various small improvements to uop debug output (#112218)
- Show uop name in Error/DEOPT messages - Add target to some messages - Expose uop_name() as _PyUopName()
Diffstat (limited to 'Python/optimizer.c')
-rw-r--r--Python/optimizer.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/Python/optimizer.c b/Python/optimizer.c
index 5d1ef8a..64a15e0 100644
--- a/Python/optimizer.c
+++ b/Python/optimizer.c
@@ -324,8 +324,8 @@ uop_dealloc(_PyUOpExecutorObject *self) {
PyObject_Free(self);
}
-static const char *
-uop_name(int index)
+const char *
+_PyUopName(int index)
{
if (index <= MAX_REAL_OPCODE) {
return _PyOpcode_OpName[index];
@@ -347,7 +347,7 @@ uop_item(_PyUOpExecutorObject *self, Py_ssize_t index)
PyErr_SetNone(PyExc_IndexError);
return NULL;
}
- const char *name = uop_name(self->trace[index].opcode);
+ const char *name = _PyUopName(self->trace[index].opcode);
if (name == NULL) {
name = "<nil>";
}
@@ -451,7 +451,7 @@ translate_bytecode_to_trace(
#define ADD_TO_TRACE(OPCODE, OPARG, OPERAND, TARGET) \
DPRINTF(2, \
" ADD_TO_TRACE(%s, %d, %" PRIu64 ")\n", \
- uop_name(OPCODE), \
+ _PyUopName(OPCODE), \
(OPARG), \
(uint64_t)(OPERAND)); \
assert(trace_length < max_length); \
@@ -477,7 +477,7 @@ translate_bytecode_to_trace(
reserved = (n); // Keep ADD_TO_TRACE honest
// Reserve space for main+stub uops, plus 3 for _SET_IP, _CHECK_VALIDITY and _EXIT_TRACE
-#define RESERVE(main, stub) RESERVE_RAW((main) + (stub) + 3, uop_name(opcode))
+#define RESERVE(main, stub) RESERVE_RAW((main) + (stub) + 3, _PyUopName(opcode))
// Trace stack operations (used by _PUSH_FRAME, _POP_FRAME)
#define TRACE_STACK_PUSH() \
@@ -549,8 +549,8 @@ top: // Jump here after _PUSH_FRAME or likely branches
uint32_t uopcode = BRANCH_TO_GUARD[opcode - POP_JUMP_IF_FALSE][jump_likely];
_Py_CODEUNIT *next_instr = instr + 1 + _PyOpcode_Caches[_PyOpcode_Deopt[opcode]];
DPRINTF(4, "%s(%d): counter=%x, bitcount=%d, likely=%d, uopcode=%s\n",
- uop_name(opcode), oparg,
- counter, bitcount, jump_likely, uop_name(uopcode));
+ _PyUopName(opcode), oparg,
+ counter, bitcount, jump_likely, _PyUopName(uopcode));
ADD_TO_TRACE(uopcode, max_length, 0, target);
if (jump_likely) {
_Py_CODEUNIT *target_instr = next_instr + oparg;
@@ -710,7 +710,7 @@ top: // Jump here after _PUSH_FRAME or likely branches
}
break;
}
- DPRINTF(2, "Unsupported opcode %s\n", uop_name(opcode));
+ DPRINTF(2, "Unsupported opcode %s\n", _PyUopName(opcode));
OPT_UNSUPPORTED_OPCODE(opcode);
goto done; // Break out of loop
} // End default
@@ -844,7 +844,7 @@ make_executor_from_uops(_PyUOpInstruction *buffer, _PyBloomFilter *dependencies)
for (int i = 0; i < length; i++) {
printf("%4d %s(%d, %d, %" PRIu64 ")\n",
i,
- uop_name(executor->trace[i].opcode),
+ _PyUopName(executor->trace[i].opcode),
executor->trace[i].oparg,
executor->trace[i].target,
executor->trace[i].operand);