diff options
Diffstat (limited to 'Python/optimizer.c')
-rw-r--r-- | Python/optimizer.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/Python/optimizer.c b/Python/optimizer.c index 97831f58098..340770ae55e 100644 --- a/Python/optimizer.c +++ b/Python/optimizer.c @@ -757,9 +757,8 @@ translate_bytecode_to_trace( opcode == SEND_GEN) { DPRINTF(2, "Bailing due to dynamic target\n"); - ADD_TO_TRACE(uop, oparg, 0, target); - ADD_TO_TRACE(_DYNAMIC_EXIT, 0, 0, 0); - goto done; + OPT_STAT_INC(unknown_callee); + return 0; } assert(_PyOpcode_Deopt[opcode] == CALL || _PyOpcode_Deopt[opcode] == CALL_KW); int func_version_offset = @@ -825,9 +824,8 @@ translate_bytecode_to_trace( goto top; } DPRINTF(2, "Bail, new_code == NULL\n"); - ADD_TO_TRACE(uop, oparg, 0, target); - ADD_TO_TRACE(_DYNAMIC_EXIT, 0, 0, 0); - goto done; + OPT_STAT_INC(unknown_callee); + return 0; } if (uop == _BINARY_OP_INPLACE_ADD_UNICODE) { @@ -914,7 +912,7 @@ count_exits(_PyUOpInstruction *buffer, int length) int exit_count = 0; for (int i = 0; i < length; i++) { int opcode = buffer[i].opcode; - if (opcode == _EXIT_TRACE || opcode == _DYNAMIC_EXIT) { + if (opcode == _EXIT_TRACE) { exit_count++; } } @@ -1119,12 +1117,6 @@ make_executor_from_uops(_PyUOpInstruction *buffer, int length, const _PyBloomFil dest->operand0 = (uint64_t)exit; next_exit--; } - if (opcode == _DYNAMIC_EXIT) { - _PyExitData *exit = &executor->exits[next_exit]; - exit->target = 0; - dest->operand0 = (uint64_t)exit; - next_exit--; - } } assert(next_exit == -1); assert(dest == executor->trace); |