gh-142543: Mark tracer functions as Py_NO_INLINE (GH-142846)

This commit is contained in:
Ken Jin 2025-12-17 08:12:32 +08:00 committed by GitHub
parent 4345253981
commit 89729f2ef7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 3 deletions

View file

@ -582,7 +582,8 @@ is_terminator(const _PyUOpInstruction *uop)
/* Returns 1 on success (added to trace), 0 on trace end.
*/
int
// gh-142543: inlining this function causes stack overflows
Py_NO_INLINE int
_PyJit_translate_single_bytecode_to_trace(
PyThreadState *tstate,
_PyInterpreterFrame *frame,
@ -994,7 +995,8 @@ _PyJit_translate_single_bytecode_to_trace(
}
// Returns 0 for do not enter tracing, 1 on enter tracing.
int
// gh-142543: inlining this function causes stack overflows
Py_NO_INLINE int
_PyJit_TryInitializeTracing(
PyThreadState *tstate, _PyInterpreterFrame *frame, _Py_CODEUNIT *curr_instr,
_Py_CODEUNIT *start_instr, _Py_CODEUNIT *close_loop_instr, int curr_stackdepth, int chain_depth,
@ -1066,7 +1068,7 @@ _PyJit_TryInitializeTracing(
return 1;
}
void
Py_NO_INLINE void
_PyJit_FinalizeTracing(PyThreadState *tstate)
{
_PyThreadStateImpl *_tstate = (_PyThreadStateImpl *)tstate;