Skip to content

Commit d5611f2

Browse files
GH-107265: Add missing deoptimizations for ENTER_EXECUTOR's original opcode (GH-109420)
1 parent 8ded34a commit d5611f2

File tree

3 files changed

+3
-2
lines changed

3 files changed

+3
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Deopt opcodes hidden by the executor when base opcode is needed

Objects/codeobject.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1505,7 +1505,7 @@ deopt_code(PyCodeObject *code, _Py_CODEUNIT *instructions)
15051505
int opcode = _Py_GetBaseOpcode(code, i);
15061506
if (opcode == ENTER_EXECUTOR) {
15071507
_PyExecutorObject *exec = code->co_executors->executors[instructions[i].op.arg];
1508-
opcode = exec->vm_data.opcode;
1508+
opcode = _PyOpcode_Deopt[exec->vm_data.opcode];
15091509
instructions[i].op.arg = exec->vm_data.oparg;
15101510
}
15111511
assert(opcode != ENTER_EXECUTOR);

Python/instrumentation.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ _PyInstruction_GetLength(PyCodeObject *code, int offset)
306306
if (opcode == ENTER_EXECUTOR) {
307307
int exec_index = _PyCode_CODE(code)[offset].op.arg;
308308
_PyExecutorObject *exec = code->co_executors->executors[exec_index];
309-
opcode = exec->vm_data.opcode;
309+
opcode = _PyOpcode_Deopt[exec->vm_data.opcode];
310310

311311
}
312312
assert(opcode != ENTER_EXECUTOR);

0 commit comments

Comments
 (0)