diff options
author | Ken Jin <kenjin@python.org> | 2025-02-11 23:23:58 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-11 23:23:58 +0800 |
commit | 247b50dec8af47ed8a80069117e07b7139f9d54f (patch) | |
tree | 1455ce5080636abf6b8429b2d4ad711321058ca0 /Python | |
parent | 374abded070b861cc389d509937344073193c36a (diff) | |
download | cpython-247b50dec8af47ed8a80069117e07b7139f9d54f.tar.gz cpython-247b50dec8af47ed8a80069117e07b7139f9d54f.zip |
gh-130004: Revert commit 9e52e55 (GH-130005)
Revert commit 9e52e55
Diffstat (limited to 'Python')
-rw-r--r-- | Python/ceval.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index 1e4f1f3af20..c6a7a0f841f 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -764,6 +764,23 @@ _PyObjectArray_Free(PyObject **array, PyObject **scratch) #define PY_EVAL_C_STACK_UNITS 2 +/* _PyEval_EvalFrameDefault is too large to optimize for speed with PGO on MSVC + when the JIT is enabled or GIL is disabled. Disable that optimization around + this function only. If this is fixed upstream, we should gate this on the + 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) +/* This setting is reversed below following _PyEval_EvalFrameDefault */ +#endif + #ifdef Py_TAIL_CALL_INTERP #include "opcode_targets.h" #include "generated_cases.c.h" @@ -986,6 +1003,10 @@ early_exit: return NULL; } +#ifdef DO_NOT_OPTIMIZE_INTERP_LOOP +# pragma optimize("", on) +#endif + #if defined(__GNUC__) # pragma GCC diagnostic pop #elif defined(_MSC_VER) /* MS_WINDOWS */ |