From cd05d0a423d97be69f9de4650f68f89e99ad68d1 Mon Sep 17 00:00:00 2001 From: neonene <53406459+neonene@users.noreply.github.com> Date: Wed, 23 Mar 2022 09:35:25 +0900 Subject: bpo-43166: Disable ceval.c optimizations for Windows debug builds (GH-32023) Also increases the stack allocation when run with `python_d.exe` to account for the extra stack checks that are added. --- Include/pyport.h | 11 ----------- PCbuild/python.vcxproj | 3 ++- Python/ceval.c | 4 ---- 3 files changed, 2 insertions(+), 16 deletions(-) diff --git a/Include/pyport.h b/Include/pyport.h index 62ac098..855c382 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -170,23 +170,12 @@ typedef Py_ssize_t Py_ssize_clean_t; * Py_LOCAL_INLINE does the same thing, and also explicitly requests inlining, * for platforms that support that. * - * If PY_LOCAL_AGGRESSIVE is defined before python.h is included, more - * "aggressive" inlining/optimization is enabled for the entire module. This - * may lead to code bloat, and may slow things down for those reasons. It may - * also lead to errors, if the code relies on pointer aliasing. Use with - * care. - * * NOTE: You can only use this for functions that are entirely local to a * module; functions that are exported via method tables, callbacks, etc, * should keep using static. */ #if defined(_MSC_VER) -# if defined(PY_LOCAL_AGGRESSIVE) - /* enable more aggressive optimization for MSVC */ - /* active in both release and debug builds - see bpo-43271 */ -# pragma optimize("gt", on) -#endif /* ignore warnings if the compiler decides not to inline a function */ # pragma warning(disable: 4710) /* fastest possible local call under MSVC */ diff --git a/PCbuild/python.vcxproj b/PCbuild/python.vcxproj index 77bccde..11f835a 100644 --- a/PCbuild/python.vcxproj +++ b/PCbuild/python.vcxproj @@ -94,7 +94,8 @@ Console - 2000000 + 2000000 + 4000000 diff --git a/Python/ceval.c b/Python/ceval.c index 73179c8..42925b5 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -5,10 +5,6 @@ XXX document it! */ -/* enable more aggressive intra-module optimizations, where available */ -/* affects both release and debug builds - see bpo-43271 */ -#define PY_LOCAL_AGGRESSIVE - #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() #include "pycore_call.h" // _PyObject_FastCallDictTstate() -- cgit v0.12