mirror of
https://github.com/python/cpython.git
synced 2025-09-20 23:50:22 +00:00
gh-123153: Fix PGO builds with free-threading on Windows (#125607)
* gh-123153: Fix PGO builds with free-threading * Redo how the #define works
This commit is contained in:
parent
dbcc5ac470
commit
37986e830b
1 changed files with 14 additions and 6 deletions
|
@ -761,12 +761,20 @@ _PyObjectArray_Free(PyObject **array, PyObject **scratch)
|
||||||
* so consume 3 units of C stack */
|
* so consume 3 units of C stack */
|
||||||
#define PY_EVAL_C_STACK_UNITS 2
|
#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
|
/* _PyEval_EvalFrameDefault is too large to optimize for speed with PGO on MSVC
|
||||||
PGO on MSVC when the JIT is enabled. Disable that optimization
|
when the JIT is enabled or GIL is disabled. Disable that optimization around
|
||||||
around this function only. If this is fixed upstream, we should
|
this function only. If this is fixed upstream, we should gate this on the
|
||||||
gate this on the version of MSVC.
|
version of MSVC.
|
||||||
*/
|
*/
|
||||||
|
#if (defined(_MSC_VER) && \
|
||||||
|
defined(_Py_USING_PGO) && \
|
||||||
|
(defined(_Py_JIT) || \
|
||||||
|
defined(Py_GIL_DISABLED)))
|
||||||
|
#define DO_NOT_OPTIMIZE_INTERP_LOOP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DO_NOT_OPTIMIZE_INTERP_LOOP
|
||||||
# pragma optimize("t", off)
|
# pragma optimize("t", off)
|
||||||
/* This setting is reversed below following _PyEval_EvalFrameDefault */
|
/* This setting is reversed below following _PyEval_EvalFrameDefault */
|
||||||
#endif
|
#endif
|
||||||
|
@ -1146,7 +1154,7 @@ goto_to_tier1:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(_MSC_VER) && defined(_Py_USING_PGO) && defined(_Py_JIT)
|
#ifdef DO_NOT_OPTIMIZE_INTERP_LOOP
|
||||||
# pragma optimize("", on)
|
# pragma optimize("", on)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue