diff options
author | Mark Shannon <mark@hotpy.org> | 2024-02-27 13:25:02 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-27 13:25:02 (GMT) |
commit | 6ecfcfe8946cf701c6c7018e30ae54d8b7a7ac2a (patch) | |
tree | 866ef77e88de4f69c85fda6d61a43bc17f1ccd2f /Include/internal/pycore_optimizer.h | |
parent | 10fbcd6c5dc25bfe14e02fd93ef93498a393860c (diff) | |
download | cpython-6ecfcfe8946cf701c6c7018e30ae54d8b7a7ac2a.zip cpython-6ecfcfe8946cf701c6c7018e30ae54d8b7a7ac2a.tar.gz cpython-6ecfcfe8946cf701c6c7018e30ae54d8b7a7ac2a.tar.bz2 |
GH-115816: Assorted naming and formatting changes to improve maintainability. (GH-115987)
* Rename _Py_UOpsAbstractInterpContext to _Py_UOpsContext and _Py_UOpsSymType to _Py_UopsSymbol.
* #define shortened form of _Py_uop_... names for improved readability.
Diffstat (limited to 'Include/internal/pycore_optimizer.h')
-rw-r--r-- | Include/internal/pycore_optimizer.h | 73 |
1 files changed, 35 insertions, 38 deletions
diff --git a/Include/internal/pycore_optimizer.h b/Include/internal/pycore_optimizer.h index 267cbf1..425bd69 100644 --- a/Include/internal/pycore_optimizer.h +++ b/Include/internal/pycore_optimizer.h @@ -28,7 +28,7 @@ extern PyTypeObject _PyUOpOptimizer_Type; /* Symbols */ -struct _Py_UOpsSymType { +struct _Py_UopsSymbol { int flags; PyTypeObject *typ; // constant propagated value (might be NULL) @@ -38,23 +38,21 @@ struct _Py_UOpsSymType { // Holds locals, stack, locals, stack ... co_consts (in that order) #define MAX_ABSTRACT_INTERP_SIZE 4096 -#define OVERALLOCATE_FACTOR 5 - -#define TY_ARENA_SIZE (UOP_MAX_TRACE_LENGTH * OVERALLOCATE_FACTOR) +#define TY_ARENA_SIZE (UOP_MAX_TRACE_LENGTH * 5) // Need extras for root frame and for overflow frame (see TRACE_STACK_PUSH()) #define MAX_ABSTRACT_FRAME_DEPTH (TRACE_STACK_SIZE + 2) -typedef struct _Py_UOpsSymType _Py_UOpsSymType; +typedef struct _Py_UopsSymbol _Py_UopsSymbol; struct _Py_UOpsAbstractFrame { // Max stacklen int stack_len; int locals_len; - _Py_UOpsSymType **stack_pointer; - _Py_UOpsSymType **stack; - _Py_UOpsSymType **locals; + _Py_UopsSymbol **stack_pointer; + _Py_UopsSymbol **stack; + _Py_UopsSymbol **locals; }; typedef struct _Py_UOpsAbstractFrame _Py_UOpsAbstractFrame; @@ -62,10 +60,10 @@ typedef struct _Py_UOpsAbstractFrame _Py_UOpsAbstractFrame; typedef struct ty_arena { int ty_curr_number; int ty_max_number; - _Py_UOpsSymType arena[TY_ARENA_SIZE]; + _Py_UopsSymbol arena[TY_ARENA_SIZE]; } ty_arena; -struct _Py_UOpsAbstractInterpContext { +struct _Py_UOpsContext { PyObject_HEAD // The current "executing" frame. _Py_UOpsAbstractFrame *frame; @@ -75,40 +73,39 @@ struct _Py_UOpsAbstractInterpContext { // Arena for the symbolic types. ty_arena t_arena; - _Py_UOpsSymType **n_consumed; - _Py_UOpsSymType **limit; - _Py_UOpsSymType *locals_and_stack[MAX_ABSTRACT_INTERP_SIZE]; + _Py_UopsSymbol **n_consumed; + _Py_UopsSymbol **limit; + _Py_UopsSymbol *locals_and_stack[MAX_ABSTRACT_INTERP_SIZE]; }; -typedef struct _Py_UOpsAbstractInterpContext _Py_UOpsAbstractInterpContext; - -extern bool _Py_uop_sym_is_null(_Py_UOpsSymType *sym); -extern bool _Py_uop_sym_is_not_null(_Py_UOpsSymType *sym); -extern bool _Py_uop_sym_is_const(_Py_UOpsSymType *sym); -extern PyObject *_Py_uop_sym_get_const(_Py_UOpsSymType *sym); -extern _Py_UOpsSymType *_Py_uop_sym_new_unknown(_Py_UOpsAbstractInterpContext *ctx); -extern _Py_UOpsSymType *_Py_uop_sym_new_not_null(_Py_UOpsAbstractInterpContext *ctx); -extern _Py_UOpsSymType *_Py_uop_sym_new_type( - _Py_UOpsAbstractInterpContext *ctx, PyTypeObject *typ); -extern _Py_UOpsSymType *_Py_uop_sym_new_const(_Py_UOpsAbstractInterpContext *ctx, PyObject *const_val); -extern _Py_UOpsSymType *_Py_uop_sym_new_null(_Py_UOpsAbstractInterpContext *ctx); -extern bool _Py_uop_sym_matches_type(_Py_UOpsSymType *sym, PyTypeObject *typ); -extern void _Py_uop_sym_set_null(_Py_UOpsSymType *sym); -extern void _Py_uop_sym_set_type(_Py_UOpsSymType *sym, PyTypeObject *tp); - -extern int _Py_uop_abstractcontext_init(_Py_UOpsAbstractInterpContext *ctx); -extern void _Py_uop_abstractcontext_fini(_Py_UOpsAbstractInterpContext *ctx); - -extern _Py_UOpsAbstractFrame *_Py_uop_ctx_frame_new( - _Py_UOpsAbstractInterpContext *ctx, +typedef struct _Py_UOpsContext _Py_UOpsContext; + +extern bool _Py_uop_sym_is_null(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_is_not_null(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_is_const(_Py_UopsSymbol *sym); +extern PyObject *_Py_uop_sym_get_const(_Py_UopsSymbol *sym); +extern _Py_UopsSymbol *_Py_uop_sym_new_unknown(_Py_UOpsContext *ctx); +extern _Py_UopsSymbol *_Py_uop_sym_new_not_null(_Py_UOpsContext *ctx); +extern _Py_UopsSymbol *_Py_uop_sym_new_type( + _Py_UOpsContext *ctx, PyTypeObject *typ); +extern _Py_UopsSymbol *_Py_uop_sym_new_const(_Py_UOpsContext *ctx, PyObject *const_val); +extern _Py_UopsSymbol *_Py_uop_sym_new_null(_Py_UOpsContext *ctx); +extern bool _Py_uop_sym_matches_type(_Py_UopsSymbol *sym, PyTypeObject *typ); +extern void _Py_uop_sym_set_null(_Py_UopsSymbol *sym); +extern void _Py_uop_sym_set_type(_Py_UopsSymbol *sym, PyTypeObject *tp); + +extern int _Py_uop_abstractcontext_init(_Py_UOpsContext *ctx); +extern void _Py_uop_abstractcontext_fini(_Py_UOpsContext *ctx); + +extern _Py_UOpsAbstractFrame *_Py_uop_frame_new( + _Py_UOpsContext *ctx, PyCodeObject *co, - _Py_UOpsSymType **localsplus_start, + _Py_UopsSymbol **localsplus_start, int n_locals_already_filled, int curr_stackentries); -extern int _Py_uop_ctx_frame_pop(_Py_UOpsAbstractInterpContext *ctx); +extern int _Py_uop_frame_pop(_Py_UOpsContext *ctx); -PyAPI_FUNC(PyObject *) -_Py_uop_symbols_test(PyObject *self, PyObject *ignored); +PyAPI_FUNC(PyObject *) _Py_uop_symbols_test(PyObject *self, PyObject *ignored); #ifdef __cplusplus } |