}
_PyExecutorObject *previous_executor = _PyExecutor_FromExit(exit);
assert(tstate->current_executor == (PyObject *)previous_executor);
- int chain_depth = previous_executor->vm_data.chain_depth + 1;
- _PyJIT_InitializeTracing(tstate, frame, target, STACK_LEVEL(), chain_depth);
+ // Set chain_depth to 0 because we want to keep tracing whatever we see next.
+ _PyJIT_InitializeTracing(tstate, frame, target, STACK_LEVEL(), 0);
GOTO_TIER_ONE(target, 1);
}
exit->executor = executor;
if (keep_tracing_bit) { \
assert(next_instr->op.code != ENTER_EXECUTOR); \
ENTER_TRACING(); \
- _PyJIT_InitializeTracing(tstate, frame, next_instr, STACK_LEVEL(), 0); \
} \
else { \
LEAVE_TRACING(); \
_PyExecutorObject *previous_executor = _PyExecutor_FromExit(exit);
stack_pointer = _PyFrame_GetStackPointer(frame);
assert(tstate->current_executor == (PyObject *)previous_executor);
- int chain_depth = previous_executor->vm_data.chain_depth + 1;
_PyFrame_SetStackPointer(frame, stack_pointer);
- _PyJIT_InitializeTracing(tstate, frame, target, STACK_LEVEL(), chain_depth);
+ _PyJIT_InitializeTracing(tstate, frame, target, STACK_LEVEL(), 0);
stack_pointer = _PyFrame_GetStackPointer(frame);
GOTO_TIER_ONE(target, 1);
}
lltrace = *python_lltrace - '0'; // TODO: Parse an int and all that
}
DPRINTF(2,
- "Optimizing %s (%s:%d) at byte offset %d\n",
+ "Tracing %s (%s:%d) at byte offset %d\n",
PyUnicode_AsUTF8(code->co_qualname),
PyUnicode_AsUTF8(code->co_filename),
code->co_firstlineno,