GH-128914: Remove all but one conditional stack effects (GH-129226)

* Remove all 'if (0)' and 'if (1)' conditional stack effects

* Use array instead of conditional for BUILD_SLICE args

* Refactor LOAD_GLOBAL to use a common conditional uop

* Remove conditional stack effects from LOAD_ATTR specializations

* Replace conditional stack effects in LOAD_ATTR with a 0 or 1 sized array.

* Remove conditional stack effects from CALL_FUNCTION_EX
This commit is contained in:
Mark Shannon 2025-01-27 16:24:48 +00:00 committed by GitHub
parent 8ec76d9034
commit 75b4962157
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 518 additions and 758 deletions

98
Include/opcode_ids.h generated
View file

@ -14,55 +14,55 @@ extern "C" {
#define BINARY_SLICE 1
#define BINARY_SUBSCR 2
#define BINARY_OP_INPLACE_ADD_UNICODE 3
#define CHECK_EG_MATCH 4
#define CHECK_EXC_MATCH 5
#define CLEANUP_THROW 6
#define DELETE_SUBSCR 7
#define END_ASYNC_FOR 8
#define END_FOR 9
#define END_SEND 10
#define EXIT_INIT_CHECK 11
#define FORMAT_SIMPLE 12
#define FORMAT_WITH_SPEC 13
#define GET_AITER 14
#define GET_ANEXT 15
#define GET_ITER 16
#define CALL_FUNCTION_EX 4
#define CHECK_EG_MATCH 5
#define CHECK_EXC_MATCH 6
#define CLEANUP_THROW 7
#define DELETE_SUBSCR 8
#define END_ASYNC_FOR 9
#define END_FOR 10
#define END_SEND 11
#define EXIT_INIT_CHECK 12
#define FORMAT_SIMPLE 13
#define FORMAT_WITH_SPEC 14
#define GET_AITER 15
#define GET_ANEXT 16
#define RESERVED 17
#define GET_LEN 18
#define GET_YIELD_FROM_ITER 19
#define INTERPRETER_EXIT 20
#define LOAD_BUILD_CLASS 21
#define LOAD_LOCALS 22
#define MAKE_FUNCTION 23
#define MATCH_KEYS 24
#define MATCH_MAPPING 25
#define MATCH_SEQUENCE 26
#define NOP 27
#define NOT_TAKEN 28
#define POP_EXCEPT 29
#define POP_ITER 30
#define POP_TOP 31
#define PUSH_EXC_INFO 32
#define PUSH_NULL 33
#define RETURN_GENERATOR 34
#define RETURN_VALUE 35
#define SETUP_ANNOTATIONS 36
#define STORE_SLICE 37
#define STORE_SUBSCR 38
#define TO_BOOL 39
#define UNARY_INVERT 40
#define UNARY_NEGATIVE 41
#define UNARY_NOT 42
#define WITH_EXCEPT_START 43
#define BINARY_OP 44
#define BUILD_LIST 45
#define BUILD_MAP 46
#define BUILD_SET 47
#define BUILD_SLICE 48
#define BUILD_STRING 49
#define BUILD_TUPLE 50
#define CALL 51
#define CALL_FUNCTION_EX 52
#define GET_ITER 18
#define GET_LEN 19
#define GET_YIELD_FROM_ITER 20
#define INTERPRETER_EXIT 21
#define LOAD_BUILD_CLASS 22
#define LOAD_LOCALS 23
#define MAKE_FUNCTION 24
#define MATCH_KEYS 25
#define MATCH_MAPPING 26
#define MATCH_SEQUENCE 27
#define NOP 28
#define NOT_TAKEN 29
#define POP_EXCEPT 30
#define POP_ITER 31
#define POP_TOP 32
#define PUSH_EXC_INFO 33
#define PUSH_NULL 34
#define RETURN_GENERATOR 35
#define RETURN_VALUE 36
#define SETUP_ANNOTATIONS 37
#define STORE_SLICE 38
#define STORE_SUBSCR 39
#define TO_BOOL 40
#define UNARY_INVERT 41
#define UNARY_NEGATIVE 42
#define UNARY_NOT 43
#define WITH_EXCEPT_START 44
#define BINARY_OP 45
#define BUILD_LIST 46
#define BUILD_MAP 47
#define BUILD_SET 48
#define BUILD_SLICE 49
#define BUILD_STRING 50
#define BUILD_TUPLE 51
#define CALL 52
#define CALL_INTRINSIC_1 53
#define CALL_INTRINSIC_2 54
#define CALL_KW 55
@ -241,7 +241,7 @@ extern "C" {
#define SETUP_WITH 264
#define STORE_FAST_MAYBE_NULL 265
#define HAVE_ARGUMENT 43
#define HAVE_ARGUMENT 44
#define MIN_SPECIALIZED_OPCODE 150
#define MIN_INSTRUMENTED_OPCODE 235