mirror of
https://github.com/python/cpython.git
synced 2025-09-26 10:19:53 +00:00
parent
374abded07
commit
247b50dec8
2 changed files with 22 additions and 0 deletions
|
@ -53,6 +53,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(PySourcePath)Include;$(PySourcePath)Include\internal;$(PySourcePath)Include\internal\mimalloc;$(GeneratedPyConfigDir);$(PySourcePath)PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(PySourcePath)Include;$(PySourcePath)Include\internal;$(PySourcePath)Include\internal\mimalloc;$(GeneratedPyConfigDir);$(PySourcePath)PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;$(_Py3NamePreprocessorDefinition);$(_PlatformPreprocessorDefinition)$(_DebugPreprocessorDefinition)$(_PyStatsPreprocessorDefinition)$(_PydPreprocessorDefinition)%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;$(_Py3NamePreprocessorDefinition);$(_PlatformPreprocessorDefinition)$(_DebugPreprocessorDefinition)$(_PyStatsPreprocessorDefinition)$(_PydPreprocessorDefinition)%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<PreprocessorDefinitions Condition="'$(SupportPGO)' and ($(Configuration) == 'PGInstrument' or $(Configuration) == 'PGUpdate')">_Py_USING_PGO=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
|
|
@ -764,6 +764,23 @@ _PyObjectArray_Free(PyObject **array, PyObject **scratch)
|
||||||
#define PY_EVAL_C_STACK_UNITS 2
|
#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
|
#ifdef Py_TAIL_CALL_INTERP
|
||||||
#include "opcode_targets.h"
|
#include "opcode_targets.h"
|
||||||
#include "generated_cases.c.h"
|
#include "generated_cases.c.h"
|
||||||
|
@ -986,6 +1003,10 @@ early_exit:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DO_NOT_OPTIMIZE_INTERP_LOOP
|
||||||
|
# pragma optimize("", on)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
# pragma GCC diagnostic pop
|
# pragma GCC diagnostic pop
|
||||||
#elif defined(_MSC_VER) /* MS_WINDOWS */
|
#elif defined(_MSC_VER) /* MS_WINDOWS */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue