mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +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 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #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
	
	 Michael Droettboom
						Michael Droettboom