assert(executor != tstate->interp->cold_executor);
tstate->jit_exit = NULL;
if (IS_JIT_TRACING()) {
- int old_opcode = executor->vm_data.opcode;
- int old_oparg = (oparg & ~255) | executor->vm_data.oparg;
RECORD_TRACE_NO_DISPATCH();
- opcode = old_opcode;
- oparg = old_oparg;
- next_instr = this_instr;
- DISPATCH_GOTO();
}
TIER1_TO_TIER2(executor);
#else
exit->temperature = advance_backoff_counter(temperature);
GOTO_TIER_ONE(target, 0);
}
+ exit->temperature = initial_temperature_backoff_counter();
_PyExecutorObject *previous_executor = _PyExecutor_FromExit(exit);
assert(tstate->current_executor == (PyObject *)previous_executor);
int chain_depth = is_dynamic ? 0 : current_executor->vm_data.chain_depth + 1;
exit->temperature = advance_backoff_counter(temperature);
GOTO_TIER_ONE(target, 0);
}
+ exit->temperature = initial_temperature_backoff_counter();
_PyExecutorObject *previous_executor = _PyExecutor_FromExit(exit);
assert(tstate->current_executor == (PyObject *)previous_executor);
int chain_depth = is_dynamic ? 0 : current_executor->vm_data.chain_depth + 1;
assert(executor != tstate->interp->cold_executor);
tstate->jit_exit = NULL;
if (IS_JIT_TRACING()) {
- int old_opcode = executor->vm_data.opcode;
- int old_oparg = (oparg & ~255) | executor->vm_data.oparg;
RECORD_TRACE_NO_DISPATCH();
- opcode = old_opcode;
- oparg = old_oparg;
- next_instr = this_instr;
- DISPATCH_GOTO();
}
TIER1_TO_TIER2(executor);
#else
assert(executor != tstate->interp->cold_executor);
tstate->jit_exit = NULL;
if (IS_JIT_TRACING()) {
- int old_opcode = executor->vm_data.opcode;
- int old_oparg = (oparg & ~255) | executor->vm_data.oparg;
RECORD_TRACE_NO_DISPATCH();
- opcode = old_opcode;
- oparg = old_oparg;
- next_instr = this_instr;
- DISPATCH_GOTO();
}
TIER1_TO_TIER2(executor);
#else
/* Special case the first instruction,
* so that we can guarantee forward progress */
- if (progress_needed && is_first_instr && tstate->interp->jit_tracer_code_curr_size == 0) {
+ if (progress_needed && is_first_instr) {
if (OPCODE_HAS_EXIT(opcode) || OPCODE_HAS_DEOPT(opcode)) {
opcode = _PyOpcode_Deopt[opcode];
}