mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +00:00 
			
		
		
		
	 91234a1636
			
		
	
	
		91234a1636
		
			
		
	
	
	
	
		
			
			This patch implements per opcode cache mechanism, and use it in only LOAD_GLOBAL opcode. Based on Yury's opcache3.patch in bpo-26219.
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			542 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			542 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef Py_INTERNAL_CODE_H
 | |
| #define Py_INTERNAL_CODE_H
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
|  
 | |
| typedef struct {
 | |
|     PyObject *ptr;  /* Cached pointer (borrowed reference) */
 | |
|     uint64_t globals_ver;  /* ma_version of global dict */
 | |
|     uint64_t builtins_ver; /* ma_version of builtin dict */
 | |
| } _PyOpcache_LoadGlobal;
 | |
| 
 | |
| struct _PyOpcache {
 | |
|     union {
 | |
|         _PyOpcache_LoadGlobal lg;
 | |
|     } u;
 | |
|     char optimized;
 | |
| };
 | |
| 
 | |
| /* Private API */
 | |
| int _PyCode_InitOpcache(PyCodeObject *co);
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| #endif /* !Py_INTERNAL_CODE_H */
 |