Skip to content

Commit

Permalink
gh-125217: Turn off optimization around_PyEval_EvalFrameDefault to av…
Browse files Browse the repository at this point in the history
…oid MSVC crash
  • Loading branch information
mdboom committed Oct 15, 2024
1 parent c8a1818 commit 8340829
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions Python/ceval.c
Original file line number Diff line number Diff line change
Expand Up @@ -761,6 +761,16 @@ _PyObjectArray_Free(PyObject **array, PyObject **scratch)
* so consume 3 units of C stack */
#define PY_EVAL_C_STACK_UNITS 2

#if defined(_MSC_VER) && defined(_Py_USING_PGO) && defined(_Py_JIT)
/* _PyEval_EvalFrameDefault is too large to optimize for speed with
PGO on MSVC when the JIT is enabled. Disable that optimization
around this function only. If this is fixed upstream, we should
gate this on the version of MSVC.
*/
# pragma optimize("t", off)
/* This setting is reversed below following _PyEval_EvalFrameDefault */
#endif

PyObject* _Py_HOT_FUNCTION
_PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int throwflag)
{
Expand Down Expand Up @@ -1136,6 +1146,10 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int

}

#if defined(_MSC_VER) && defined(_Py_USING_PGO) && defined(_Py_JIT)
# pragma optimize("", on)
#endif

#if defined(__GNUC__)
# pragma GCC diagnostic pop
#elif defined(_MSC_VER) /* MS_WINDOWS */
Expand Down

0 comments on commit 8340829

Please sign in to comment.