diff options
author | Michael Droettboom <mdboom@gmail.com> | 2024-10-16 12:51:15 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-16 12:51:15 (GMT) |
commit | 51410d8bdcfe0fd215f94a098dc6cd0919c648a1 (patch) | |
tree | c21ada493abec5472d2328950da94d15e62001c2 /Python/ceval.c | |
parent | bee112a94d688c8048ddeddaa7bbd5150aecad11 (diff) | |
download | cpython-51410d8bdcfe0fd215f94a098dc6cd0919c648a1.zip cpython-51410d8bdcfe0fd215f94a098dc6cd0919c648a1.tar.gz cpython-51410d8bdcfe0fd215f94a098dc6cd0919c648a1.tar.bz2 |
gh-125217: Turn off optimization around_PyEval_EvalFrameDefault to avoid MSVC crash (#125477)
Diffstat (limited to 'Python/ceval.c')
-rw-r--r-- | Python/ceval.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index f4e0add..43776e7 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -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) { @@ -1136,6 +1146,10 @@ goto_to_tier1: } +#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 */ |