mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	gh-104584: Baby steps towards generating and executing traces (#105924)
Added a new, experimental, tracing optimizer and interpreter (a.k.a. "tier 2"). This currently pessimizes, so don't use yet -- this is infrastructure so we can experiment with optimizing passes. To enable it, pass ``-Xuops`` or set ``PYTHONUOPS=1``. To get debug output, set ``PYTHONUOPSDEBUG=N`` where ``N`` is a debug level (0-4, where 0 is no debug output and 4 is excessively verbose). All of this code is likely to change dramatically before the 3.13 feature freeze. But this is a first step.
This commit is contained in:
		
							parent
							
								
									d3af83b934
								
							
						
					
					
						commit
						51fc725117
					
				
					 21 changed files with 2559 additions and 305 deletions
				
			
		|  | @ -1,4 +1,4 @@ | |||
| // Macros needed by ceval.c and bytecodes.c
 | ||||
| // Macros and other things needed by ceval.c and bytecodes.c
 | ||||
| 
 | ||||
| /* Computed GOTOs, or
 | ||||
|        the-optimization-commonly-but-improperly-known-as-"threaded code" | ||||
|  | @ -339,3 +339,11 @@ do { \ | |||
|         goto error; \ | ||||
|     } \ | ||||
| } while (0); | ||||
| 
 | ||||
| typedef PyObject *(*convertion_func_ptr)(PyObject *); | ||||
| 
 | ||||
| static const convertion_func_ptr CONVERSION_FUNCTIONS[4] = { | ||||
|     [FVC_STR] = PyObject_Str, | ||||
|     [FVC_REPR] = PyObject_Repr, | ||||
|     [FVC_ASCII] = PyObject_ASCII | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Guido van Rossum
						Guido van Rossum