@@ -134,11 +134,6 @@ any DWARF information available for them).
134
134
#include "pycore_frame.h"
135
135
#include "pycore_interp.h"
136
136
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 ;
142
137
143
138
#ifdef PY_HAVE_PERF_TRAMPOLINE
144
139
@@ -190,24 +185,13 @@ struct code_arena_st {
190
185
};
191
186
192
187
typedef 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
-
202
188
typedef struct trampoline_api_st trampoline_api_t ;
203
189
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
211
195
212
196
static void *
213
197
perf_map_get_file (void )
@@ -344,17 +328,17 @@ new_code_arena(void)
344
328
new_arena -> size = mem_size ;
345
329
new_arena -> size_left = mem_size ;
346
330
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 ;
349
333
return 0 ;
350
334
}
351
335
352
336
static void
353
337
free_code_arenas (void )
354
338
{
355
- code_arena_t * cur = code_arena ;
339
+ code_arena_t * cur = perf_code_arena ;
356
340
code_arena_t * prev ;
357
- code_arena = NULL ; // invalid static pointer
341
+ perf_code_arena = NULL ; // invalid static pointer
358
342
while (cur ) {
359
343
munmap (cur -> start_addr , cur -> size );
360
344
prev = cur -> prev ;
@@ -375,14 +359,14 @@ code_arena_new_code(code_arena_t *code_arena)
375
359
static inline py_trampoline
376
360
compile_trampoline (void )
377
361
{
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 )) {
380
364
if (new_code_arena () < 0 ) {
381
365
return NULL ;
382
366
}
383
367
}
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 );
386
370
}
387
371
388
372
static PyObject *
@@ -405,7 +389,7 @@ py_trampoline_evaluator(PyThreadState *ts, _PyInterpreterFrame *frame,
405
389
goto default_eval ;
406
390
}
407
391
trampoline_api .write_state (trampoline_api .state , new_trampoline ,
408
- code_arena -> code_size , co );
392
+ perf_code_arena -> code_size , co );
409
393
_PyCode_SetExtra ((PyObject * )co , extra_code_index ,
410
394
(void * )new_trampoline );
411
395
f = new_trampoline ;
0 commit comments