Skip to content

Commit

Permalink
pythongh-125217: Turn off optimization are _PyEval_EvalFrameDefault t…
Browse files Browse the repository at this point in the history
…o avoid MSVC crash
  • Loading branch information
mdboom committed Oct 9, 2024
1 parent cbfd392 commit 46655f3
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 46655f3

Please sign in to comment.