@@ -134,11 +134,6 @@ any DWARF information available for them).
134134#include "pycore_frame.h"
135135#include "pycore_interp.h"
136136
137- typedef enum {
138- PERF_STATUS_FAILED = -1 , // Perf trampoline is in an invalid state
139- PERF_STATUS_NO_INIT = 0 , // Perf trampoline is not initialized
140- PERF_STATUS_OK = 1 , // Perf trampoline is ready to be executed
141- } perf_status_t ;
142137
143138#ifdef PY_HAVE_PERF_TRAMPOLINE
144139
@@ -190,24 +185,13 @@ struct code_arena_st {
190185};
191186
192187typedef struct code_arena_st code_arena_t ;
193-
194- struct trampoline_api_st {
195- void * (* init_state )(void );
196- void (* write_state )(void * state , const void * code_addr ,
197- unsigned int code_size , PyCodeObject * code );
198- int (* free_state )(void * state );
199- void * state ;
200- };
201-
202188typedef struct trampoline_api_st trampoline_api_t ;
203189
204-
205- static perf_status_t perf_status = PERF_STATUS_NO_INIT ;
206- static Py_ssize_t extra_code_index = -1 ;
207- static code_arena_t * code_arena ;
208- static trampoline_api_t trampoline_api ;
209-
210- static FILE * perf_map_file ;
190+ #define perf_status _PyRuntime.ceval.perf.status
191+ #define extra_code_index _PyRuntime.ceval.perf.extra_code_index
192+ #define perf_code_arena _PyRuntime.ceval.perf.code_arena
193+ #define trampoline_api _PyRuntime.ceval.perf.trampoline_api
194+ #define perf_map_file _PyRuntime.ceval.perf.map_file
211195
212196static void *
213197perf_map_get_file (void )
@@ -344,17 +328,17 @@ new_code_arena(void)
344328 new_arena -> size = mem_size ;
345329 new_arena -> size_left = mem_size ;
346330 new_arena -> code_size = code_size ;
347- new_arena -> prev = code_arena ;
348- code_arena = new_arena ;
331+ new_arena -> prev = perf_code_arena ;
332+ perf_code_arena = new_arena ;
349333 return 0 ;
350334}
351335
352336static void
353337free_code_arenas (void )
354338{
355- code_arena_t * cur = code_arena ;
339+ code_arena_t * cur = perf_code_arena ;
356340 code_arena_t * prev ;
357- code_arena = NULL ; // invalid static pointer
341+ perf_code_arena = NULL ; // invalid static pointer
358342 while (cur ) {
359343 munmap (cur -> start_addr , cur -> size );
360344 prev = cur -> prev ;
@@ -375,14 +359,14 @@ code_arena_new_code(code_arena_t *code_arena)
375359static inline py_trampoline
376360compile_trampoline (void )
377361{
378- if ((code_arena == NULL ) ||
379- (code_arena -> size_left <= code_arena -> code_size )) {
362+ if ((perf_code_arena == NULL ) ||
363+ (perf_code_arena -> size_left <= perf_code_arena -> code_size )) {
380364 if (new_code_arena () < 0 ) {
381365 return NULL ;
382366 }
383367 }
384- assert (code_arena -> size_left <= code_arena -> size );
385- return code_arena_new_code (code_arena );
368+ assert (perf_code_arena -> size_left <= perf_code_arena -> size );
369+ return code_arena_new_code (perf_code_arena );
386370}
387371
388372static PyObject *
@@ -405,7 +389,7 @@ py_trampoline_evaluator(PyThreadState *ts, _PyInterpreterFrame *frame,
405389 goto default_eval ;
406390 }
407391 trampoline_api .write_state (trampoline_api .state , new_trampoline ,
408- code_arena -> code_size , co );
392+ perf_code_arena -> code_size , co );
409393 _PyCode_SetExtra ((PyObject * )co , extra_code_index ,
410394 (void * )new_trampoline );
411395 f = new_trampoline ;
0 commit comments