https://github.com/python/cpython/commit/20921922fa4d34bea54bfbfc561503e67409b7ab
commit: 20921922fa4d34bea54bfbfc561503e67409b7ab
branch: main
author: Dino Viehland <[email protected]>
committer: DinoV <[email protected]>
date: 2026-07-06T12:56:32-07:00
summary:
gh-150490: Raise PyType_Modified for insertion into split dictionary (take 2)
(#152914)
Raise PyType_Modified for insertion into split dictionary - now with better
locking discipline in free-threaded builds
files:
M Include/internal/pycore_dict.h
M Include/internal/pycore_opcode_metadata.h
M Include/internal/pycore_typeobject.h
M Include/internal/pycore_uop_ids.h
M Include/internal/pycore_uop_metadata.h
M Lib/test/test_free_threading/test_type.py
M Modules/_testinternalcapi/test_cases.c.h
M Objects/dictobject.c
M Objects/typeobject.c
M Python/bytecodes.c
M Python/executor_cases.c.h
M Python/generated_cases.c.h
M Python/optimizer_cases.c.h
M Python/specialize.c
diff --git a/Include/internal/pycore_dict.h b/Include/internal/pycore_dict.h
index ff6588b3e9718c6..7032b61d7654b89 100644
--- a/Include/internal/pycore_dict.h
+++ b/Include/internal/pycore_dict.h
@@ -90,6 +90,7 @@ typedef struct {
} PyDictUnicodeEntry;
extern PyDictKeysObject *_PyDict_NewKeysForClass(PyHeapTypeObject *);
+extern void _PyDict_RemoveKeysForClass(PyHeapTypeObject *);
extern PyObject *_PyDict_FromKeys(PyObject *, PyObject *, PyObject *);
/* Implementations of the `|` and `|=` operators for dict, used by the
@@ -239,6 +240,17 @@ struct _dictkeysobject {
see the DK_ENTRIES() / DK_UNICODE_ENTRIES() functions below */
};
+struct _instancekeysobject {
+ PyTypeObject* dsk_owning_type;
+ struct _dictkeysobject dsk_keys;
+};
+
+static inline struct _instancekeysobject *_PyDictKeys_AsSharedKeys(struct
_dictkeysobject *keys)
+{
+ assert(keys->dk_kind == DICT_KEYS_SPLIT);
+ return _Py_CONTAINER_OF(keys, struct _instancekeysobject, dsk_keys);
+}
+
/* This must be no more than 250, for the prefix size to fit in one byte. */
#define SHARED_KEYS_MAX_SIZE 30
#define NEXT_LOG2_SHARED_KEYS_MAX_SIZE 6
diff --git a/Include/internal/pycore_opcode_metadata.h
b/Include/internal/pycore_opcode_metadata.h
index 647f6b6cbb989ad..31d2e31573d8c53 100644
--- a/Include/internal/pycore_opcode_metadata.h
+++ b/Include/internal/pycore_opcode_metadata.h
@@ -1458,10 +1458,10 @@ _PyOpcode_macro_expansion[256] = {
[LOAD_ATTR_INSTANCE_VALUE] = { .nuops = 6, .uops = { { _RECORD_TOS_TYPE,
OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, {
_CHECK_MANAGED_OBJECT_HAS_VALUES, OPARG_SIMPLE, 3 }, {
_LOAD_ATTR_INSTANCE_VALUE, 1, 3 }, { _POP_TOP, OPARG_SIMPLE, 4 }, {
_PUSH_NULL_CONDITIONAL, OPARG_SIMPLE, 9 } } },
[LOAD_ATTR_METHOD_LAZY_DICT] = { .nuops = 4, .uops = { { _RECORD_TOS_TYPE,
OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, {
_CHECK_ATTR_METHOD_LAZY_DICT, 1, 3 }, { _LOAD_ATTR_METHOD_LAZY_DICT, 4, 5 } } },
[LOAD_ATTR_METHOD_NO_DICT] = { .nuops = 3, .uops = { { _RECORD_TOS_TYPE,
OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_METHOD_NO_DICT,
4, 5 } } },
- [LOAD_ATTR_METHOD_WITH_VALUES] = { .nuops = 5, .uops = { {
_RECORD_TOS_TYPE, OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, {
_CHECK_MANAGED_OBJECT_HAS_VALUES, OPARG_SIMPLE, 3 }, { _GUARD_KEYS_VERSION, 2,
3 }, { _LOAD_ATTR_METHOD_WITH_VALUES, 4, 5 } } },
+ [LOAD_ATTR_METHOD_WITH_VALUES] = { .nuops = 4, .uops = { {
_RECORD_TOS_TYPE, OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, {
_CHECK_MANAGED_OBJECT_HAS_VALUES, OPARG_SIMPLE, 3 }, {
_LOAD_ATTR_METHOD_WITH_VALUES, 4, 5 } } },
[LOAD_ATTR_MODULE] = { .nuops = 4, .uops = { { _LOAD_ATTR_MODULE, 2, 1 },
{ _LOAD_ATTR_MODULE, OPERAND1_1, 3 }, { _POP_TOP, OPARG_SIMPLE, 4 }, {
_PUSH_NULL_CONDITIONAL, OPARG_SIMPLE, 9 } } },
[LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = { .nuops = 3, .uops = { {
_RECORD_TOS_TYPE, OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, {
_LOAD_ATTR_NONDESCRIPTOR_NO_DICT, 4, 5 } } },
- [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { .nuops = 5, .uops = { {
_RECORD_TOS_TYPE, OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, {
_CHECK_MANAGED_OBJECT_HAS_VALUES, OPARG_SIMPLE, 3 }, { _GUARD_KEYS_VERSION, 2,
3 }, { _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES, 4, 5 } } },
+ [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { .nuops = 4, .uops = { {
_RECORD_TOS_TYPE, OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, {
_CHECK_MANAGED_OBJECT_HAS_VALUES, OPARG_SIMPLE, 3 }, {
_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES, 4, 5 } } },
[LOAD_ATTR_PROPERTY] = { .nuops = 7, .uops = { { _RECORD_TOS_TYPE,
OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_PEP_523,
OPARG_SIMPLE, 3 }, { _LOAD_ATTR_PROPERTY_FRAME, 2, 3 }, {
_LOAD_ATTR_PROPERTY_FRAME, OPERAND1_4, 5 }, { _SAVE_RETURN_OFFSET,
OPARG_SAVE_RETURN_OFFSET, 9 }, { _PUSH_FRAME, OPARG_SIMPLE, 9 } } },
[LOAD_ATTR_SLOT] = { .nuops = 5, .uops = { { _RECORD_TOS_TYPE,
OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_SLOT, 1, 3 }, {
_POP_TOP, OPARG_SIMPLE, 4 }, { _PUSH_NULL_CONDITIONAL, OPARG_SIMPLE, 9 } } },
[LOAD_ATTR_WITH_HINT] = { .nuops = 5, .uops = { { _RECORD_TOS_TYPE,
OPARG_SIMPLE, 1 }, { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_WITH_HINT, 1, 3
}, { _POP_TOP, OPARG_SIMPLE, 4 }, { _PUSH_NULL_CONDITIONAL, OPARG_SIMPLE, 9 } }
},
diff --git a/Include/internal/pycore_typeobject.h
b/Include/internal/pycore_typeobject.h
index 785b77d3e3be81e..c8b888f1c395483 100644
--- a/Include/internal/pycore_typeobject.h
+++ b/Include/internal/pycore_typeobject.h
@@ -148,6 +148,9 @@ extern int _PyType_AddMethod(PyTypeObject *, PyMethodDef *);
extern void _PyType_SetFlagsRecursive(PyTypeObject *self, unsigned long mask,
unsigned long flags);
+// Raise PyType_Modified with the type lock already held.
+extern void _PyType_Modified_Unlocked(PyTypeObject *type);
+
PyAPI_FUNC(void) _PyType_SetVersion(PyTypeObject *tp, unsigned int version);
PyTypeObject *_PyType_LookupByVersion(unsigned int version);
diff --git a/Include/internal/pycore_uop_ids.h
b/Include/internal/pycore_uop_ids.h
index cd34aaa9d34afde..c30813f6d800f34 100644
--- a/Include/internal/pycore_uop_ids.h
+++ b/Include/internal/pycore_uop_ids.h
@@ -195,55 +195,54 @@ extern "C" {
#define _GUARD_IS_TRUE_POP 459
#define _GUARD_ITERATOR 460
#define _GUARD_ITER_VIRTUAL 461
-#define _GUARD_KEYS_VERSION 462
-#define _GUARD_LOAD_SUPER_ATTR_METHOD 463
-#define _GUARD_NOS_COMPACT_ASCII 464
-#define _GUARD_NOS_DICT_STORE_SUBSCRIPT 465
-#define _GUARD_NOS_DICT_SUBSCRIPT 466
-#define _GUARD_NOS_FLOAT 467
-#define _GUARD_NOS_INT 468
-#define _GUARD_NOS_ITER_VIRTUAL 469
-#define _GUARD_NOS_LIST 470
-#define _GUARD_NOS_NOT_NULL 471
-#define _GUARD_NOS_NULL 472
-#define _GUARD_NOS_OVERFLOWED 473
-#define _GUARD_NOS_TUPLE 474
-#define _GUARD_NOS_TYPE_VERSION 475
-#define _GUARD_NOS_UNICODE 476
-#define _GUARD_NOT_EXHAUSTED_LIST 477
-#define _GUARD_NOT_EXHAUSTED_RANGE 478
-#define _GUARD_NOT_EXHAUSTED_TUPLE 479
-#define _GUARD_THIRD_NULL 480
-#define _GUARD_TOS_ANY_DICT 481
-#define _GUARD_TOS_ANY_SET 482
-#define _GUARD_TOS_DICT 483
-#define _GUARD_TOS_FLOAT 484
-#define _GUARD_TOS_FROZENDICT 485
-#define _GUARD_TOS_FROZENSET 486
-#define _GUARD_TOS_INT 487
-#define _GUARD_TOS_IS_NONE 488
-#define _GUARD_TOS_LIST 489
-#define _GUARD_TOS_NOT_NULL 490
-#define _GUARD_TOS_OVERFLOWED 491
-#define _GUARD_TOS_SET 492
-#define _GUARD_TOS_SLICE 493
-#define _GUARD_TOS_TUPLE 494
-#define _GUARD_TOS_UNICODE 495
-#define _GUARD_TYPE 496
-#define _GUARD_TYPE_ITER 497
-#define _GUARD_TYPE_VERSION 498
-#define _GUARD_TYPE_VERSION_LOCKED 499
-#define _HANDLE_PENDING_AND_DEOPT 500
+#define _GUARD_LOAD_SUPER_ATTR_METHOD 462
+#define _GUARD_NOS_COMPACT_ASCII 463
+#define _GUARD_NOS_DICT_STORE_SUBSCRIPT 464
+#define _GUARD_NOS_DICT_SUBSCRIPT 465
+#define _GUARD_NOS_FLOAT 466
+#define _GUARD_NOS_INT 467
+#define _GUARD_NOS_ITER_VIRTUAL 468
+#define _GUARD_NOS_LIST 469
+#define _GUARD_NOS_NOT_NULL 470
+#define _GUARD_NOS_NULL 471
+#define _GUARD_NOS_OVERFLOWED 472
+#define _GUARD_NOS_TUPLE 473
+#define _GUARD_NOS_TYPE_VERSION 474
+#define _GUARD_NOS_UNICODE 475
+#define _GUARD_NOT_EXHAUSTED_LIST 476
+#define _GUARD_NOT_EXHAUSTED_RANGE 477
+#define _GUARD_NOT_EXHAUSTED_TUPLE 478
+#define _GUARD_THIRD_NULL 479
+#define _GUARD_TOS_ANY_DICT 480
+#define _GUARD_TOS_ANY_SET 481
+#define _GUARD_TOS_DICT 482
+#define _GUARD_TOS_FLOAT 483
+#define _GUARD_TOS_FROZENDICT 484
+#define _GUARD_TOS_FROZENSET 485
+#define _GUARD_TOS_INT 486
+#define _GUARD_TOS_IS_NONE 487
+#define _GUARD_TOS_LIST 488
+#define _GUARD_TOS_NOT_NULL 489
+#define _GUARD_TOS_OVERFLOWED 490
+#define _GUARD_TOS_SET 491
+#define _GUARD_TOS_SLICE 492
+#define _GUARD_TOS_TUPLE 493
+#define _GUARD_TOS_UNICODE 494
+#define _GUARD_TYPE 495
+#define _GUARD_TYPE_ITER 496
+#define _GUARD_TYPE_VERSION 497
+#define _GUARD_TYPE_VERSION_LOCKED 498
+#define _HANDLE_PENDING_AND_DEOPT 499
#define _IMPORT_FROM IMPORT_FROM
#define _IMPORT_NAME IMPORT_NAME
-#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS 501
-#define _INIT_CALL_PY_EXACT_ARGS 502
-#define _INIT_CALL_PY_EXACT_ARGS_0 503
-#define _INIT_CALL_PY_EXACT_ARGS_1 504
-#define _INIT_CALL_PY_EXACT_ARGS_2 505
-#define _INIT_CALL_PY_EXACT_ARGS_3 506
-#define _INIT_CALL_PY_EXACT_ARGS_4 507
-#define _INSERT_NULL 508
+#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS 500
+#define _INIT_CALL_PY_EXACT_ARGS 501
+#define _INIT_CALL_PY_EXACT_ARGS_0 502
+#define _INIT_CALL_PY_EXACT_ARGS_1 503
+#define _INIT_CALL_PY_EXACT_ARGS_2 504
+#define _INIT_CALL_PY_EXACT_ARGS_3 505
+#define _INIT_CALL_PY_EXACT_ARGS_4 506
+#define _INSERT_NULL 507
#define _INSTRUMENTED_FOR_ITER INSTRUMENTED_FOR_ITER
#define _INSTRUMENTED_INSTRUCTION INSTRUMENTED_INSTRUCTION
#define _INSTRUMENTED_JUMP_FORWARD INSTRUMENTED_JUMP_FORWARD
@@ -253,1187 +252,1183 @@ extern "C" {
#define _INSTRUMENTED_POP_JUMP_IF_NONE INSTRUMENTED_POP_JUMP_IF_NONE
#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE INSTRUMENTED_POP_JUMP_IF_NOT_NONE
#define _INSTRUMENTED_POP_JUMP_IF_TRUE INSTRUMENTED_POP_JUMP_IF_TRUE
-#define _IS_NONE 509
-#define _IS_OP 510
-#define _ITER_CHECK_LIST 511
-#define _ITER_CHECK_RANGE 512
-#define _ITER_CHECK_TUPLE 513
-#define _ITER_JUMP_LIST 514
-#define _ITER_JUMP_RANGE 515
-#define _ITER_JUMP_TUPLE 516
-#define _ITER_NEXT_INLINE 517
-#define _ITER_NEXT_LIST 518
-#define _ITER_NEXT_LIST_TIER_TWO 519
-#define _ITER_NEXT_RANGE 520
-#define _ITER_NEXT_TUPLE 521
+#define _IS_NONE 508
+#define _IS_OP 509
+#define _ITER_CHECK_LIST 510
+#define _ITER_CHECK_RANGE 511
+#define _ITER_CHECK_TUPLE 512
+#define _ITER_JUMP_LIST 513
+#define _ITER_JUMP_RANGE 514
+#define _ITER_JUMP_TUPLE 515
+#define _ITER_NEXT_INLINE 516
+#define _ITER_NEXT_LIST 517
+#define _ITER_NEXT_LIST_TIER_TWO 518
+#define _ITER_NEXT_RANGE 519
+#define _ITER_NEXT_TUPLE 520
#define _JUMP_BACKWARD_NO_INTERRUPT JUMP_BACKWARD_NO_INTERRUPT
-#define _JUMP_TO_TOP 522
+#define _JUMP_TO_TOP 521
#define _LIST_APPEND LIST_APPEND
-#define _LIST_EXTEND 523
-#define _LOAD_ATTR 524
-#define _LOAD_ATTR_CLASS 525
-#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_FRAME 526
-#define _LOAD_ATTR_INSTANCE_VALUE 527
-#define _LOAD_ATTR_METHOD_LAZY_DICT 528
-#define _LOAD_ATTR_METHOD_NO_DICT 529
-#define _LOAD_ATTR_METHOD_WITH_VALUES 530
-#define _LOAD_ATTR_MODULE 531
-#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT 532
-#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 533
-#define _LOAD_ATTR_PROPERTY_FRAME 534
-#define _LOAD_ATTR_SLOT 535
-#define _LOAD_ATTR_WITH_HINT 536
+#define _LIST_EXTEND 522
+#define _LOAD_ATTR 523
+#define _LOAD_ATTR_CLASS 524
+#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_FRAME 525
+#define _LOAD_ATTR_INSTANCE_VALUE 526
+#define _LOAD_ATTR_METHOD_LAZY_DICT 527
+#define _LOAD_ATTR_METHOD_NO_DICT 528
+#define _LOAD_ATTR_METHOD_WITH_VALUES 529
+#define _LOAD_ATTR_MODULE 530
+#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT 531
+#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 532
+#define _LOAD_ATTR_PROPERTY_FRAME 533
+#define _LOAD_ATTR_SLOT 534
+#define _LOAD_ATTR_WITH_HINT 535
#define _LOAD_BUILD_CLASS LOAD_BUILD_CLASS
-#define _LOAD_BYTECODE 537
+#define _LOAD_BYTECODE 536
#define _LOAD_COMMON_CONSTANT LOAD_COMMON_CONSTANT
#define _LOAD_CONST LOAD_CONST
-#define _LOAD_CONST_INLINE 538
-#define _LOAD_CONST_INLINE_BORROW 539
+#define _LOAD_CONST_INLINE 537
+#define _LOAD_CONST_INLINE_BORROW 538
#define _LOAD_DEREF LOAD_DEREF
-#define _LOAD_FAST 540
-#define _LOAD_FAST_0 541
-#define _LOAD_FAST_1 542
-#define _LOAD_FAST_2 543
-#define _LOAD_FAST_3 544
-#define _LOAD_FAST_4 545
-#define _LOAD_FAST_5 546
-#define _LOAD_FAST_6 547
-#define _LOAD_FAST_7 548
+#define _LOAD_FAST 539
+#define _LOAD_FAST_0 540
+#define _LOAD_FAST_1 541
+#define _LOAD_FAST_2 542
+#define _LOAD_FAST_3 543
+#define _LOAD_FAST_4 544
+#define _LOAD_FAST_5 545
+#define _LOAD_FAST_6 546
+#define _LOAD_FAST_7 547
#define _LOAD_FAST_AND_CLEAR LOAD_FAST_AND_CLEAR
-#define _LOAD_FAST_BORROW 549
-#define _LOAD_FAST_BORROW_0 550
-#define _LOAD_FAST_BORROW_1 551
-#define _LOAD_FAST_BORROW_2 552
-#define _LOAD_FAST_BORROW_3 553
-#define _LOAD_FAST_BORROW_4 554
-#define _LOAD_FAST_BORROW_5 555
-#define _LOAD_FAST_BORROW_6 556
-#define _LOAD_FAST_BORROW_7 557
+#define _LOAD_FAST_BORROW 548
+#define _LOAD_FAST_BORROW_0 549
+#define _LOAD_FAST_BORROW_1 550
+#define _LOAD_FAST_BORROW_2 551
+#define _LOAD_FAST_BORROW_3 552
+#define _LOAD_FAST_BORROW_4 553
+#define _LOAD_FAST_BORROW_5 554
+#define _LOAD_FAST_BORROW_6 555
+#define _LOAD_FAST_BORROW_7 556
#define _LOAD_FAST_CHECK LOAD_FAST_CHECK
#define _LOAD_FROM_DICT_OR_DEREF LOAD_FROM_DICT_OR_DEREF
#define _LOAD_FROM_DICT_OR_GLOBALS LOAD_FROM_DICT_OR_GLOBALS
-#define _LOAD_GLOBAL 558
-#define _LOAD_GLOBAL_BUILTINS 559
-#define _LOAD_GLOBAL_MODULE 560
+#define _LOAD_GLOBAL 557
+#define _LOAD_GLOBAL_BUILTINS 558
+#define _LOAD_GLOBAL_MODULE 559
#define _LOAD_LOCALS LOAD_LOCALS
#define _LOAD_NAME LOAD_NAME
-#define _LOAD_SMALL_INT 561
-#define _LOAD_SMALL_INT_0 562
-#define _LOAD_SMALL_INT_1 563
-#define _LOAD_SMALL_INT_2 564
-#define _LOAD_SMALL_INT_3 565
-#define _LOAD_SPECIAL 566
+#define _LOAD_SMALL_INT 560
+#define _LOAD_SMALL_INT_0 561
+#define _LOAD_SMALL_INT_1 562
+#define _LOAD_SMALL_INT_2 563
+#define _LOAD_SMALL_INT_3 564
+#define _LOAD_SPECIAL 565
#define _LOAD_SUPER_ATTR_ATTR LOAD_SUPER_ATTR_ATTR
-#define _LOAD_SUPER_ATTR_METHOD 567
-#define _LOCK_OBJECT 568
-#define _MAKE_CALLARGS_A_TUPLE 569
+#define _LOAD_SUPER_ATTR_METHOD 566
+#define _LOCK_OBJECT 567
+#define _MAKE_CALLARGS_A_TUPLE 568
#define _MAKE_CELL MAKE_CELL
-#define _MAKE_FUNCTION 570
-#define _MAKE_HEAP_SAFE 571
-#define _MAKE_WARM 572
+#define _MAKE_FUNCTION 569
+#define _MAKE_HEAP_SAFE 570
+#define _MAKE_WARM 571
#define _MAP_ADD MAP_ADD
-#define _MATCH_CLASS 573
+#define _MATCH_CLASS 572
#define _MATCH_KEYS MATCH_KEYS
#define _MATCH_MAPPING MATCH_MAPPING
#define _MATCH_SEQUENCE MATCH_SEQUENCE
-#define _MAYBE_EXPAND_METHOD 574
-#define _MAYBE_EXPAND_METHOD_KW 575
-#define _MONITOR_CALL 576
-#define _MONITOR_CALL_KW 577
-#define _MONITOR_JUMP_BACKWARD 578
-#define _MONITOR_RESUME 579
+#define _MAYBE_EXPAND_METHOD 573
+#define _MAYBE_EXPAND_METHOD_KW 574
+#define _MONITOR_CALL 575
+#define _MONITOR_CALL_KW 576
+#define _MONITOR_JUMP_BACKWARD 577
+#define _MONITOR_RESUME 578
#define _NOP NOP
#define _POP_EXCEPT POP_EXCEPT
#define _POP_ITER POP_ITER
-#define _POP_JUMP_IF_FALSE 580
-#define _POP_JUMP_IF_TRUE 581
+#define _POP_JUMP_IF_FALSE 579
+#define _POP_JUMP_IF_TRUE 580
#define _POP_TOP POP_TOP
-#define _POP_TOP_FLOAT 582
-#define _POP_TOP_INT 583
-#define _POP_TOP_NOP 584
-#define _POP_TOP_OPARG 585
-#define _POP_TOP_UNICODE 586
+#define _POP_TOP_FLOAT 581
+#define _POP_TOP_INT 582
+#define _POP_TOP_NOP 583
+#define _POP_TOP_OPARG 584
+#define _POP_TOP_UNICODE 585
#define _PUSH_EXC_INFO PUSH_EXC_INFO
-#define _PUSH_FRAME 587
+#define _PUSH_FRAME 586
#define _PUSH_NULL PUSH_NULL
-#define _PUSH_NULL_CONDITIONAL 588
-#define _PUSH_TAGGED_ZERO 589
-#define _PY_FRAME_EX 590
-#define _PY_FRAME_GENERAL 591
-#define _PY_FRAME_KW 592
-#define _RECORD_3OS_GEN_FUNC 593
-#define _RECORD_4OS 594
-#define _RECORD_BOUND_METHOD 595
-#define _RECORD_CALLABLE 596
-#define _RECORD_CALLABLE_KW 597
-#define _RECORD_CODE 598
-#define _RECORD_NOS 599
-#define _RECORD_NOS_GEN_FUNC 600
-#define _RECORD_NOS_TYPE 601
-#define _RECORD_TOS 602
-#define _RECORD_TOS_TYPE 603
-#define _REPLACE_WITH_TRUE 604
-#define _RESUME_CHECK 605
+#define _PUSH_NULL_CONDITIONAL 587
+#define _PUSH_TAGGED_ZERO 588
+#define _PY_FRAME_EX 589
+#define _PY_FRAME_GENERAL 590
+#define _PY_FRAME_KW 591
+#define _RECORD_3OS_GEN_FUNC 592
+#define _RECORD_4OS 593
+#define _RECORD_BOUND_METHOD 594
+#define _RECORD_CALLABLE 595
+#define _RECORD_CALLABLE_KW 596
+#define _RECORD_CODE 597
+#define _RECORD_NOS 598
+#define _RECORD_NOS_GEN_FUNC 599
+#define _RECORD_NOS_TYPE 600
+#define _RECORD_TOS 601
+#define _RECORD_TOS_TYPE 602
+#define _REPLACE_WITH_TRUE 603
+#define _RESUME_CHECK 604
#define _RETURN_GENERATOR RETURN_GENERATOR
-#define _RETURN_VALUE 606
-#define _RROT_3 607
-#define _SAVE_RETURN_OFFSET 608
-#define _SEND_ASYNC_GEN 609
-#define _SEND_ASYNC_GEN_TIER_TWO 610
-#define _SEND_GEN_FRAME 611
-#define _SEND_VIRTUAL 612
-#define _SEND_VIRTUAL_TIER_TWO 613
+#define _RETURN_VALUE 605
+#define _RROT_3 606
+#define _SAVE_RETURN_OFFSET 607
+#define _SEND_ASYNC_GEN 608
+#define _SEND_ASYNC_GEN_TIER_TWO 609
+#define _SEND_GEN_FRAME 610
+#define _SEND_VIRTUAL 611
+#define _SEND_VIRTUAL_TIER_TWO 612
#define _SETUP_ANNOTATIONS SETUP_ANNOTATIONS
#define _SET_ADD SET_ADD
#define _SET_FUNCTION_ATTRIBUTE SET_FUNCTION_ATTRIBUTE
-#define _SET_UPDATE 614
-#define _SPILL_OR_RELOAD 615
-#define _START_EXECUTOR 616
-#define _STORE_ATTR 617
-#define _STORE_ATTR_INSTANCE_VALUE 618
-#define _STORE_ATTR_SLOT 619
-#define _STORE_ATTR_WITH_HINT 620
+#define _SET_UPDATE 613
+#define _SPILL_OR_RELOAD 614
+#define _START_EXECUTOR 615
+#define _STORE_ATTR 616
+#define _STORE_ATTR_INSTANCE_VALUE 617
+#define _STORE_ATTR_SLOT 618
+#define _STORE_ATTR_WITH_HINT 619
#define _STORE_DEREF STORE_DEREF
#define _STORE_GLOBAL STORE_GLOBAL
#define _STORE_NAME STORE_NAME
-#define _STORE_SLICE 621
-#define _STORE_SUBSCR 622
-#define _STORE_SUBSCR_DICT 623
-#define _STORE_SUBSCR_DICT_KNOWN_HASH 624
-#define _STORE_SUBSCR_LIST_INT 625
-#define _SWAP 626
-#define _SWAP_2 627
-#define _SWAP_3 628
-#define _SWAP_FAST 629
-#define _SWAP_FAST_0 630
-#define _SWAP_FAST_1 631
-#define _SWAP_FAST_2 632
-#define _SWAP_FAST_3 633
-#define _SWAP_FAST_4 634
-#define _SWAP_FAST_5 635
-#define _SWAP_FAST_6 636
-#define _SWAP_FAST_7 637
-#define _TIER2_RESUME_CHECK 638
-#define _TO_BOOL 639
+#define _STORE_SLICE 620
+#define _STORE_SUBSCR 621
+#define _STORE_SUBSCR_DICT 622
+#define _STORE_SUBSCR_DICT_KNOWN_HASH 623
+#define _STORE_SUBSCR_LIST_INT 624
+#define _SWAP 625
+#define _SWAP_2 626
+#define _SWAP_3 627
+#define _SWAP_FAST 628
+#define _SWAP_FAST_0 629
+#define _SWAP_FAST_1 630
+#define _SWAP_FAST_2 631
+#define _SWAP_FAST_3 632
+#define _SWAP_FAST_4 633
+#define _SWAP_FAST_5 634
+#define _SWAP_FAST_6 635
+#define _SWAP_FAST_7 636
+#define _TIER2_RESUME_CHECK 637
+#define _TO_BOOL 638
#define _TO_BOOL_BOOL TO_BOOL_BOOL
-#define _TO_BOOL_INT 640
-#define _TO_BOOL_LIST 641
+#define _TO_BOOL_INT 639
+#define _TO_BOOL_LIST 640
#define _TO_BOOL_NONE TO_BOOL_NONE
-#define _TO_BOOL_STR 642
+#define _TO_BOOL_STR 641
#define _TRACE_RECORD TRACE_RECORD
-#define _UNARY_INVERT 643
-#define _UNARY_NEGATIVE 644
-#define _UNARY_NEGATIVE_FLOAT_INPLACE 645
+#define _UNARY_INVERT 642
+#define _UNARY_NEGATIVE 643
+#define _UNARY_NEGATIVE_FLOAT_INPLACE 644
#define _UNARY_NOT UNARY_NOT
#define _UNPACK_EX UNPACK_EX
-#define _UNPACK_SEQUENCE 646
-#define _UNPACK_SEQUENCE_LIST 647
-#define _UNPACK_SEQUENCE_TUPLE 648
-#define _UNPACK_SEQUENCE_TWO_TUPLE 649
-#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE 650
-#define _UNPACK_SEQUENCE_UNIQUE_TUPLE 651
-#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE 652
+#define _UNPACK_SEQUENCE 645
+#define _UNPACK_SEQUENCE_LIST 646
+#define _UNPACK_SEQUENCE_TUPLE 647
+#define _UNPACK_SEQUENCE_TWO_TUPLE 648
+#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE 649
+#define _UNPACK_SEQUENCE_UNIQUE_TUPLE 650
+#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE 651
#define _WITH_EXCEPT_START WITH_EXCEPT_START
-#define _YIELD_VALUE 653
-#define MAX_UOP_ID 653
-#define _ALLOCATE_OBJECT_r00 654
-#define _BINARY_OP_r23 655
-#define _BINARY_OP_ADD_FLOAT_r03 656
-#define _BINARY_OP_ADD_FLOAT_r13 657
-#define _BINARY_OP_ADD_FLOAT_r23 658
-#define _BINARY_OP_ADD_FLOAT_INPLACE_r03 659
-#define _BINARY_OP_ADD_FLOAT_INPLACE_r13 660
-#define _BINARY_OP_ADD_FLOAT_INPLACE_r23 661
-#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03 662
-#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13 663
-#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23 664
-#define _BINARY_OP_ADD_INT_r03 665
-#define _BINARY_OP_ADD_INT_r13 666
-#define _BINARY_OP_ADD_INT_r23 667
-#define _BINARY_OP_ADD_INT_INPLACE_r03 668
-#define _BINARY_OP_ADD_INT_INPLACE_r13 669
-#define _BINARY_OP_ADD_INT_INPLACE_r23 670
-#define _BINARY_OP_ADD_INT_INPLACE_RIGHT_r03 671
-#define _BINARY_OP_ADD_INT_INPLACE_RIGHT_r13 672
-#define _BINARY_OP_ADD_INT_INPLACE_RIGHT_r23 673
-#define _BINARY_OP_ADD_UNICODE_r03 674
-#define _BINARY_OP_ADD_UNICODE_r13 675
-#define _BINARY_OP_ADD_UNICODE_r23 676
-#define _BINARY_OP_EXTEND_r23 677
-#define _BINARY_OP_INPLACE_ADD_UNICODE_r21 678
-#define _BINARY_OP_MULTIPLY_FLOAT_r03 679
-#define _BINARY_OP_MULTIPLY_FLOAT_r13 680
-#define _BINARY_OP_MULTIPLY_FLOAT_r23 681
-#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r03 682
-#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r13 683
-#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r23 684
-#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03 685
-#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13 686
-#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23 687
-#define _BINARY_OP_MULTIPLY_INT_r03 688
-#define _BINARY_OP_MULTIPLY_INT_r13 689
-#define _BINARY_OP_MULTIPLY_INT_r23 690
-#define _BINARY_OP_MULTIPLY_INT_INPLACE_r03 691
-#define _BINARY_OP_MULTIPLY_INT_INPLACE_r13 692
-#define _BINARY_OP_MULTIPLY_INT_INPLACE_r23 693
-#define _BINARY_OP_MULTIPLY_INT_INPLACE_RIGHT_r03 694
-#define _BINARY_OP_MULTIPLY_INT_INPLACE_RIGHT_r13 695
-#define _BINARY_OP_MULTIPLY_INT_INPLACE_RIGHT_r23 696
-#define _BINARY_OP_SUBSCR_CHECK_FUNC_r23 697
-#define _BINARY_OP_SUBSCR_DICT_r23 698
-#define _BINARY_OP_SUBSCR_DICT_KNOWN_HASH_r23 699
-#define _BINARY_OP_SUBSCR_INIT_CALL_r01 700
-#define _BINARY_OP_SUBSCR_INIT_CALL_r11 701
-#define _BINARY_OP_SUBSCR_INIT_CALL_r21 702
-#define _BINARY_OP_SUBSCR_INIT_CALL_r31 703
-#define _BINARY_OP_SUBSCR_LIST_INT_r23 704
-#define _BINARY_OP_SUBSCR_LIST_SLICE_r23 705
-#define _BINARY_OP_SUBSCR_STR_INT_r23 706
-#define _BINARY_OP_SUBSCR_TUPLE_INT_r03 707
-#define _BINARY_OP_SUBSCR_TUPLE_INT_r13 708
-#define _BINARY_OP_SUBSCR_TUPLE_INT_r23 709
-#define _BINARY_OP_SUBSCR_USTR_INT_r23 710
-#define _BINARY_OP_SUBTRACT_FLOAT_r03 711
-#define _BINARY_OP_SUBTRACT_FLOAT_r13 712
-#define _BINARY_OP_SUBTRACT_FLOAT_r23 713
-#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03 714
-#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13 715
-#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23 716
-#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 717
-#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 718
-#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 719
-#define _BINARY_OP_SUBTRACT_INT_r03 720
-#define _BINARY_OP_SUBTRACT_INT_r13 721
-#define _BINARY_OP_SUBTRACT_INT_r23 722
-#define _BINARY_OP_SUBTRACT_INT_INPLACE_r03 723
-#define _BINARY_OP_SUBTRACT_INT_INPLACE_r13 724
-#define _BINARY_OP_SUBTRACT_INT_INPLACE_r23 725
-#define _BINARY_OP_SUBTRACT_INT_INPLACE_RIGHT_r03 726
-#define _BINARY_OP_SUBTRACT_INT_INPLACE_RIGHT_r13 727
-#define _BINARY_OP_SUBTRACT_INT_INPLACE_RIGHT_r23 728
-#define _BINARY_OP_TRUEDIV_FLOAT_r23 729
-#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_r03 730
-#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_r13 731
-#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_r23 732
-#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_RIGHT_r03 733
-#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_RIGHT_r13 734
-#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_RIGHT_r23 735
-#define _BINARY_SLICE_r31 736
-#define _BUILD_INTERPOLATION_r01 737
-#define _BUILD_LIST_r01 738
-#define _BUILD_MAP_r01 739
-#define _BUILD_SET_r01 740
-#define _BUILD_SLICE_r01 741
-#define _BUILD_STRING_r01 742
-#define _BUILD_TEMPLATE_r21 743
-#define _BUILD_TUPLE_r01 744
-#define _CALL_BUILTIN_CLASS_r00 745
-#define _CALL_BUILTIN_FAST_r00 746
-#define _CALL_BUILTIN_FAST_WITH_KEYWORDS_r00 747
-#define _CALL_BUILTIN_O_r03 748
-#define _CALL_FUNCTION_EX_NON_PY_GENERAL_r31 749
-#define _CALL_INTRINSIC_1_r12 750
-#define _CALL_INTRINSIC_2_r23 751
-#define _CALL_ISINSTANCE_r31 752
-#define _CALL_KW_NON_PY_r11 753
-#define _CALL_LEN_r33 754
-#define _CALL_LIST_APPEND_r03 755
-#define _CALL_LIST_APPEND_r13 756
-#define _CALL_LIST_APPEND_r23 757
-#define _CALL_LIST_APPEND_r33 758
-#define _CALL_METHOD_DESCRIPTOR_FAST_r00 759
-#define _CALL_METHOD_DESCRIPTOR_FAST_INLINE_r00 760
-#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r00 761
-#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_INLINE_r00 762
-#define _CALL_METHOD_DESCRIPTOR_NOARGS_r03 763
-#define _CALL_METHOD_DESCRIPTOR_NOARGS_INLINE_r03 764
-#define _CALL_METHOD_DESCRIPTOR_O_r03 765
-#define _CALL_METHOD_DESCRIPTOR_O_INLINE_r03 766
-#define _CALL_NON_PY_GENERAL_r01 767
-#define _CALL_STR_1_r32 768
-#define _CALL_TUPLE_1_r32 769
-#define _CALL_TYPE_1_r02 770
-#define _CALL_TYPE_1_r12 771
-#define _CALL_TYPE_1_r22 772
-#define _CALL_TYPE_1_r32 773
-#define _CHECK_ATTR_CLASS_r01 774
-#define _CHECK_ATTR_CLASS_r11 775
-#define _CHECK_ATTR_CLASS_r22 776
-#define _CHECK_ATTR_CLASS_r33 777
-#define _CHECK_ATTR_METHOD_LAZY_DICT_r01 778
-#define _CHECK_ATTR_METHOD_LAZY_DICT_r11 779
-#define _CHECK_ATTR_METHOD_LAZY_DICT_r22 780
-#define _CHECK_ATTR_METHOD_LAZY_DICT_r33 781
-#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_r00 782
-#define _CHECK_EG_MATCH_r22 783
-#define _CHECK_EXC_MATCH_r22 784
-#define _CHECK_FUNCTION_EXACT_ARGS_r00 785
-#define _CHECK_FUNCTION_VERSION_r00 786
-#define _CHECK_FUNCTION_VERSION_INLINE_r00 787
-#define _CHECK_FUNCTION_VERSION_INLINE_r11 788
-#define _CHECK_FUNCTION_VERSION_INLINE_r22 789
-#define _CHECK_FUNCTION_VERSION_INLINE_r33 790
-#define _CHECK_FUNCTION_VERSION_KW_r11 791
-#define _CHECK_IS_NOT_PY_CALLABLE_r00 792
-#define _CHECK_IS_NOT_PY_CALLABLE_EX_r03 793
-#define _CHECK_IS_NOT_PY_CALLABLE_EX_r13 794
-#define _CHECK_IS_NOT_PY_CALLABLE_EX_r23 795
-#define _CHECK_IS_NOT_PY_CALLABLE_EX_r33 796
-#define _CHECK_IS_NOT_PY_CALLABLE_KW_r11 797
-#define _CHECK_IS_PY_CALLABLE_EX_r03 798
-#define _CHECK_IS_PY_CALLABLE_EX_r13 799
-#define _CHECK_IS_PY_CALLABLE_EX_r23 800
-#define _CHECK_IS_PY_CALLABLE_EX_r33 801
-#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r01 802
-#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r11 803
-#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r22 804
-#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r33 805
-#define _CHECK_METHOD_VERSION_r00 806
-#define _CHECK_METHOD_VERSION_KW_r11 807
-#define _CHECK_OBJECT_r00 808
-#define _CHECK_PEP_523_r00 809
-#define _CHECK_PEP_523_r11 810
-#define _CHECK_PEP_523_r22 811
-#define _CHECK_PEP_523_r33 812
-#define _CHECK_PERIODIC_r00 813
-#define _CHECK_PERIODIC_AT_END_r00 814
-#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM_r00 815
-#define _CHECK_RECURSION_LIMIT_r00 816
-#define _CHECK_RECURSION_LIMIT_r11 817
-#define _CHECK_RECURSION_LIMIT_r22 818
-#define _CHECK_RECURSION_LIMIT_r33 819
-#define _CHECK_RECURSION_REMAINING_r00 820
-#define _CHECK_RECURSION_REMAINING_r11 821
-#define _CHECK_RECURSION_REMAINING_r22 822
-#define _CHECK_RECURSION_REMAINING_r33 823
-#define _CHECK_STACK_SPACE_r00 824
-#define _CHECK_STACK_SPACE_OPERAND_r00 825
-#define _CHECK_STACK_SPACE_OPERAND_r11 826
-#define _CHECK_STACK_SPACE_OPERAND_r22 827
-#define _CHECK_STACK_SPACE_OPERAND_r33 828
-#define _CHECK_VALIDITY_r00 829
-#define _CHECK_VALIDITY_r11 830
-#define _CHECK_VALIDITY_r22 831
-#define _CHECK_VALIDITY_r33 832
-#define _COLD_DYNAMIC_EXIT_r00 833
-#define _COLD_EXIT_r00 834
-#define _COMPARE_OP_r21 835
-#define _COMPARE_OP_FLOAT_r03 836
-#define _COMPARE_OP_FLOAT_r13 837
-#define _COMPARE_OP_FLOAT_r23 838
-#define _COMPARE_OP_INT_r23 839
-#define _COMPARE_OP_STR_r23 840
-#define _CONTAINS_OP_r23 841
-#define _CONTAINS_OP_DICT_r23 842
-#define _CONTAINS_OP_SET_r23 843
-#define _CONVERT_VALUE_r11 844
-#define _COPY_r01 845
-#define _COPY_1_r02 846
-#define _COPY_1_r12 847
-#define _COPY_1_r23 848
-#define _COPY_2_r03 849
-#define _COPY_2_r13 850
-#define _COPY_2_r23 851
-#define _COPY_3_r03 852
-#define _COPY_3_r13 853
-#define _COPY_3_r23 854
-#define _COPY_3_r33 855
-#define _COPY_FREE_VARS_r00 856
-#define _COPY_FREE_VARS_r11 857
-#define _COPY_FREE_VARS_r22 858
-#define _COPY_FREE_VARS_r33 859
-#define _CREATE_INIT_FRAME_r01 860
-#define _DELETE_DEREF_r00 861
-#define _DELETE_FAST_r00 862
-#define _DELETE_SUBSCR_r20 863
-#define _DEOPT_r00 864
-#define _DEOPT_r10 865
-#define _DEOPT_r20 866
-#define _DEOPT_r30 867
-#define _DICT_MERGE_r11 868
-#define _DICT_UPDATE_r11 869
-#define _DO_CALL_r01 870
-#define _DO_CALL_FUNCTION_EX_r31 871
-#define _DO_CALL_KW_r11 872
-#define _DYNAMIC_EXIT_r00 873
-#define _DYNAMIC_EXIT_r10 874
-#define _DYNAMIC_EXIT_r20 875
-#define _DYNAMIC_EXIT_r30 876
-#define _END_FOR_r10 877
-#define _END_SEND_r31 878
-#define _ERROR_POP_N_r00 879
-#define _EXIT_INIT_CHECK_r10 880
-#define _EXIT_TRACE_r00 881
-#define _EXIT_TRACE_r10 882
-#define _EXIT_TRACE_r20 883
-#define _EXIT_TRACE_r30 884
-#define _EXPAND_METHOD_r00 885
-#define _EXPAND_METHOD_KW_r11 886
-#define _FATAL_ERROR_r00 887
-#define _FATAL_ERROR_r11 888
-#define _FATAL_ERROR_r22 889
-#define _FATAL_ERROR_r33 890
-#define _FORMAT_SIMPLE_r11 891
-#define _FORMAT_WITH_SPEC_r21 892
-#define _FOR_ITER_r23 893
-#define _FOR_ITER_GEN_FRAME_r03 894
-#define _FOR_ITER_GEN_FRAME_r13 895
-#define _FOR_ITER_GEN_FRAME_r23 896
-#define _FOR_ITER_TIER_TWO_r23 897
-#define _FOR_ITER_VIRTUAL_r23 898
-#define _FOR_ITER_VIRTUAL_TIER_TWO_r23 899
-#define _GET_AITER_r11 900
-#define _GET_ANEXT_r12 901
-#define _GET_AWAITABLE_r11 902
-#define _GET_ITER_r12 903
-#define _GET_ITER_TRAD_r12 904
-#define _GET_LEN_r12 905
-#define _GUARD_3OS_ASYNC_GEN_ASEND_r03 906
-#define _GUARD_3OS_ASYNC_GEN_ASEND_r13 907
-#define _GUARD_3OS_ASYNC_GEN_ASEND_r23 908
-#define _GUARD_3OS_ASYNC_GEN_ASEND_r33 909
-#define _GUARD_BINARY_OP_EXTEND_r22 910
-#define _GUARD_BINARY_OP_EXTEND_LHS_r02 911
-#define _GUARD_BINARY_OP_EXTEND_LHS_r12 912
-#define _GUARD_BINARY_OP_EXTEND_LHS_r22 913
-#define _GUARD_BINARY_OP_EXTEND_LHS_r33 914
-#define _GUARD_BINARY_OP_EXTEND_RHS_r02 915
-#define _GUARD_BINARY_OP_EXTEND_RHS_r12 916
-#define _GUARD_BINARY_OP_EXTEND_RHS_r22 917
-#define _GUARD_BINARY_OP_EXTEND_RHS_r33 918
-#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r02 919
-#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r12 920
-#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r22 921
-#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r33 922
-#define _GUARD_BIT_IS_SET_POP_r00 923
-#define _GUARD_BIT_IS_SET_POP_r10 924
-#define _GUARD_BIT_IS_SET_POP_r21 925
-#define _GUARD_BIT_IS_SET_POP_r32 926
-#define _GUARD_BIT_IS_SET_POP_4_r00 927
-#define _GUARD_BIT_IS_SET_POP_4_r10 928
-#define _GUARD_BIT_IS_SET_POP_4_r21 929
-#define _GUARD_BIT_IS_SET_POP_4_r32 930
-#define _GUARD_BIT_IS_SET_POP_5_r00 931
-#define _GUARD_BIT_IS_SET_POP_5_r10 932
-#define _GUARD_BIT_IS_SET_POP_5_r21 933
-#define _GUARD_BIT_IS_SET_POP_5_r32 934
-#define _GUARD_BIT_IS_SET_POP_6_r00 935
-#define _GUARD_BIT_IS_SET_POP_6_r10 936
-#define _GUARD_BIT_IS_SET_POP_6_r21 937
-#define _GUARD_BIT_IS_SET_POP_6_r32 938
-#define _GUARD_BIT_IS_SET_POP_7_r00 939
-#define _GUARD_BIT_IS_SET_POP_7_r10 940
-#define _GUARD_BIT_IS_SET_POP_7_r21 941
-#define _GUARD_BIT_IS_SET_POP_7_r32 942
-#define _GUARD_BIT_IS_UNSET_POP_r00 943
-#define _GUARD_BIT_IS_UNSET_POP_r10 944
-#define _GUARD_BIT_IS_UNSET_POP_r21 945
-#define _GUARD_BIT_IS_UNSET_POP_r32 946
-#define _GUARD_BIT_IS_UNSET_POP_4_r00 947
-#define _GUARD_BIT_IS_UNSET_POP_4_r10 948
-#define _GUARD_BIT_IS_UNSET_POP_4_r21 949
-#define _GUARD_BIT_IS_UNSET_POP_4_r32 950
-#define _GUARD_BIT_IS_UNSET_POP_5_r00 951
-#define _GUARD_BIT_IS_UNSET_POP_5_r10 952
-#define _GUARD_BIT_IS_UNSET_POP_5_r21 953
-#define _GUARD_BIT_IS_UNSET_POP_5_r32 954
-#define _GUARD_BIT_IS_UNSET_POP_6_r00 955
-#define _GUARD_BIT_IS_UNSET_POP_6_r10 956
-#define _GUARD_BIT_IS_UNSET_POP_6_r21 957
-#define _GUARD_BIT_IS_UNSET_POP_6_r32 958
-#define _GUARD_BIT_IS_UNSET_POP_7_r00 959
-#define _GUARD_BIT_IS_UNSET_POP_7_r10 960
-#define _GUARD_BIT_IS_UNSET_POP_7_r21 961
-#define _GUARD_BIT_IS_UNSET_POP_7_r32 962
-#define _GUARD_CALLABLE_BUILTIN_CLASS_r00 963
-#define _GUARD_CALLABLE_BUILTIN_FAST_r00 964
-#define _GUARD_CALLABLE_BUILTIN_FAST_WITH_KEYWORDS_r00 965
-#define _GUARD_CALLABLE_BUILTIN_O_r00 966
-#define _GUARD_CALLABLE_ISINSTANCE_r03 967
-#define _GUARD_CALLABLE_ISINSTANCE_r13 968
-#define _GUARD_CALLABLE_ISINSTANCE_r23 969
-#define _GUARD_CALLABLE_ISINSTANCE_r33 970
-#define _GUARD_CALLABLE_LEN_r03 971
-#define _GUARD_CALLABLE_LEN_r13 972
-#define _GUARD_CALLABLE_LEN_r23 973
-#define _GUARD_CALLABLE_LEN_r33 974
-#define _GUARD_CALLABLE_LIST_APPEND_r03 975
-#define _GUARD_CALLABLE_LIST_APPEND_r13 976
-#define _GUARD_CALLABLE_LIST_APPEND_r23 977
-#define _GUARD_CALLABLE_LIST_APPEND_r33 978
-#define _GUARD_CALLABLE_METHOD_DESCRIPTOR_FAST_r00 979
-#define _GUARD_CALLABLE_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r00 980
-#define _GUARD_CALLABLE_METHOD_DESCRIPTOR_NOARGS_r00 981
-#define _GUARD_CALLABLE_METHOD_DESCRIPTOR_O_r00 982
-#define _GUARD_CALLABLE_STR_1_r03 983
-#define _GUARD_CALLABLE_STR_1_r13 984
-#define _GUARD_CALLABLE_STR_1_r23 985
-#define _GUARD_CALLABLE_STR_1_r33 986
-#define _GUARD_CALLABLE_TUPLE_1_r03 987
-#define _GUARD_CALLABLE_TUPLE_1_r13 988
-#define _GUARD_CALLABLE_TUPLE_1_r23 989
-#define _GUARD_CALLABLE_TUPLE_1_r33 990
-#define _GUARD_CALLABLE_TYPE_1_r03 991
-#define _GUARD_CALLABLE_TYPE_1_r13 992
-#define _GUARD_CALLABLE_TYPE_1_r23 993
-#define _GUARD_CALLABLE_TYPE_1_r33 994
-#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r00 995
-#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r11 996
-#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r22 997
-#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r33 998
-#define _GUARD_CODE_VERSION_RETURN_VALUE_r00 999
-#define _GUARD_CODE_VERSION_RETURN_VALUE_r11 1000
-#define _GUARD_CODE_VERSION_RETURN_VALUE_r22 1001
-#define _GUARD_CODE_VERSION_RETURN_VALUE_r33 1002
-#define _GUARD_CODE_VERSION_YIELD_VALUE_r00 1003
-#define _GUARD_CODE_VERSION_YIELD_VALUE_r11 1004
-#define _GUARD_CODE_VERSION_YIELD_VALUE_r22 1005
-#define _GUARD_CODE_VERSION_YIELD_VALUE_r33 1006
-#define _GUARD_CODE_VERSION__PUSH_FRAME_r00 1007
-#define _GUARD_CODE_VERSION__PUSH_FRAME_r11 1008
-#define _GUARD_CODE_VERSION__PUSH_FRAME_r22 1009
-#define _GUARD_CODE_VERSION__PUSH_FRAME_r33 1010
-#define _GUARD_DORV_NO_DICT_r01 1011
-#define _GUARD_DORV_NO_DICT_r11 1012
-#define _GUARD_DORV_NO_DICT_r22 1013
-#define _GUARD_DORV_NO_DICT_r33 1014
-#define _GUARD_GLOBALS_VERSION_r00 1015
-#define _GUARD_GLOBALS_VERSION_r11 1016
-#define _GUARD_GLOBALS_VERSION_r22 1017
-#define _GUARD_GLOBALS_VERSION_r33 1018
-#define _GUARD_IP_RETURN_GENERATOR_r00 1019
-#define _GUARD_IP_RETURN_GENERATOR_r11 1020
-#define _GUARD_IP_RETURN_GENERATOR_r22 1021
-#define _GUARD_IP_RETURN_GENERATOR_r33 1022
-#define _GUARD_IP_RETURN_VALUE_r00 1023
-#define _GUARD_IP_RETURN_VALUE_r11 1024
-#define _GUARD_IP_RETURN_VALUE_r22 1025
-#define _GUARD_IP_RETURN_VALUE_r33 1026
-#define _GUARD_IP_YIELD_VALUE_r00 1027
-#define _GUARD_IP_YIELD_VALUE_r11 1028
-#define _GUARD_IP_YIELD_VALUE_r22 1029
-#define _GUARD_IP_YIELD_VALUE_r33 1030
-#define _GUARD_IP__PUSH_FRAME_r00 1031
-#define _GUARD_IP__PUSH_FRAME_r11 1032
-#define _GUARD_IP__PUSH_FRAME_r22 1033
-#define _GUARD_IP__PUSH_FRAME_r33 1034
-#define _GUARD_IS_FALSE_POP_r00 1035
-#define _GUARD_IS_FALSE_POP_r10 1036
-#define _GUARD_IS_FALSE_POP_r21 1037
-#define _GUARD_IS_FALSE_POP_r32 1038
-#define _GUARD_IS_NONE_POP_r00 1039
-#define _GUARD_IS_NONE_POP_r10 1040
-#define _GUARD_IS_NONE_POP_r21 1041
-#define _GUARD_IS_NONE_POP_r32 1042
-#define _GUARD_IS_NOT_NONE_POP_r10 1043
-#define _GUARD_IS_TRUE_POP_r00 1044
-#define _GUARD_IS_TRUE_POP_r10 1045
-#define _GUARD_IS_TRUE_POP_r21 1046
-#define _GUARD_IS_TRUE_POP_r32 1047
-#define _GUARD_ITERATOR_r01 1048
-#define _GUARD_ITERATOR_r11 1049
-#define _GUARD_ITERATOR_r22 1050
-#define _GUARD_ITERATOR_r33 1051
-#define _GUARD_ITER_VIRTUAL_r01 1052
-#define _GUARD_ITER_VIRTUAL_r11 1053
-#define _GUARD_ITER_VIRTUAL_r22 1054
-#define _GUARD_ITER_VIRTUAL_r33 1055
-#define _GUARD_KEYS_VERSION_r01 1056
-#define _GUARD_KEYS_VERSION_r11 1057
-#define _GUARD_KEYS_VERSION_r22 1058
-#define _GUARD_KEYS_VERSION_r33 1059
-#define _GUARD_LOAD_SUPER_ATTR_METHOD_r03 1060
-#define _GUARD_LOAD_SUPER_ATTR_METHOD_r13 1061
-#define _GUARD_LOAD_SUPER_ATTR_METHOD_r23 1062
-#define _GUARD_LOAD_SUPER_ATTR_METHOD_r33 1063
-#define _GUARD_NOS_COMPACT_ASCII_r02 1064
-#define _GUARD_NOS_COMPACT_ASCII_r12 1065
-#define _GUARD_NOS_COMPACT_ASCII_r22 1066
-#define _GUARD_NOS_COMPACT_ASCII_r33 1067
-#define _GUARD_NOS_DICT_STORE_SUBSCRIPT_r03 1068
-#define _GUARD_NOS_DICT_STORE_SUBSCRIPT_r13 1069
-#define _GUARD_NOS_DICT_STORE_SUBSCRIPT_r23 1070
-#define _GUARD_NOS_DICT_STORE_SUBSCRIPT_r33 1071
-#define _GUARD_NOS_DICT_SUBSCRIPT_r02 1072
-#define _GUARD_NOS_DICT_SUBSCRIPT_r12 1073
-#define _GUARD_NOS_DICT_SUBSCRIPT_r22 1074
-#define _GUARD_NOS_DICT_SUBSCRIPT_r33 1075
-#define _GUARD_NOS_FLOAT_r02 1076
-#define _GUARD_NOS_FLOAT_r12 1077
-#define _GUARD_NOS_FLOAT_r22 1078
-#define _GUARD_NOS_FLOAT_r33 1079
-#define _GUARD_NOS_INT_r02 1080
-#define _GUARD_NOS_INT_r12 1081
-#define _GUARD_NOS_INT_r22 1082
-#define _GUARD_NOS_INT_r33 1083
-#define _GUARD_NOS_ITER_VIRTUAL_r02 1084
-#define _GUARD_NOS_ITER_VIRTUAL_r12 1085
-#define _GUARD_NOS_ITER_VIRTUAL_r22 1086
-#define _GUARD_NOS_ITER_VIRTUAL_r33 1087
-#define _GUARD_NOS_LIST_r02 1088
-#define _GUARD_NOS_LIST_r12 1089
-#define _GUARD_NOS_LIST_r22 1090
-#define _GUARD_NOS_LIST_r33 1091
-#define _GUARD_NOS_NOT_NULL_r02 1092
-#define _GUARD_NOS_NOT_NULL_r12 1093
-#define _GUARD_NOS_NOT_NULL_r22 1094
-#define _GUARD_NOS_NOT_NULL_r33 1095
-#define _GUARD_NOS_NULL_r02 1096
-#define _GUARD_NOS_NULL_r12 1097
-#define _GUARD_NOS_NULL_r22 1098
-#define _GUARD_NOS_NULL_r33 1099
-#define _GUARD_NOS_OVERFLOWED_r02 1100
-#define _GUARD_NOS_OVERFLOWED_r12 1101
-#define _GUARD_NOS_OVERFLOWED_r22 1102
-#define _GUARD_NOS_OVERFLOWED_r33 1103
-#define _GUARD_NOS_TUPLE_r02 1104
-#define _GUARD_NOS_TUPLE_r12 1105
-#define _GUARD_NOS_TUPLE_r22 1106
-#define _GUARD_NOS_TUPLE_r33 1107
-#define _GUARD_NOS_TYPE_VERSION_r02 1108
-#define _GUARD_NOS_TYPE_VERSION_r12 1109
-#define _GUARD_NOS_TYPE_VERSION_r22 1110
-#define _GUARD_NOS_TYPE_VERSION_r33 1111
-#define _GUARD_NOS_UNICODE_r02 1112
-#define _GUARD_NOS_UNICODE_r12 1113
-#define _GUARD_NOS_UNICODE_r22 1114
-#define _GUARD_NOS_UNICODE_r33 1115
-#define _GUARD_NOT_EXHAUSTED_LIST_r02 1116
-#define _GUARD_NOT_EXHAUSTED_LIST_r12 1117
-#define _GUARD_NOT_EXHAUSTED_LIST_r22 1118
-#define _GUARD_NOT_EXHAUSTED_LIST_r33 1119
-#define _GUARD_NOT_EXHAUSTED_RANGE_r02 1120
-#define _GUARD_NOT_EXHAUSTED_RANGE_r12 1121
-#define _GUARD_NOT_EXHAUSTED_RANGE_r22 1122
-#define _GUARD_NOT_EXHAUSTED_RANGE_r33 1123
-#define _GUARD_NOT_EXHAUSTED_TUPLE_r02 1124
-#define _GUARD_NOT_EXHAUSTED_TUPLE_r12 1125
-#define _GUARD_NOT_EXHAUSTED_TUPLE_r22 1126
-#define _GUARD_NOT_EXHAUSTED_TUPLE_r33 1127
-#define _GUARD_THIRD_NULL_r03 1128
-#define _GUARD_THIRD_NULL_r13 1129
-#define _GUARD_THIRD_NULL_r23 1130
-#define _GUARD_THIRD_NULL_r33 1131
-#define _GUARD_TOS_ANY_DICT_r01 1132
-#define _GUARD_TOS_ANY_DICT_r11 1133
-#define _GUARD_TOS_ANY_DICT_r22 1134
-#define _GUARD_TOS_ANY_DICT_r33 1135
-#define _GUARD_TOS_ANY_SET_r01 1136
-#define _GUARD_TOS_ANY_SET_r11 1137
-#define _GUARD_TOS_ANY_SET_r22 1138
-#define _GUARD_TOS_ANY_SET_r33 1139
-#define _GUARD_TOS_DICT_r01 1140
-#define _GUARD_TOS_DICT_r11 1141
-#define _GUARD_TOS_DICT_r22 1142
-#define _GUARD_TOS_DICT_r33 1143
-#define _GUARD_TOS_FLOAT_r01 1144
-#define _GUARD_TOS_FLOAT_r11 1145
-#define _GUARD_TOS_FLOAT_r22 1146
-#define _GUARD_TOS_FLOAT_r33 1147
-#define _GUARD_TOS_FROZENDICT_r01 1148
-#define _GUARD_TOS_FROZENDICT_r11 1149
-#define _GUARD_TOS_FROZENDICT_r22 1150
-#define _GUARD_TOS_FROZENDICT_r33 1151
-#define _GUARD_TOS_FROZENSET_r01 1152
-#define _GUARD_TOS_FROZENSET_r11 1153
-#define _GUARD_TOS_FROZENSET_r22 1154
-#define _GUARD_TOS_FROZENSET_r33 1155
-#define _GUARD_TOS_INT_r01 1156
-#define _GUARD_TOS_INT_r11 1157
-#define _GUARD_TOS_INT_r22 1158
-#define _GUARD_TOS_INT_r33 1159
-#define _GUARD_TOS_IS_NONE_r01 1160
-#define _GUARD_TOS_IS_NONE_r11 1161
-#define _GUARD_TOS_IS_NONE_r22 1162
-#define _GUARD_TOS_IS_NONE_r33 1163
-#define _GUARD_TOS_LIST_r01 1164
-#define _GUARD_TOS_LIST_r11 1165
-#define _GUARD_TOS_LIST_r22 1166
-#define _GUARD_TOS_LIST_r33 1167
-#define _GUARD_TOS_NOT_NULL_r01 1168
-#define _GUARD_TOS_NOT_NULL_r11 1169
-#define _GUARD_TOS_NOT_NULL_r22 1170
-#define _GUARD_TOS_NOT_NULL_r33 1171
-#define _GUARD_TOS_OVERFLOWED_r01 1172
-#define _GUARD_TOS_OVERFLOWED_r11 1173
-#define _GUARD_TOS_OVERFLOWED_r22 1174
-#define _GUARD_TOS_OVERFLOWED_r33 1175
-#define _GUARD_TOS_SET_r01 1176
-#define _GUARD_TOS_SET_r11 1177
-#define _GUARD_TOS_SET_r22 1178
-#define _GUARD_TOS_SET_r33 1179
-#define _GUARD_TOS_SLICE_r01 1180
-#define _GUARD_TOS_SLICE_r11 1181
-#define _GUARD_TOS_SLICE_r22 1182
-#define _GUARD_TOS_SLICE_r33 1183
-#define _GUARD_TOS_TUPLE_r01 1184
-#define _GUARD_TOS_TUPLE_r11 1185
-#define _GUARD_TOS_TUPLE_r22 1186
-#define _GUARD_TOS_TUPLE_r33 1187
-#define _GUARD_TOS_UNICODE_r01 1188
-#define _GUARD_TOS_UNICODE_r11 1189
-#define _GUARD_TOS_UNICODE_r22 1190
-#define _GUARD_TOS_UNICODE_r33 1191
-#define _GUARD_TYPE_r01 1192
-#define _GUARD_TYPE_r11 1193
-#define _GUARD_TYPE_r22 1194
-#define _GUARD_TYPE_r33 1195
-#define _GUARD_TYPE_ITER_r02 1196
-#define _GUARD_TYPE_ITER_r12 1197
-#define _GUARD_TYPE_ITER_r22 1198
-#define _GUARD_TYPE_ITER_r33 1199
-#define _GUARD_TYPE_VERSION_r01 1200
-#define _GUARD_TYPE_VERSION_r11 1201
-#define _GUARD_TYPE_VERSION_r22 1202
-#define _GUARD_TYPE_VERSION_r33 1203
-#define _GUARD_TYPE_VERSION_LOCKED_r01 1204
-#define _GUARD_TYPE_VERSION_LOCKED_r11 1205
-#define _GUARD_TYPE_VERSION_LOCKED_r22 1206
-#define _GUARD_TYPE_VERSION_LOCKED_r33 1207
-#define _HANDLE_PENDING_AND_DEOPT_r00 1208
-#define _HANDLE_PENDING_AND_DEOPT_r10 1209
-#define _HANDLE_PENDING_AND_DEOPT_r20 1210
-#define _HANDLE_PENDING_AND_DEOPT_r30 1211
-#define _IMPORT_FROM_r12 1212
-#define _IMPORT_NAME_r21 1213
-#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS_r00 1214
-#define _INIT_CALL_PY_EXACT_ARGS_r01 1215
-#define _INIT_CALL_PY_EXACT_ARGS_0_r01 1216
-#define _INIT_CALL_PY_EXACT_ARGS_1_r01 1217
-#define _INIT_CALL_PY_EXACT_ARGS_2_r01 1218
-#define _INIT_CALL_PY_EXACT_ARGS_3_r01 1219
-#define _INIT_CALL_PY_EXACT_ARGS_4_r01 1220
-#define _INSERT_NULL_r10 1221
-#define _INSTRUMENTED_FOR_ITER_r23 1222
-#define _INSTRUMENTED_INSTRUCTION_r00 1223
-#define _INSTRUMENTED_JUMP_FORWARD_r00 1224
-#define _INSTRUMENTED_JUMP_FORWARD_r11 1225
-#define _INSTRUMENTED_JUMP_FORWARD_r22 1226
-#define _INSTRUMENTED_JUMP_FORWARD_r33 1227
-#define _INSTRUMENTED_LINE_r00 1228
-#define _INSTRUMENTED_NOT_TAKEN_r00 1229
-#define _INSTRUMENTED_NOT_TAKEN_r11 1230
-#define _INSTRUMENTED_NOT_TAKEN_r22 1231
-#define _INSTRUMENTED_NOT_TAKEN_r33 1232
-#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r00 1233
-#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r10 1234
-#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r21 1235
-#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r32 1236
-#define _INSTRUMENTED_POP_JUMP_IF_NONE_r10 1237
-#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE_r10 1238
-#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r00 1239
-#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r10 1240
-#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r21 1241
-#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r32 1242
-#define _IS_NONE_r11 1243
-#define _IS_OP_r03 1244
-#define _IS_OP_r13 1245
-#define _IS_OP_r23 1246
-#define _ITER_CHECK_LIST_r02 1247
-#define _ITER_CHECK_LIST_r12 1248
-#define _ITER_CHECK_LIST_r22 1249
-#define _ITER_CHECK_LIST_r33 1250
-#define _ITER_CHECK_RANGE_r02 1251
-#define _ITER_CHECK_RANGE_r12 1252
-#define _ITER_CHECK_RANGE_r22 1253
-#define _ITER_CHECK_RANGE_r33 1254
-#define _ITER_CHECK_TUPLE_r02 1255
-#define _ITER_CHECK_TUPLE_r12 1256
-#define _ITER_CHECK_TUPLE_r22 1257
-#define _ITER_CHECK_TUPLE_r33 1258
-#define _ITER_JUMP_LIST_r02 1259
-#define _ITER_JUMP_LIST_r12 1260
-#define _ITER_JUMP_LIST_r22 1261
-#define _ITER_JUMP_LIST_r33 1262
-#define _ITER_JUMP_RANGE_r02 1263
-#define _ITER_JUMP_RANGE_r12 1264
-#define _ITER_JUMP_RANGE_r22 1265
-#define _ITER_JUMP_RANGE_r33 1266
-#define _ITER_JUMP_TUPLE_r02 1267
-#define _ITER_JUMP_TUPLE_r12 1268
-#define _ITER_JUMP_TUPLE_r22 1269
-#define _ITER_JUMP_TUPLE_r33 1270
-#define _ITER_NEXT_INLINE_r23 1271
-#define _ITER_NEXT_LIST_r23 1272
-#define _ITER_NEXT_LIST_TIER_TWO_r23 1273
-#define _ITER_NEXT_RANGE_r03 1274
-#define _ITER_NEXT_RANGE_r13 1275
-#define _ITER_NEXT_RANGE_r23 1276
-#define _ITER_NEXT_TUPLE_r03 1277
-#define _ITER_NEXT_TUPLE_r13 1278
-#define _ITER_NEXT_TUPLE_r23 1279
-#define _JUMP_BACKWARD_NO_INTERRUPT_r00 1280
-#define _JUMP_BACKWARD_NO_INTERRUPT_r11 1281
-#define _JUMP_BACKWARD_NO_INTERRUPT_r22 1282
-#define _JUMP_BACKWARD_NO_INTERRUPT_r33 1283
-#define _JUMP_TO_TOP_r00 1284
-#define _LIST_APPEND_r10 1285
-#define _LIST_EXTEND_r11 1286
-#define _LOAD_ATTR_r10 1287
-#define _LOAD_ATTR_CLASS_r11 1288
-#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_FRAME_r11 1289
-#define _LOAD_ATTR_INSTANCE_VALUE_r02 1290
-#define _LOAD_ATTR_INSTANCE_VALUE_r12 1291
-#define _LOAD_ATTR_INSTANCE_VALUE_r23 1292
-#define _LOAD_ATTR_METHOD_LAZY_DICT_r02 1293
-#define _LOAD_ATTR_METHOD_LAZY_DICT_r12 1294
-#define _LOAD_ATTR_METHOD_LAZY_DICT_r23 1295
-#define _LOAD_ATTR_METHOD_NO_DICT_r02 1296
-#define _LOAD_ATTR_METHOD_NO_DICT_r12 1297
-#define _LOAD_ATTR_METHOD_NO_DICT_r23 1298
-#define _LOAD_ATTR_METHOD_WITH_VALUES_r02 1299
-#define _LOAD_ATTR_METHOD_WITH_VALUES_r12 1300
-#define _LOAD_ATTR_METHOD_WITH_VALUES_r23 1301
-#define _LOAD_ATTR_MODULE_r12 1302
-#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT_r11 1303
-#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES_r11 1304
-#define _LOAD_ATTR_PROPERTY_FRAME_r01 1305
-#define _LOAD_ATTR_PROPERTY_FRAME_r11 1306
-#define _LOAD_ATTR_PROPERTY_FRAME_r22 1307
-#define _LOAD_ATTR_PROPERTY_FRAME_r33 1308
-#define _LOAD_ATTR_SLOT_r02 1309
-#define _LOAD_ATTR_SLOT_r12 1310
-#define _LOAD_ATTR_SLOT_r23 1311
-#define _LOAD_ATTR_WITH_HINT_r12 1312
-#define _LOAD_BUILD_CLASS_r01 1313
-#define _LOAD_BYTECODE_r00 1314
-#define _LOAD_COMMON_CONSTANT_r01 1315
-#define _LOAD_COMMON_CONSTANT_r12 1316
-#define _LOAD_COMMON_CONSTANT_r23 1317
-#define _LOAD_CONST_r01 1318
-#define _LOAD_CONST_r12 1319
-#define _LOAD_CONST_r23 1320
-#define _LOAD_CONST_INLINE_r01 1321
-#define _LOAD_CONST_INLINE_r12 1322
-#define _LOAD_CONST_INLINE_r23 1323
-#define _LOAD_CONST_INLINE_BORROW_r01 1324
-#define _LOAD_CONST_INLINE_BORROW_r12 1325
-#define _LOAD_CONST_INLINE_BORROW_r23 1326
-#define _LOAD_DEREF_r01 1327
-#define _LOAD_FAST_r01 1328
-#define _LOAD_FAST_r12 1329
-#define _LOAD_FAST_r23 1330
-#define _LOAD_FAST_0_r01 1331
-#define _LOAD_FAST_0_r12 1332
-#define _LOAD_FAST_0_r23 1333
-#define _LOAD_FAST_1_r01 1334
-#define _LOAD_FAST_1_r12 1335
-#define _LOAD_FAST_1_r23 1336
-#define _LOAD_FAST_2_r01 1337
-#define _LOAD_FAST_2_r12 1338
-#define _LOAD_FAST_2_r23 1339
-#define _LOAD_FAST_3_r01 1340
-#define _LOAD_FAST_3_r12 1341
-#define _LOAD_FAST_3_r23 1342
-#define _LOAD_FAST_4_r01 1343
-#define _LOAD_FAST_4_r12 1344
-#define _LOAD_FAST_4_r23 1345
-#define _LOAD_FAST_5_r01 1346
-#define _LOAD_FAST_5_r12 1347
-#define _LOAD_FAST_5_r23 1348
-#define _LOAD_FAST_6_r01 1349
-#define _LOAD_FAST_6_r12 1350
-#define _LOAD_FAST_6_r23 1351
-#define _LOAD_FAST_7_r01 1352
-#define _LOAD_FAST_7_r12 1353
-#define _LOAD_FAST_7_r23 1354
-#define _LOAD_FAST_AND_CLEAR_r01 1355
-#define _LOAD_FAST_AND_CLEAR_r12 1356
-#define _LOAD_FAST_AND_CLEAR_r23 1357
-#define _LOAD_FAST_BORROW_r01 1358
-#define _LOAD_FAST_BORROW_r12 1359
-#define _LOAD_FAST_BORROW_r23 1360
-#define _LOAD_FAST_BORROW_0_r01 1361
-#define _LOAD_FAST_BORROW_0_r12 1362
-#define _LOAD_FAST_BORROW_0_r23 1363
-#define _LOAD_FAST_BORROW_1_r01 1364
-#define _LOAD_FAST_BORROW_1_r12 1365
-#define _LOAD_FAST_BORROW_1_r23 1366
-#define _LOAD_FAST_BORROW_2_r01 1367
-#define _LOAD_FAST_BORROW_2_r12 1368
-#define _LOAD_FAST_BORROW_2_r23 1369
-#define _LOAD_FAST_BORROW_3_r01 1370
-#define _LOAD_FAST_BORROW_3_r12 1371
-#define _LOAD_FAST_BORROW_3_r23 1372
-#define _LOAD_FAST_BORROW_4_r01 1373
-#define _LOAD_FAST_BORROW_4_r12 1374
-#define _LOAD_FAST_BORROW_4_r23 1375
-#define _LOAD_FAST_BORROW_5_r01 1376
-#define _LOAD_FAST_BORROW_5_r12 1377
-#define _LOAD_FAST_BORROW_5_r23 1378
-#define _LOAD_FAST_BORROW_6_r01 1379
-#define _LOAD_FAST_BORROW_6_r12 1380
-#define _LOAD_FAST_BORROW_6_r23 1381
-#define _LOAD_FAST_BORROW_7_r01 1382
-#define _LOAD_FAST_BORROW_7_r12 1383
-#define _LOAD_FAST_BORROW_7_r23 1384
-#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r02 1385
-#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r13 1386
-#define _LOAD_FAST_CHECK_r01 1387
-#define _LOAD_FAST_CHECK_r12 1388
-#define _LOAD_FAST_CHECK_r23 1389
-#define _LOAD_FAST_LOAD_FAST_r02 1390
-#define _LOAD_FAST_LOAD_FAST_r13 1391
-#define _LOAD_FROM_DICT_OR_DEREF_r11 1392
-#define _LOAD_FROM_DICT_OR_GLOBALS_r11 1393
-#define _LOAD_GLOBAL_r00 1394
-#define _LOAD_GLOBAL_BUILTINS_r01 1395
-#define _LOAD_GLOBAL_MODULE_r01 1396
-#define _LOAD_LOCALS_r01 1397
-#define _LOAD_LOCALS_r12 1398
-#define _LOAD_LOCALS_r23 1399
-#define _LOAD_NAME_r01 1400
-#define _LOAD_SMALL_INT_r01 1401
-#define _LOAD_SMALL_INT_r12 1402
-#define _LOAD_SMALL_INT_r23 1403
-#define _LOAD_SMALL_INT_0_r01 1404
-#define _LOAD_SMALL_INT_0_r12 1405
-#define _LOAD_SMALL_INT_0_r23 1406
-#define _LOAD_SMALL_INT_1_r01 1407
-#define _LOAD_SMALL_INT_1_r12 1408
-#define _LOAD_SMALL_INT_1_r23 1409
-#define _LOAD_SMALL_INT_2_r01 1410
-#define _LOAD_SMALL_INT_2_r12 1411
-#define _LOAD_SMALL_INT_2_r23 1412
-#define _LOAD_SMALL_INT_3_r01 1413
-#define _LOAD_SMALL_INT_3_r12 1414
-#define _LOAD_SMALL_INT_3_r23 1415
-#define _LOAD_SPECIAL_r00 1416
-#define _LOAD_SUPER_ATTR_ATTR_r31 1417
-#define _LOAD_SUPER_ATTR_METHOD_r32 1418
-#define _LOCK_OBJECT_r01 1419
-#define _LOCK_OBJECT_r11 1420
-#define _LOCK_OBJECT_r22 1421
-#define _LOCK_OBJECT_r33 1422
-#define _MAKE_CALLARGS_A_TUPLE_r33 1423
-#define _MAKE_CELL_r00 1424
-#define _MAKE_FUNCTION_r12 1425
-#define _MAKE_HEAP_SAFE_r01 1426
-#define _MAKE_HEAP_SAFE_r11 1427
-#define _MAKE_HEAP_SAFE_r22 1428
-#define _MAKE_HEAP_SAFE_r33 1429
-#define _MAKE_WARM_r00 1430
-#define _MAKE_WARM_r11 1431
-#define _MAKE_WARM_r22 1432
-#define _MAKE_WARM_r33 1433
-#define _MAP_ADD_r20 1434
-#define _MATCH_CLASS_r33 1435
-#define _MATCH_KEYS_r23 1436
-#define _MATCH_MAPPING_r02 1437
-#define _MATCH_MAPPING_r12 1438
-#define _MATCH_MAPPING_r23 1439
-#define _MATCH_SEQUENCE_r02 1440
-#define _MATCH_SEQUENCE_r12 1441
-#define _MATCH_SEQUENCE_r23 1442
-#define _MAYBE_EXPAND_METHOD_r00 1443
-#define _MAYBE_EXPAND_METHOD_KW_r11 1444
-#define _MONITOR_CALL_r00 1445
-#define _MONITOR_CALL_KW_r11 1446
-#define _MONITOR_JUMP_BACKWARD_r00 1447
-#define _MONITOR_JUMP_BACKWARD_r11 1448
-#define _MONITOR_JUMP_BACKWARD_r22 1449
-#define _MONITOR_JUMP_BACKWARD_r33 1450
-#define _MONITOR_RESUME_r00 1451
-#define _NOP_r00 1452
-#define _NOP_r11 1453
-#define _NOP_r22 1454
-#define _NOP_r33 1455
-#define _POP_EXCEPT_r10 1456
-#define _POP_ITER_r20 1457
-#define _POP_JUMP_IF_FALSE_r00 1458
-#define _POP_JUMP_IF_FALSE_r10 1459
-#define _POP_JUMP_IF_FALSE_r21 1460
-#define _POP_JUMP_IF_FALSE_r32 1461
-#define _POP_JUMP_IF_TRUE_r00 1462
-#define _POP_JUMP_IF_TRUE_r10 1463
-#define _POP_JUMP_IF_TRUE_r21 1464
-#define _POP_JUMP_IF_TRUE_r32 1465
-#define _POP_TOP_r10 1466
-#define _POP_TOP_FLOAT_r00 1467
-#define _POP_TOP_FLOAT_r10 1468
-#define _POP_TOP_FLOAT_r21 1469
-#define _POP_TOP_FLOAT_r32 1470
-#define _POP_TOP_INT_r00 1471
-#define _POP_TOP_INT_r10 1472
-#define _POP_TOP_INT_r21 1473
-#define _POP_TOP_INT_r32 1474
-#define _POP_TOP_NOP_r00 1475
-#define _POP_TOP_NOP_r10 1476
-#define _POP_TOP_NOP_r21 1477
-#define _POP_TOP_NOP_r32 1478
-#define _POP_TOP_OPARG_r00 1479
-#define _POP_TOP_UNICODE_r00 1480
-#define _POP_TOP_UNICODE_r10 1481
-#define _POP_TOP_UNICODE_r21 1482
-#define _POP_TOP_UNICODE_r32 1483
-#define _PUSH_EXC_INFO_r02 1484
-#define _PUSH_EXC_INFO_r12 1485
-#define _PUSH_EXC_INFO_r23 1486
-#define _PUSH_FRAME_r10 1487
-#define _PUSH_NULL_r01 1488
-#define _PUSH_NULL_r12 1489
-#define _PUSH_NULL_r23 1490
-#define _PUSH_NULL_CONDITIONAL_r00 1491
-#define _PUSH_TAGGED_ZERO_r01 1492
-#define _PUSH_TAGGED_ZERO_r12 1493
-#define _PUSH_TAGGED_ZERO_r23 1494
-#define _PY_FRAME_EX_r31 1495
-#define _PY_FRAME_GENERAL_r01 1496
-#define _PY_FRAME_KW_r11 1497
-#define _REPLACE_WITH_TRUE_r02 1498
-#define _REPLACE_WITH_TRUE_r12 1499
-#define _REPLACE_WITH_TRUE_r23 1500
-#define _RESUME_CHECK_r00 1501
-#define _RESUME_CHECK_r11 1502
-#define _RESUME_CHECK_r22 1503
-#define _RESUME_CHECK_r33 1504
-#define _RETURN_GENERATOR_r01 1505
-#define _RETURN_VALUE_r11 1506
-#define _RROT_3_r03 1507
-#define _RROT_3_r13 1508
-#define _RROT_3_r23 1509
-#define _RROT_3_r33 1510
-#define _SAVE_RETURN_OFFSET_r00 1511
-#define _SAVE_RETURN_OFFSET_r11 1512
-#define _SAVE_RETURN_OFFSET_r22 1513
-#define _SAVE_RETURN_OFFSET_r33 1514
-#define _SEND_ASYNC_GEN_r33 1515
-#define _SEND_ASYNC_GEN_TIER_TWO_r33 1516
-#define _SEND_GEN_FRAME_r33 1517
-#define _SEND_VIRTUAL_r33 1518
-#define _SEND_VIRTUAL_TIER_TWO_r03 1519
-#define _SEND_VIRTUAL_TIER_TWO_r13 1520
-#define _SEND_VIRTUAL_TIER_TWO_r23 1521
-#define _SEND_VIRTUAL_TIER_TWO_r33 1522
-#define _SETUP_ANNOTATIONS_r00 1523
-#define _SET_ADD_r10 1524
-#define _SET_FUNCTION_ATTRIBUTE_r01 1525
-#define _SET_FUNCTION_ATTRIBUTE_r11 1526
-#define _SET_FUNCTION_ATTRIBUTE_r21 1527
-#define _SET_FUNCTION_ATTRIBUTE_r32 1528
-#define _SET_IP_r00 1529
-#define _SET_IP_r11 1530
-#define _SET_IP_r22 1531
-#define _SET_IP_r33 1532
-#define _SET_UPDATE_r11 1533
-#define _SPILL_OR_RELOAD_r01 1534
-#define _SPILL_OR_RELOAD_r02 1535
-#define _SPILL_OR_RELOAD_r03 1536
-#define _SPILL_OR_RELOAD_r10 1537
-#define _SPILL_OR_RELOAD_r12 1538
-#define _SPILL_OR_RELOAD_r13 1539
-#define _SPILL_OR_RELOAD_r20 1540
-#define _SPILL_OR_RELOAD_r21 1541
-#define _SPILL_OR_RELOAD_r23 1542
-#define _SPILL_OR_RELOAD_r30 1543
-#define _SPILL_OR_RELOAD_r31 1544
-#define _SPILL_OR_RELOAD_r32 1545
-#define _START_EXECUTOR_r00 1546
-#define _STORE_ATTR_r20 1547
-#define _STORE_ATTR_INSTANCE_VALUE_r21 1548
-#define _STORE_ATTR_SLOT_r21 1549
-#define _STORE_ATTR_WITH_HINT_r21 1550
-#define _STORE_DEREF_r10 1551
-#define _STORE_FAST_LOAD_FAST_r11 1552
-#define _STORE_FAST_STORE_FAST_r20 1553
-#define _STORE_GLOBAL_r10 1554
-#define _STORE_NAME_r10 1555
-#define _STORE_SLICE_r30 1556
-#define _STORE_SUBSCR_r30 1557
-#define _STORE_SUBSCR_DICT_r31 1558
-#define _STORE_SUBSCR_DICT_KNOWN_HASH_r31 1559
-#define _STORE_SUBSCR_LIST_INT_r32 1560
-#define _SWAP_r11 1561
-#define _SWAP_2_r02 1562
-#define _SWAP_2_r12 1563
-#define _SWAP_2_r22 1564
-#define _SWAP_2_r33 1565
-#define _SWAP_3_r03 1566
-#define _SWAP_3_r13 1567
-#define _SWAP_3_r23 1568
-#define _SWAP_3_r33 1569
-#define _SWAP_FAST_r01 1570
-#define _SWAP_FAST_r11 1571
-#define _SWAP_FAST_r22 1572
-#define _SWAP_FAST_r33 1573
-#define _SWAP_FAST_0_r01 1574
-#define _SWAP_FAST_0_r11 1575
-#define _SWAP_FAST_0_r22 1576
-#define _SWAP_FAST_0_r33 1577
-#define _SWAP_FAST_1_r01 1578
-#define _SWAP_FAST_1_r11 1579
-#define _SWAP_FAST_1_r22 1580
-#define _SWAP_FAST_1_r33 1581
-#define _SWAP_FAST_2_r01 1582
-#define _SWAP_FAST_2_r11 1583
-#define _SWAP_FAST_2_r22 1584
-#define _SWAP_FAST_2_r33 1585
-#define _SWAP_FAST_3_r01 1586
-#define _SWAP_FAST_3_r11 1587
-#define _SWAP_FAST_3_r22 1588
-#define _SWAP_FAST_3_r33 1589
-#define _SWAP_FAST_4_r01 1590
-#define _SWAP_FAST_4_r11 1591
-#define _SWAP_FAST_4_r22 1592
-#define _SWAP_FAST_4_r33 1593
-#define _SWAP_FAST_5_r01 1594
-#define _SWAP_FAST_5_r11 1595
-#define _SWAP_FAST_5_r22 1596
-#define _SWAP_FAST_5_r33 1597
-#define _SWAP_FAST_6_r01 1598
-#define _SWAP_FAST_6_r11 1599
-#define _SWAP_FAST_6_r22 1600
-#define _SWAP_FAST_6_r33 1601
-#define _SWAP_FAST_7_r01 1602
-#define _SWAP_FAST_7_r11 1603
-#define _SWAP_FAST_7_r22 1604
-#define _SWAP_FAST_7_r33 1605
-#define _TIER2_RESUME_CHECK_r00 1606
-#define _TIER2_RESUME_CHECK_r11 1607
-#define _TIER2_RESUME_CHECK_r22 1608
-#define _TIER2_RESUME_CHECK_r33 1609
-#define _TO_BOOL_r11 1610
-#define _TO_BOOL_BOOL_r01 1611
-#define _TO_BOOL_BOOL_r11 1612
-#define _TO_BOOL_BOOL_r22 1613
-#define _TO_BOOL_BOOL_r33 1614
-#define _TO_BOOL_INT_r02 1615
-#define _TO_BOOL_INT_r12 1616
-#define _TO_BOOL_INT_r23 1617
-#define _TO_BOOL_LIST_r02 1618
-#define _TO_BOOL_LIST_r12 1619
-#define _TO_BOOL_LIST_r23 1620
-#define _TO_BOOL_NONE_r01 1621
-#define _TO_BOOL_NONE_r11 1622
-#define _TO_BOOL_NONE_r22 1623
-#define _TO_BOOL_NONE_r33 1624
-#define _TO_BOOL_STR_r02 1625
-#define _TO_BOOL_STR_r12 1626
-#define _TO_BOOL_STR_r23 1627
-#define _TRACE_RECORD_r00 1628
-#define _UNARY_INVERT_r12 1629
-#define _UNARY_NEGATIVE_r12 1630
-#define _UNARY_NEGATIVE_FLOAT_INPLACE_r02 1631
-#define _UNARY_NEGATIVE_FLOAT_INPLACE_r12 1632
-#define _UNARY_NEGATIVE_FLOAT_INPLACE_r23 1633
-#define _UNARY_NOT_r01 1634
-#define _UNARY_NOT_r11 1635
-#define _UNARY_NOT_r22 1636
-#define _UNARY_NOT_r33 1637
-#define _UNPACK_EX_r10 1638
-#define _UNPACK_SEQUENCE_r10 1639
-#define _UNPACK_SEQUENCE_LIST_r10 1640
-#define _UNPACK_SEQUENCE_TUPLE_r10 1641
-#define _UNPACK_SEQUENCE_TWO_TUPLE_r12 1642
-#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r03 1643
-#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r13 1644
-#define _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10 1645
-#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r02 1646
-#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r12 1647
-#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r23 1648
-#define _WITH_EXCEPT_START_r33 1649
-#define _YIELD_VALUE_r11 1650
-#define MAX_UOP_REGS_ID 1650
+#define _YIELD_VALUE 652
+#define MAX_UOP_ID 652
+#define _ALLOCATE_OBJECT_r00 653
+#define _BINARY_OP_r23 654
+#define _BINARY_OP_ADD_FLOAT_r03 655
+#define _BINARY_OP_ADD_FLOAT_r13 656
+#define _BINARY_OP_ADD_FLOAT_r23 657
+#define _BINARY_OP_ADD_FLOAT_INPLACE_r03 658
+#define _BINARY_OP_ADD_FLOAT_INPLACE_r13 659
+#define _BINARY_OP_ADD_FLOAT_INPLACE_r23 660
+#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03 661
+#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13 662
+#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23 663
+#define _BINARY_OP_ADD_INT_r03 664
+#define _BINARY_OP_ADD_INT_r13 665
+#define _BINARY_OP_ADD_INT_r23 666
+#define _BINARY_OP_ADD_INT_INPLACE_r03 667
+#define _BINARY_OP_ADD_INT_INPLACE_r13 668
+#define _BINARY_OP_ADD_INT_INPLACE_r23 669
+#define _BINARY_OP_ADD_INT_INPLACE_RIGHT_r03 670
+#define _BINARY_OP_ADD_INT_INPLACE_RIGHT_r13 671
+#define _BINARY_OP_ADD_INT_INPLACE_RIGHT_r23 672
+#define _BINARY_OP_ADD_UNICODE_r03 673
+#define _BINARY_OP_ADD_UNICODE_r13 674
+#define _BINARY_OP_ADD_UNICODE_r23 675
+#define _BINARY_OP_EXTEND_r23 676
+#define _BINARY_OP_INPLACE_ADD_UNICODE_r21 677
+#define _BINARY_OP_MULTIPLY_FLOAT_r03 678
+#define _BINARY_OP_MULTIPLY_FLOAT_r13 679
+#define _BINARY_OP_MULTIPLY_FLOAT_r23 680
+#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r03 681
+#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r13 682
+#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r23 683
+#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03 684
+#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13 685
+#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23 686
+#define _BINARY_OP_MULTIPLY_INT_r03 687
+#define _BINARY_OP_MULTIPLY_INT_r13 688
+#define _BINARY_OP_MULTIPLY_INT_r23 689
+#define _BINARY_OP_MULTIPLY_INT_INPLACE_r03 690
+#define _BINARY_OP_MULTIPLY_INT_INPLACE_r13 691
+#define _BINARY_OP_MULTIPLY_INT_INPLACE_r23 692
+#define _BINARY_OP_MULTIPLY_INT_INPLACE_RIGHT_r03 693
+#define _BINARY_OP_MULTIPLY_INT_INPLACE_RIGHT_r13 694
+#define _BINARY_OP_MULTIPLY_INT_INPLACE_RIGHT_r23 695
+#define _BINARY_OP_SUBSCR_CHECK_FUNC_r23 696
+#define _BINARY_OP_SUBSCR_DICT_r23 697
+#define _BINARY_OP_SUBSCR_DICT_KNOWN_HASH_r23 698
+#define _BINARY_OP_SUBSCR_INIT_CALL_r01 699
+#define _BINARY_OP_SUBSCR_INIT_CALL_r11 700
+#define _BINARY_OP_SUBSCR_INIT_CALL_r21 701
+#define _BINARY_OP_SUBSCR_INIT_CALL_r31 702
+#define _BINARY_OP_SUBSCR_LIST_INT_r23 703
+#define _BINARY_OP_SUBSCR_LIST_SLICE_r23 704
+#define _BINARY_OP_SUBSCR_STR_INT_r23 705
+#define _BINARY_OP_SUBSCR_TUPLE_INT_r03 706
+#define _BINARY_OP_SUBSCR_TUPLE_INT_r13 707
+#define _BINARY_OP_SUBSCR_TUPLE_INT_r23 708
+#define _BINARY_OP_SUBSCR_USTR_INT_r23 709
+#define _BINARY_OP_SUBTRACT_FLOAT_r03 710
+#define _BINARY_OP_SUBTRACT_FLOAT_r13 711
+#define _BINARY_OP_SUBTRACT_FLOAT_r23 712
+#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03 713
+#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13 714
+#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23 715
+#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 716
+#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 717
+#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 718
+#define _BINARY_OP_SUBTRACT_INT_r03 719
+#define _BINARY_OP_SUBTRACT_INT_r13 720
+#define _BINARY_OP_SUBTRACT_INT_r23 721
+#define _BINARY_OP_SUBTRACT_INT_INPLACE_r03 722
+#define _BINARY_OP_SUBTRACT_INT_INPLACE_r13 723
+#define _BINARY_OP_SUBTRACT_INT_INPLACE_r23 724
+#define _BINARY_OP_SUBTRACT_INT_INPLACE_RIGHT_r03 725
+#define _BINARY_OP_SUBTRACT_INT_INPLACE_RIGHT_r13 726
+#define _BINARY_OP_SUBTRACT_INT_INPLACE_RIGHT_r23 727
+#define _BINARY_OP_TRUEDIV_FLOAT_r23 728
+#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_r03 729
+#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_r13 730
+#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_r23 731
+#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_RIGHT_r03 732
+#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_RIGHT_r13 733
+#define _BINARY_OP_TRUEDIV_FLOAT_INPLACE_RIGHT_r23 734
+#define _BINARY_SLICE_r31 735
+#define _BUILD_INTERPOLATION_r01 736
+#define _BUILD_LIST_r01 737
+#define _BUILD_MAP_r01 738
+#define _BUILD_SET_r01 739
+#define _BUILD_SLICE_r01 740
+#define _BUILD_STRING_r01 741
+#define _BUILD_TEMPLATE_r21 742
+#define _BUILD_TUPLE_r01 743
+#define _CALL_BUILTIN_CLASS_r00 744
+#define _CALL_BUILTIN_FAST_r00 745
+#define _CALL_BUILTIN_FAST_WITH_KEYWORDS_r00 746
+#define _CALL_BUILTIN_O_r03 747
+#define _CALL_FUNCTION_EX_NON_PY_GENERAL_r31 748
+#define _CALL_INTRINSIC_1_r12 749
+#define _CALL_INTRINSIC_2_r23 750
+#define _CALL_ISINSTANCE_r31 751
+#define _CALL_KW_NON_PY_r11 752
+#define _CALL_LEN_r33 753
+#define _CALL_LIST_APPEND_r03 754
+#define _CALL_LIST_APPEND_r13 755
+#define _CALL_LIST_APPEND_r23 756
+#define _CALL_LIST_APPEND_r33 757
+#define _CALL_METHOD_DESCRIPTOR_FAST_r00 758
+#define _CALL_METHOD_DESCRIPTOR_FAST_INLINE_r00 759
+#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r00 760
+#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_INLINE_r00 761
+#define _CALL_METHOD_DESCRIPTOR_NOARGS_r03 762
+#define _CALL_METHOD_DESCRIPTOR_NOARGS_INLINE_r03 763
+#define _CALL_METHOD_DESCRIPTOR_O_r03 764
+#define _CALL_METHOD_DESCRIPTOR_O_INLINE_r03 765
+#define _CALL_NON_PY_GENERAL_r01 766
+#define _CALL_STR_1_r32 767
+#define _CALL_TUPLE_1_r32 768
+#define _CALL_TYPE_1_r02 769
+#define _CALL_TYPE_1_r12 770
+#define _CALL_TYPE_1_r22 771
+#define _CALL_TYPE_1_r32 772
+#define _CHECK_ATTR_CLASS_r01 773
+#define _CHECK_ATTR_CLASS_r11 774
+#define _CHECK_ATTR_CLASS_r22 775
+#define _CHECK_ATTR_CLASS_r33 776
+#define _CHECK_ATTR_METHOD_LAZY_DICT_r01 777
+#define _CHECK_ATTR_METHOD_LAZY_DICT_r11 778
+#define _CHECK_ATTR_METHOD_LAZY_DICT_r22 779
+#define _CHECK_ATTR_METHOD_LAZY_DICT_r33 780
+#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_r00 781
+#define _CHECK_EG_MATCH_r22 782
+#define _CHECK_EXC_MATCH_r22 783
+#define _CHECK_FUNCTION_EXACT_ARGS_r00 784
+#define _CHECK_FUNCTION_VERSION_r00 785
+#define _CHECK_FUNCTION_VERSION_INLINE_r00 786
+#define _CHECK_FUNCTION_VERSION_INLINE_r11 787
+#define _CHECK_FUNCTION_VERSION_INLINE_r22 788
+#define _CHECK_FUNCTION_VERSION_INLINE_r33 789
+#define _CHECK_FUNCTION_VERSION_KW_r11 790
+#define _CHECK_IS_NOT_PY_CALLABLE_r00 791
+#define _CHECK_IS_NOT_PY_CALLABLE_EX_r03 792
+#define _CHECK_IS_NOT_PY_CALLABLE_EX_r13 793
+#define _CHECK_IS_NOT_PY_CALLABLE_EX_r23 794
+#define _CHECK_IS_NOT_PY_CALLABLE_EX_r33 795
+#define _CHECK_IS_NOT_PY_CALLABLE_KW_r11 796
+#define _CHECK_IS_PY_CALLABLE_EX_r03 797
+#define _CHECK_IS_PY_CALLABLE_EX_r13 798
+#define _CHECK_IS_PY_CALLABLE_EX_r23 799
+#define _CHECK_IS_PY_CALLABLE_EX_r33 800
+#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r01 801
+#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r11 802
+#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r22 803
+#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r33 804
+#define _CHECK_METHOD_VERSION_r00 805
+#define _CHECK_METHOD_VERSION_KW_r11 806
+#define _CHECK_OBJECT_r00 807
+#define _CHECK_PEP_523_r00 808
+#define _CHECK_PEP_523_r11 809
+#define _CHECK_PEP_523_r22 810
+#define _CHECK_PEP_523_r33 811
+#define _CHECK_PERIODIC_r00 812
+#define _CHECK_PERIODIC_AT_END_r00 813
+#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM_r00 814
+#define _CHECK_RECURSION_LIMIT_r00 815
+#define _CHECK_RECURSION_LIMIT_r11 816
+#define _CHECK_RECURSION_LIMIT_r22 817
+#define _CHECK_RECURSION_LIMIT_r33 818
+#define _CHECK_RECURSION_REMAINING_r00 819
+#define _CHECK_RECURSION_REMAINING_r11 820
+#define _CHECK_RECURSION_REMAINING_r22 821
+#define _CHECK_RECURSION_REMAINING_r33 822
+#define _CHECK_STACK_SPACE_r00 823
+#define _CHECK_STACK_SPACE_OPERAND_r00 824
+#define _CHECK_STACK_SPACE_OPERAND_r11 825
+#define _CHECK_STACK_SPACE_OPERAND_r22 826
+#define _CHECK_STACK_SPACE_OPERAND_r33 827
+#define _CHECK_VALIDITY_r00 828
+#define _CHECK_VALIDITY_r11 829
+#define _CHECK_VALIDITY_r22 830
+#define _CHECK_VALIDITY_r33 831
+#define _COLD_DYNAMIC_EXIT_r00 832
+#define _COLD_EXIT_r00 833
+#define _COMPARE_OP_r21 834
+#define _COMPARE_OP_FLOAT_r03 835
+#define _COMPARE_OP_FLOAT_r13 836
+#define _COMPARE_OP_FLOAT_r23 837
+#define _COMPARE_OP_INT_r23 838
+#define _COMPARE_OP_STR_r23 839
+#define _CONTAINS_OP_r23 840
+#define _CONTAINS_OP_DICT_r23 841
+#define _CONTAINS_OP_SET_r23 842
+#define _CONVERT_VALUE_r11 843
+#define _COPY_r01 844
+#define _COPY_1_r02 845
+#define _COPY_1_r12 846
+#define _COPY_1_r23 847
+#define _COPY_2_r03 848
+#define _COPY_2_r13 849
+#define _COPY_2_r23 850
+#define _COPY_3_r03 851
+#define _COPY_3_r13 852
+#define _COPY_3_r23 853
+#define _COPY_3_r33 854
+#define _COPY_FREE_VARS_r00 855
+#define _COPY_FREE_VARS_r11 856
+#define _COPY_FREE_VARS_r22 857
+#define _COPY_FREE_VARS_r33 858
+#define _CREATE_INIT_FRAME_r01 859
+#define _DELETE_DEREF_r00 860
+#define _DELETE_FAST_r00 861
+#define _DELETE_SUBSCR_r20 862
+#define _DEOPT_r00 863
+#define _DEOPT_r10 864
+#define _DEOPT_r20 865
+#define _DEOPT_r30 866
+#define _DICT_MERGE_r11 867
+#define _DICT_UPDATE_r11 868
+#define _DO_CALL_r01 869
+#define _DO_CALL_FUNCTION_EX_r31 870
+#define _DO_CALL_KW_r11 871
+#define _DYNAMIC_EXIT_r00 872
+#define _DYNAMIC_EXIT_r10 873
+#define _DYNAMIC_EXIT_r20 874
+#define _DYNAMIC_EXIT_r30 875
+#define _END_FOR_r10 876
+#define _END_SEND_r31 877
+#define _ERROR_POP_N_r00 878
+#define _EXIT_INIT_CHECK_r10 879
+#define _EXIT_TRACE_r00 880
+#define _EXIT_TRACE_r10 881
+#define _EXIT_TRACE_r20 882
+#define _EXIT_TRACE_r30 883
+#define _EXPAND_METHOD_r00 884
+#define _EXPAND_METHOD_KW_r11 885
+#define _FATAL_ERROR_r00 886
+#define _FATAL_ERROR_r11 887
+#define _FATAL_ERROR_r22 888
+#define _FATAL_ERROR_r33 889
+#define _FORMAT_SIMPLE_r11 890
+#define _FORMAT_WITH_SPEC_r21 891
+#define _FOR_ITER_r23 892
+#define _FOR_ITER_GEN_FRAME_r03 893
+#define _FOR_ITER_GEN_FRAME_r13 894
+#define _FOR_ITER_GEN_FRAME_r23 895
+#define _FOR_ITER_TIER_TWO_r23 896
+#define _FOR_ITER_VIRTUAL_r23 897
+#define _FOR_ITER_VIRTUAL_TIER_TWO_r23 898
+#define _GET_AITER_r11 899
+#define _GET_ANEXT_r12 900
+#define _GET_AWAITABLE_r11 901
+#define _GET_ITER_r12 902
+#define _GET_ITER_TRAD_r12 903
+#define _GET_LEN_r12 904
+#define _GUARD_3OS_ASYNC_GEN_ASEND_r03 905
+#define _GUARD_3OS_ASYNC_GEN_ASEND_r13 906
+#define _GUARD_3OS_ASYNC_GEN_ASEND_r23 907
+#define _GUARD_3OS_ASYNC_GEN_ASEND_r33 908
+#define _GUARD_BINARY_OP_EXTEND_r22 909
+#define _GUARD_BINARY_OP_EXTEND_LHS_r02 910
+#define _GUARD_BINARY_OP_EXTEND_LHS_r12 911
+#define _GUARD_BINARY_OP_EXTEND_LHS_r22 912
+#define _GUARD_BINARY_OP_EXTEND_LHS_r33 913
+#define _GUARD_BINARY_OP_EXTEND_RHS_r02 914
+#define _GUARD_BINARY_OP_EXTEND_RHS_r12 915
+#define _GUARD_BINARY_OP_EXTEND_RHS_r22 916
+#define _GUARD_BINARY_OP_EXTEND_RHS_r33 917
+#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r02 918
+#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r12 919
+#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r22 920
+#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r33 921
+#define _GUARD_BIT_IS_SET_POP_r00 922
+#define _GUARD_BIT_IS_SET_POP_r10 923
+#define _GUARD_BIT_IS_SET_POP_r21 924
+#define _GUARD_BIT_IS_SET_POP_r32 925
+#define _GUARD_BIT_IS_SET_POP_4_r00 926
+#define _GUARD_BIT_IS_SET_POP_4_r10 927
+#define _GUARD_BIT_IS_SET_POP_4_r21 928
+#define _GUARD_BIT_IS_SET_POP_4_r32 929
+#define _GUARD_BIT_IS_SET_POP_5_r00 930
+#define _GUARD_BIT_IS_SET_POP_5_r10 931
+#define _GUARD_BIT_IS_SET_POP_5_r21 932
+#define _GUARD_BIT_IS_SET_POP_5_r32 933
+#define _GUARD_BIT_IS_SET_POP_6_r00 934
+#define _GUARD_BIT_IS_SET_POP_6_r10 935
+#define _GUARD_BIT_IS_SET_POP_6_r21 936
+#define _GUARD_BIT_IS_SET_POP_6_r32 937
+#define _GUARD_BIT_IS_SET_POP_7_r00 938
+#define _GUARD_BIT_IS_SET_POP_7_r10 939
+#define _GUARD_BIT_IS_SET_POP_7_r21 940
+#define _GUARD_BIT_IS_SET_POP_7_r32 941
+#define _GUARD_BIT_IS_UNSET_POP_r00 942
+#define _GUARD_BIT_IS_UNSET_POP_r10 943
+#define _GUARD_BIT_IS_UNSET_POP_r21 944
+#define _GUARD_BIT_IS_UNSET_POP_r32 945
+#define _GUARD_BIT_IS_UNSET_POP_4_r00 946
+#define _GUARD_BIT_IS_UNSET_POP_4_r10 947
+#define _GUARD_BIT_IS_UNSET_POP_4_r21 948
+#define _GUARD_BIT_IS_UNSET_POP_4_r32 949
+#define _GUARD_BIT_IS_UNSET_POP_5_r00 950
+#define _GUARD_BIT_IS_UNSET_POP_5_r10 951
+#define _GUARD_BIT_IS_UNSET_POP_5_r21 952
+#define _GUARD_BIT_IS_UNSET_POP_5_r32 953
+#define _GUARD_BIT_IS_UNSET_POP_6_r00 954
+#define _GUARD_BIT_IS_UNSET_POP_6_r10 955
+#define _GUARD_BIT_IS_UNSET_POP_6_r21 956
+#define _GUARD_BIT_IS_UNSET_POP_6_r32 957
+#define _GUARD_BIT_IS_UNSET_POP_7_r00 958
+#define _GUARD_BIT_IS_UNSET_POP_7_r10 959
+#define _GUARD_BIT_IS_UNSET_POP_7_r21 960
+#define _GUARD_BIT_IS_UNSET_POP_7_r32 961
+#define _GUARD_CALLABLE_BUILTIN_CLASS_r00 962
+#define _GUARD_CALLABLE_BUILTIN_FAST_r00 963
+#define _GUARD_CALLABLE_BUILTIN_FAST_WITH_KEYWORDS_r00 964
+#define _GUARD_CALLABLE_BUILTIN_O_r00 965
+#define _GUARD_CALLABLE_ISINSTANCE_r03 966
+#define _GUARD_CALLABLE_ISINSTANCE_r13 967
+#define _GUARD_CALLABLE_ISINSTANCE_r23 968
+#define _GUARD_CALLABLE_ISINSTANCE_r33 969
+#define _GUARD_CALLABLE_LEN_r03 970
+#define _GUARD_CALLABLE_LEN_r13 971
+#define _GUARD_CALLABLE_LEN_r23 972
+#define _GUARD_CALLABLE_LEN_r33 973
+#define _GUARD_CALLABLE_LIST_APPEND_r03 974
+#define _GUARD_CALLABLE_LIST_APPEND_r13 975
+#define _GUARD_CALLABLE_LIST_APPEND_r23 976
+#define _GUARD_CALLABLE_LIST_APPEND_r33 977
+#define _GUARD_CALLABLE_METHOD_DESCRIPTOR_FAST_r00 978
+#define _GUARD_CALLABLE_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r00 979
+#define _GUARD_CALLABLE_METHOD_DESCRIPTOR_NOARGS_r00 980
+#define _GUARD_CALLABLE_METHOD_DESCRIPTOR_O_r00 981
+#define _GUARD_CALLABLE_STR_1_r03 982
+#define _GUARD_CALLABLE_STR_1_r13 983
+#define _GUARD_CALLABLE_STR_1_r23 984
+#define _GUARD_CALLABLE_STR_1_r33 985
+#define _GUARD_CALLABLE_TUPLE_1_r03 986
+#define _GUARD_CALLABLE_TUPLE_1_r13 987
+#define _GUARD_CALLABLE_TUPLE_1_r23 988
+#define _GUARD_CALLABLE_TUPLE_1_r33 989
+#define _GUARD_CALLABLE_TYPE_1_r03 990
+#define _GUARD_CALLABLE_TYPE_1_r13 991
+#define _GUARD_CALLABLE_TYPE_1_r23 992
+#define _GUARD_CALLABLE_TYPE_1_r33 993
+#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r00 994
+#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r11 995
+#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r22 996
+#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r33 997
+#define _GUARD_CODE_VERSION_RETURN_VALUE_r00 998
+#define _GUARD_CODE_VERSION_RETURN_VALUE_r11 999
+#define _GUARD_CODE_VERSION_RETURN_VALUE_r22 1000
+#define _GUARD_CODE_VERSION_RETURN_VALUE_r33 1001
+#define _GUARD_CODE_VERSION_YIELD_VALUE_r00 1002
+#define _GUARD_CODE_VERSION_YIELD_VALUE_r11 1003
+#define _GUARD_CODE_VERSION_YIELD_VALUE_r22 1004
+#define _GUARD_CODE_VERSION_YIELD_VALUE_r33 1005
+#define _GUARD_CODE_VERSION__PUSH_FRAME_r00 1006
+#define _GUARD_CODE_VERSION__PUSH_FRAME_r11 1007
+#define _GUARD_CODE_VERSION__PUSH_FRAME_r22 1008
+#define _GUARD_CODE_VERSION__PUSH_FRAME_r33 1009
+#define _GUARD_DORV_NO_DICT_r01 1010
+#define _GUARD_DORV_NO_DICT_r11 1011
+#define _GUARD_DORV_NO_DICT_r22 1012
+#define _GUARD_DORV_NO_DICT_r33 1013
+#define _GUARD_GLOBALS_VERSION_r00 1014
+#define _GUARD_GLOBALS_VERSION_r11 1015
+#define _GUARD_GLOBALS_VERSION_r22 1016
+#define _GUARD_GLOBALS_VERSION_r33 1017
+#define _GUARD_IP_RETURN_GENERATOR_r00 1018
+#define _GUARD_IP_RETURN_GENERATOR_r11 1019
+#define _GUARD_IP_RETURN_GENERATOR_r22 1020
+#define _GUARD_IP_RETURN_GENERATOR_r33 1021
+#define _GUARD_IP_RETURN_VALUE_r00 1022
+#define _GUARD_IP_RETURN_VALUE_r11 1023
+#define _GUARD_IP_RETURN_VALUE_r22 1024
+#define _GUARD_IP_RETURN_VALUE_r33 1025
+#define _GUARD_IP_YIELD_VALUE_r00 1026
+#define _GUARD_IP_YIELD_VALUE_r11 1027
+#define _GUARD_IP_YIELD_VALUE_r22 1028
+#define _GUARD_IP_YIELD_VALUE_r33 1029
+#define _GUARD_IP__PUSH_FRAME_r00 1030
+#define _GUARD_IP__PUSH_FRAME_r11 1031
+#define _GUARD_IP__PUSH_FRAME_r22 1032
+#define _GUARD_IP__PUSH_FRAME_r33 1033
+#define _GUARD_IS_FALSE_POP_r00 1034
+#define _GUARD_IS_FALSE_POP_r10 1035
+#define _GUARD_IS_FALSE_POP_r21 1036
+#define _GUARD_IS_FALSE_POP_r32 1037
+#define _GUARD_IS_NONE_POP_r00 1038
+#define _GUARD_IS_NONE_POP_r10 1039
+#define _GUARD_IS_NONE_POP_r21 1040
+#define _GUARD_IS_NONE_POP_r32 1041
+#define _GUARD_IS_NOT_NONE_POP_r10 1042
+#define _GUARD_IS_TRUE_POP_r00 1043
+#define _GUARD_IS_TRUE_POP_r10 1044
+#define _GUARD_IS_TRUE_POP_r21 1045
+#define _GUARD_IS_TRUE_POP_r32 1046
+#define _GUARD_ITERATOR_r01 1047
+#define _GUARD_ITERATOR_r11 1048
+#define _GUARD_ITERATOR_r22 1049
+#define _GUARD_ITERATOR_r33 1050
+#define _GUARD_ITER_VIRTUAL_r01 1051
+#define _GUARD_ITER_VIRTUAL_r11 1052
+#define _GUARD_ITER_VIRTUAL_r22 1053
+#define _GUARD_ITER_VIRTUAL_r33 1054
+#define _GUARD_LOAD_SUPER_ATTR_METHOD_r03 1055
+#define _GUARD_LOAD_SUPER_ATTR_METHOD_r13 1056
+#define _GUARD_LOAD_SUPER_ATTR_METHOD_r23 1057
+#define _GUARD_LOAD_SUPER_ATTR_METHOD_r33 1058
+#define _GUARD_NOS_COMPACT_ASCII_r02 1059
+#define _GUARD_NOS_COMPACT_ASCII_r12 1060
+#define _GUARD_NOS_COMPACT_ASCII_r22 1061
+#define _GUARD_NOS_COMPACT_ASCII_r33 1062
+#define _GUARD_NOS_DICT_STORE_SUBSCRIPT_r03 1063
+#define _GUARD_NOS_DICT_STORE_SUBSCRIPT_r13 1064
+#define _GUARD_NOS_DICT_STORE_SUBSCRIPT_r23 1065
+#define _GUARD_NOS_DICT_STORE_SUBSCRIPT_r33 1066
+#define _GUARD_NOS_DICT_SUBSCRIPT_r02 1067
+#define _GUARD_NOS_DICT_SUBSCRIPT_r12 1068
+#define _GUARD_NOS_DICT_SUBSCRIPT_r22 1069
+#define _GUARD_NOS_DICT_SUBSCRIPT_r33 1070
+#define _GUARD_NOS_FLOAT_r02 1071
+#define _GUARD_NOS_FLOAT_r12 1072
+#define _GUARD_NOS_FLOAT_r22 1073
+#define _GUARD_NOS_FLOAT_r33 1074
+#define _GUARD_NOS_INT_r02 1075
+#define _GUARD_NOS_INT_r12 1076
+#define _GUARD_NOS_INT_r22 1077
+#define _GUARD_NOS_INT_r33 1078
+#define _GUARD_NOS_ITER_VIRTUAL_r02 1079
+#define _GUARD_NOS_ITER_VIRTUAL_r12 1080
+#define _GUARD_NOS_ITER_VIRTUAL_r22 1081
+#define _GUARD_NOS_ITER_VIRTUAL_r33 1082
+#define _GUARD_NOS_LIST_r02 1083
+#define _GUARD_NOS_LIST_r12 1084
+#define _GUARD_NOS_LIST_r22 1085
+#define _GUARD_NOS_LIST_r33 1086
+#define _GUARD_NOS_NOT_NULL_r02 1087
+#define _GUARD_NOS_NOT_NULL_r12 1088
+#define _GUARD_NOS_NOT_NULL_r22 1089
+#define _GUARD_NOS_NOT_NULL_r33 1090
+#define _GUARD_NOS_NULL_r02 1091
+#define _GUARD_NOS_NULL_r12 1092
+#define _GUARD_NOS_NULL_r22 1093
+#define _GUARD_NOS_NULL_r33 1094
+#define _GUARD_NOS_OVERFLOWED_r02 1095
+#define _GUARD_NOS_OVERFLOWED_r12 1096
+#define _GUARD_NOS_OVERFLOWED_r22 1097
+#define _GUARD_NOS_OVERFLOWED_r33 1098
+#define _GUARD_NOS_TUPLE_r02 1099
+#define _GUARD_NOS_TUPLE_r12 1100
+#define _GUARD_NOS_TUPLE_r22 1101
+#define _GUARD_NOS_TUPLE_r33 1102
+#define _GUARD_NOS_TYPE_VERSION_r02 1103
+#define _GUARD_NOS_TYPE_VERSION_r12 1104
+#define _GUARD_NOS_TYPE_VERSION_r22 1105
+#define _GUARD_NOS_TYPE_VERSION_r33 1106
+#define _GUARD_NOS_UNICODE_r02 1107
+#define _GUARD_NOS_UNICODE_r12 1108
+#define _GUARD_NOS_UNICODE_r22 1109
+#define _GUARD_NOS_UNICODE_r33 1110
+#define _GUARD_NOT_EXHAUSTED_LIST_r02 1111
+#define _GUARD_NOT_EXHAUSTED_LIST_r12 1112
+#define _GUARD_NOT_EXHAUSTED_LIST_r22 1113
+#define _GUARD_NOT_EXHAUSTED_LIST_r33 1114
+#define _GUARD_NOT_EXHAUSTED_RANGE_r02 1115
+#define _GUARD_NOT_EXHAUSTED_RANGE_r12 1116
+#define _GUARD_NOT_EXHAUSTED_RANGE_r22 1117
+#define _GUARD_NOT_EXHAUSTED_RANGE_r33 1118
+#define _GUARD_NOT_EXHAUSTED_TUPLE_r02 1119
+#define _GUARD_NOT_EXHAUSTED_TUPLE_r12 1120
+#define _GUARD_NOT_EXHAUSTED_TUPLE_r22 1121
+#define _GUARD_NOT_EXHAUSTED_TUPLE_r33 1122
+#define _GUARD_THIRD_NULL_r03 1123
+#define _GUARD_THIRD_NULL_r13 1124
+#define _GUARD_THIRD_NULL_r23 1125
+#define _GUARD_THIRD_NULL_r33 1126
+#define _GUARD_TOS_ANY_DICT_r01 1127
+#define _GUARD_TOS_ANY_DICT_r11 1128
+#define _GUARD_TOS_ANY_DICT_r22 1129
+#define _GUARD_TOS_ANY_DICT_r33 1130
+#define _GUARD_TOS_ANY_SET_r01 1131
+#define _GUARD_TOS_ANY_SET_r11 1132
+#define _GUARD_TOS_ANY_SET_r22 1133
+#define _GUARD_TOS_ANY_SET_r33 1134
+#define _GUARD_TOS_DICT_r01 1135
+#define _GUARD_TOS_DICT_r11 1136
+#define _GUARD_TOS_DICT_r22 1137
+#define _GUARD_TOS_DICT_r33 1138
+#define _GUARD_TOS_FLOAT_r01 1139
+#define _GUARD_TOS_FLOAT_r11 1140
+#define _GUARD_TOS_FLOAT_r22 1141
+#define _GUARD_TOS_FLOAT_r33 1142
+#define _GUARD_TOS_FROZENDICT_r01 1143
+#define _GUARD_TOS_FROZENDICT_r11 1144
+#define _GUARD_TOS_FROZENDICT_r22 1145
+#define _GUARD_TOS_FROZENDICT_r33 1146
+#define _GUARD_TOS_FROZENSET_r01 1147
+#define _GUARD_TOS_FROZENSET_r11 1148
+#define _GUARD_TOS_FROZENSET_r22 1149
+#define _GUARD_TOS_FROZENSET_r33 1150
+#define _GUARD_TOS_INT_r01 1151
+#define _GUARD_TOS_INT_r11 1152
+#define _GUARD_TOS_INT_r22 1153
+#define _GUARD_TOS_INT_r33 1154
+#define _GUARD_TOS_IS_NONE_r01 1155
+#define _GUARD_TOS_IS_NONE_r11 1156
+#define _GUARD_TOS_IS_NONE_r22 1157
+#define _GUARD_TOS_IS_NONE_r33 1158
+#define _GUARD_TOS_LIST_r01 1159
+#define _GUARD_TOS_LIST_r11 1160
+#define _GUARD_TOS_LIST_r22 1161
+#define _GUARD_TOS_LIST_r33 1162
+#define _GUARD_TOS_NOT_NULL_r01 1163
+#define _GUARD_TOS_NOT_NULL_r11 1164
+#define _GUARD_TOS_NOT_NULL_r22 1165
+#define _GUARD_TOS_NOT_NULL_r33 1166
+#define _GUARD_TOS_OVERFLOWED_r01 1167
+#define _GUARD_TOS_OVERFLOWED_r11 1168
+#define _GUARD_TOS_OVERFLOWED_r22 1169
+#define _GUARD_TOS_OVERFLOWED_r33 1170
+#define _GUARD_TOS_SET_r01 1171
+#define _GUARD_TOS_SET_r11 1172
+#define _GUARD_TOS_SET_r22 1173
+#define _GUARD_TOS_SET_r33 1174
+#define _GUARD_TOS_SLICE_r01 1175
+#define _GUARD_TOS_SLICE_r11 1176
+#define _GUARD_TOS_SLICE_r22 1177
+#define _GUARD_TOS_SLICE_r33 1178
+#define _GUARD_TOS_TUPLE_r01 1179
+#define _GUARD_TOS_TUPLE_r11 1180
+#define _GUARD_TOS_TUPLE_r22 1181
+#define _GUARD_TOS_TUPLE_r33 1182
+#define _GUARD_TOS_UNICODE_r01 1183
+#define _GUARD_TOS_UNICODE_r11 1184
+#define _GUARD_TOS_UNICODE_r22 1185
+#define _GUARD_TOS_UNICODE_r33 1186
+#define _GUARD_TYPE_r01 1187
+#define _GUARD_TYPE_r11 1188
+#define _GUARD_TYPE_r22 1189
+#define _GUARD_TYPE_r33 1190
+#define _GUARD_TYPE_ITER_r02 1191
+#define _GUARD_TYPE_ITER_r12 1192
+#define _GUARD_TYPE_ITER_r22 1193
+#define _GUARD_TYPE_ITER_r33 1194
+#define _GUARD_TYPE_VERSION_r01 1195
+#define _GUARD_TYPE_VERSION_r11 1196
+#define _GUARD_TYPE_VERSION_r22 1197
+#define _GUARD_TYPE_VERSION_r33 1198
+#define _GUARD_TYPE_VERSION_LOCKED_r01 1199
+#define _GUARD_TYPE_VERSION_LOCKED_r11 1200
+#define _GUARD_TYPE_VERSION_LOCKED_r22 1201
+#define _GUARD_TYPE_VERSION_LOCKED_r33 1202
+#define _HANDLE_PENDING_AND_DEOPT_r00 1203
+#define _HANDLE_PENDING_AND_DEOPT_r10 1204
+#define _HANDLE_PENDING_AND_DEOPT_r20 1205
+#define _HANDLE_PENDING_AND_DEOPT_r30 1206
+#define _IMPORT_FROM_r12 1207
+#define _IMPORT_NAME_r21 1208
+#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS_r00 1209
+#define _INIT_CALL_PY_EXACT_ARGS_r01 1210
+#define _INIT_CALL_PY_EXACT_ARGS_0_r01 1211
+#define _INIT_CALL_PY_EXACT_ARGS_1_r01 1212
+#define _INIT_CALL_PY_EXACT_ARGS_2_r01 1213
+#define _INIT_CALL_PY_EXACT_ARGS_3_r01 1214
+#define _INIT_CALL_PY_EXACT_ARGS_4_r01 1215
+#define _INSERT_NULL_r10 1216
+#define _INSTRUMENTED_FOR_ITER_r23 1217
+#define _INSTRUMENTED_INSTRUCTION_r00 1218
+#define _INSTRUMENTED_JUMP_FORWARD_r00 1219
+#define _INSTRUMENTED_JUMP_FORWARD_r11 1220
+#define _INSTRUMENTED_JUMP_FORWARD_r22 1221
+#define _INSTRUMENTED_JUMP_FORWARD_r33 1222
+#define _INSTRUMENTED_LINE_r00 1223
+#define _INSTRUMENTED_NOT_TAKEN_r00 1224
+#define _INSTRUMENTED_NOT_TAKEN_r11 1225
+#define _INSTRUMENTED_NOT_TAKEN_r22 1226
+#define _INSTRUMENTED_NOT_TAKEN_r33 1227
+#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r00 1228
+#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r10 1229
+#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r21 1230
+#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r32 1231
+#define _INSTRUMENTED_POP_JUMP_IF_NONE_r10 1232
+#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE_r10 1233
+#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r00 1234
+#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r10 1235
+#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r21 1236
+#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r32 1237
+#define _IS_NONE_r11 1238
+#define _IS_OP_r03 1239
+#define _IS_OP_r13 1240
+#define _IS_OP_r23 1241
+#define _ITER_CHECK_LIST_r02 1242
+#define _ITER_CHECK_LIST_r12 1243
+#define _ITER_CHECK_LIST_r22 1244
+#define _ITER_CHECK_LIST_r33 1245
+#define _ITER_CHECK_RANGE_r02 1246
+#define _ITER_CHECK_RANGE_r12 1247
+#define _ITER_CHECK_RANGE_r22 1248
+#define _ITER_CHECK_RANGE_r33 1249
+#define _ITER_CHECK_TUPLE_r02 1250
+#define _ITER_CHECK_TUPLE_r12 1251
+#define _ITER_CHECK_TUPLE_r22 1252
+#define _ITER_CHECK_TUPLE_r33 1253
+#define _ITER_JUMP_LIST_r02 1254
+#define _ITER_JUMP_LIST_r12 1255
+#define _ITER_JUMP_LIST_r22 1256
+#define _ITER_JUMP_LIST_r33 1257
+#define _ITER_JUMP_RANGE_r02 1258
+#define _ITER_JUMP_RANGE_r12 1259
+#define _ITER_JUMP_RANGE_r22 1260
+#define _ITER_JUMP_RANGE_r33 1261
+#define _ITER_JUMP_TUPLE_r02 1262
+#define _ITER_JUMP_TUPLE_r12 1263
+#define _ITER_JUMP_TUPLE_r22 1264
+#define _ITER_JUMP_TUPLE_r33 1265
+#define _ITER_NEXT_INLINE_r23 1266
+#define _ITER_NEXT_LIST_r23 1267
+#define _ITER_NEXT_LIST_TIER_TWO_r23 1268
+#define _ITER_NEXT_RANGE_r03 1269
+#define _ITER_NEXT_RANGE_r13 1270
+#define _ITER_NEXT_RANGE_r23 1271
+#define _ITER_NEXT_TUPLE_r03 1272
+#define _ITER_NEXT_TUPLE_r13 1273
+#define _ITER_NEXT_TUPLE_r23 1274
+#define _JUMP_BACKWARD_NO_INTERRUPT_r00 1275
+#define _JUMP_BACKWARD_NO_INTERRUPT_r11 1276
+#define _JUMP_BACKWARD_NO_INTERRUPT_r22 1277
+#define _JUMP_BACKWARD_NO_INTERRUPT_r33 1278
+#define _JUMP_TO_TOP_r00 1279
+#define _LIST_APPEND_r10 1280
+#define _LIST_EXTEND_r11 1281
+#define _LOAD_ATTR_r10 1282
+#define _LOAD_ATTR_CLASS_r11 1283
+#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_FRAME_r11 1284
+#define _LOAD_ATTR_INSTANCE_VALUE_r02 1285
+#define _LOAD_ATTR_INSTANCE_VALUE_r12 1286
+#define _LOAD_ATTR_INSTANCE_VALUE_r23 1287
+#define _LOAD_ATTR_METHOD_LAZY_DICT_r02 1288
+#define _LOAD_ATTR_METHOD_LAZY_DICT_r12 1289
+#define _LOAD_ATTR_METHOD_LAZY_DICT_r23 1290
+#define _LOAD_ATTR_METHOD_NO_DICT_r02 1291
+#define _LOAD_ATTR_METHOD_NO_DICT_r12 1292
+#define _LOAD_ATTR_METHOD_NO_DICT_r23 1293
+#define _LOAD_ATTR_METHOD_WITH_VALUES_r02 1294
+#define _LOAD_ATTR_METHOD_WITH_VALUES_r12 1295
+#define _LOAD_ATTR_METHOD_WITH_VALUES_r23 1296
+#define _LOAD_ATTR_MODULE_r12 1297
+#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT_r11 1298
+#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES_r11 1299
+#define _LOAD_ATTR_PROPERTY_FRAME_r01 1300
+#define _LOAD_ATTR_PROPERTY_FRAME_r11 1301
+#define _LOAD_ATTR_PROPERTY_FRAME_r22 1302
+#define _LOAD_ATTR_PROPERTY_FRAME_r33 1303
+#define _LOAD_ATTR_SLOT_r02 1304
+#define _LOAD_ATTR_SLOT_r12 1305
+#define _LOAD_ATTR_SLOT_r23 1306
+#define _LOAD_ATTR_WITH_HINT_r12 1307
+#define _LOAD_BUILD_CLASS_r01 1308
+#define _LOAD_BYTECODE_r00 1309
+#define _LOAD_COMMON_CONSTANT_r01 1310
+#define _LOAD_COMMON_CONSTANT_r12 1311
+#define _LOAD_COMMON_CONSTANT_r23 1312
+#define _LOAD_CONST_r01 1313
+#define _LOAD_CONST_r12 1314
+#define _LOAD_CONST_r23 1315
+#define _LOAD_CONST_INLINE_r01 1316
+#define _LOAD_CONST_INLINE_r12 1317
+#define _LOAD_CONST_INLINE_r23 1318
+#define _LOAD_CONST_INLINE_BORROW_r01 1319
+#define _LOAD_CONST_INLINE_BORROW_r12 1320
+#define _LOAD_CONST_INLINE_BORROW_r23 1321
+#define _LOAD_DEREF_r01 1322
+#define _LOAD_FAST_r01 1323
+#define _LOAD_FAST_r12 1324
+#define _LOAD_FAST_r23 1325
+#define _LOAD_FAST_0_r01 1326
+#define _LOAD_FAST_0_r12 1327
+#define _LOAD_FAST_0_r23 1328
+#define _LOAD_FAST_1_r01 1329
+#define _LOAD_FAST_1_r12 1330
+#define _LOAD_FAST_1_r23 1331
+#define _LOAD_FAST_2_r01 1332
+#define _LOAD_FAST_2_r12 1333
+#define _LOAD_FAST_2_r23 1334
+#define _LOAD_FAST_3_r01 1335
+#define _LOAD_FAST_3_r12 1336
+#define _LOAD_FAST_3_r23 1337
+#define _LOAD_FAST_4_r01 1338
+#define _LOAD_FAST_4_r12 1339
+#define _LOAD_FAST_4_r23 1340
+#define _LOAD_FAST_5_r01 1341
+#define _LOAD_FAST_5_r12 1342
+#define _LOAD_FAST_5_r23 1343
+#define _LOAD_FAST_6_r01 1344
+#define _LOAD_FAST_6_r12 1345
+#define _LOAD_FAST_6_r23 1346
+#define _LOAD_FAST_7_r01 1347
+#define _LOAD_FAST_7_r12 1348
+#define _LOAD_FAST_7_r23 1349
+#define _LOAD_FAST_AND_CLEAR_r01 1350
+#define _LOAD_FAST_AND_CLEAR_r12 1351
+#define _LOAD_FAST_AND_CLEAR_r23 1352
+#define _LOAD_FAST_BORROW_r01 1353
+#define _LOAD_FAST_BORROW_r12 1354
+#define _LOAD_FAST_BORROW_r23 1355
+#define _LOAD_FAST_BORROW_0_r01 1356
+#define _LOAD_FAST_BORROW_0_r12 1357
+#define _LOAD_FAST_BORROW_0_r23 1358
+#define _LOAD_FAST_BORROW_1_r01 1359
+#define _LOAD_FAST_BORROW_1_r12 1360
+#define _LOAD_FAST_BORROW_1_r23 1361
+#define _LOAD_FAST_BORROW_2_r01 1362
+#define _LOAD_FAST_BORROW_2_r12 1363
+#define _LOAD_FAST_BORROW_2_r23 1364
+#define _LOAD_FAST_BORROW_3_r01 1365
+#define _LOAD_FAST_BORROW_3_r12 1366
+#define _LOAD_FAST_BORROW_3_r23 1367
+#define _LOAD_FAST_BORROW_4_r01 1368
+#define _LOAD_FAST_BORROW_4_r12 1369
+#define _LOAD_FAST_BORROW_4_r23 1370
+#define _LOAD_FAST_BORROW_5_r01 1371
+#define _LOAD_FAST_BORROW_5_r12 1372
+#define _LOAD_FAST_BORROW_5_r23 1373
+#define _LOAD_FAST_BORROW_6_r01 1374
+#define _LOAD_FAST_BORROW_6_r12 1375
+#define _LOAD_FAST_BORROW_6_r23 1376
+#define _LOAD_FAST_BORROW_7_r01 1377
+#define _LOAD_FAST_BORROW_7_r12 1378
+#define _LOAD_FAST_BORROW_7_r23 1379
+#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r02 1380
+#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r13 1381
+#define _LOAD_FAST_CHECK_r01 1382
+#define _LOAD_FAST_CHECK_r12 1383
+#define _LOAD_FAST_CHECK_r23 1384
+#define _LOAD_FAST_LOAD_FAST_r02 1385
+#define _LOAD_FAST_LOAD_FAST_r13 1386
+#define _LOAD_FROM_DICT_OR_DEREF_r11 1387
+#define _LOAD_FROM_DICT_OR_GLOBALS_r11 1388
+#define _LOAD_GLOBAL_r00 1389
+#define _LOAD_GLOBAL_BUILTINS_r01 1390
+#define _LOAD_GLOBAL_MODULE_r01 1391
+#define _LOAD_LOCALS_r01 1392
+#define _LOAD_LOCALS_r12 1393
+#define _LOAD_LOCALS_r23 1394
+#define _LOAD_NAME_r01 1395
+#define _LOAD_SMALL_INT_r01 1396
+#define _LOAD_SMALL_INT_r12 1397
+#define _LOAD_SMALL_INT_r23 1398
+#define _LOAD_SMALL_INT_0_r01 1399
+#define _LOAD_SMALL_INT_0_r12 1400
+#define _LOAD_SMALL_INT_0_r23 1401
+#define _LOAD_SMALL_INT_1_r01 1402
+#define _LOAD_SMALL_INT_1_r12 1403
+#define _LOAD_SMALL_INT_1_r23 1404
+#define _LOAD_SMALL_INT_2_r01 1405
+#define _LOAD_SMALL_INT_2_r12 1406
+#define _LOAD_SMALL_INT_2_r23 1407
+#define _LOAD_SMALL_INT_3_r01 1408
+#define _LOAD_SMALL_INT_3_r12 1409
+#define _LOAD_SMALL_INT_3_r23 1410
+#define _LOAD_SPECIAL_r00 1411
+#define _LOAD_SUPER_ATTR_ATTR_r31 1412
+#define _LOAD_SUPER_ATTR_METHOD_r32 1413
+#define _LOCK_OBJECT_r01 1414
+#define _LOCK_OBJECT_r11 1415
+#define _LOCK_OBJECT_r22 1416
+#define _LOCK_OBJECT_r33 1417
+#define _MAKE_CALLARGS_A_TUPLE_r33 1418
+#define _MAKE_CELL_r00 1419
+#define _MAKE_FUNCTION_r12 1420
+#define _MAKE_HEAP_SAFE_r01 1421
+#define _MAKE_HEAP_SAFE_r11 1422
+#define _MAKE_HEAP_SAFE_r22 1423
+#define _MAKE_HEAP_SAFE_r33 1424
+#define _MAKE_WARM_r00 1425
+#define _MAKE_WARM_r11 1426
+#define _MAKE_WARM_r22 1427
+#define _MAKE_WARM_r33 1428
+#define _MAP_ADD_r20 1429
+#define _MATCH_CLASS_r33 1430
+#define _MATCH_KEYS_r23 1431
+#define _MATCH_MAPPING_r02 1432
+#define _MATCH_MAPPING_r12 1433
+#define _MATCH_MAPPING_r23 1434
+#define _MATCH_SEQUENCE_r02 1435
+#define _MATCH_SEQUENCE_r12 1436
+#define _MATCH_SEQUENCE_r23 1437
+#define _MAYBE_EXPAND_METHOD_r00 1438
+#define _MAYBE_EXPAND_METHOD_KW_r11 1439
+#define _MONITOR_CALL_r00 1440
+#define _MONITOR_CALL_KW_r11 1441
+#define _MONITOR_JUMP_BACKWARD_r00 1442
+#define _MONITOR_JUMP_BACKWARD_r11 1443
+#define _MONITOR_JUMP_BACKWARD_r22 1444
+#define _MONITOR_JUMP_BACKWARD_r33 1445
+#define _MONITOR_RESUME_r00 1446
+#define _NOP_r00 1447
+#define _NOP_r11 1448
+#define _NOP_r22 1449
+#define _NOP_r33 1450
+#define _POP_EXCEPT_r10 1451
+#define _POP_ITER_r20 1452
+#define _POP_JUMP_IF_FALSE_r00 1453
+#define _POP_JUMP_IF_FALSE_r10 1454
+#define _POP_JUMP_IF_FALSE_r21 1455
+#define _POP_JUMP_IF_FALSE_r32 1456
+#define _POP_JUMP_IF_TRUE_r00 1457
+#define _POP_JUMP_IF_TRUE_r10 1458
+#define _POP_JUMP_IF_TRUE_r21 1459
+#define _POP_JUMP_IF_TRUE_r32 1460
+#define _POP_TOP_r10 1461
+#define _POP_TOP_FLOAT_r00 1462
+#define _POP_TOP_FLOAT_r10 1463
+#define _POP_TOP_FLOAT_r21 1464
+#define _POP_TOP_FLOAT_r32 1465
+#define _POP_TOP_INT_r00 1466
+#define _POP_TOP_INT_r10 1467
+#define _POP_TOP_INT_r21 1468
+#define _POP_TOP_INT_r32 1469
+#define _POP_TOP_NOP_r00 1470
+#define _POP_TOP_NOP_r10 1471
+#define _POP_TOP_NOP_r21 1472
+#define _POP_TOP_NOP_r32 1473
+#define _POP_TOP_OPARG_r00 1474
+#define _POP_TOP_UNICODE_r00 1475
+#define _POP_TOP_UNICODE_r10 1476
+#define _POP_TOP_UNICODE_r21 1477
+#define _POP_TOP_UNICODE_r32 1478
+#define _PUSH_EXC_INFO_r02 1479
+#define _PUSH_EXC_INFO_r12 1480
+#define _PUSH_EXC_INFO_r23 1481
+#define _PUSH_FRAME_r10 1482
+#define _PUSH_NULL_r01 1483
+#define _PUSH_NULL_r12 1484
+#define _PUSH_NULL_r23 1485
+#define _PUSH_NULL_CONDITIONAL_r00 1486
+#define _PUSH_TAGGED_ZERO_r01 1487
+#define _PUSH_TAGGED_ZERO_r12 1488
+#define _PUSH_TAGGED_ZERO_r23 1489
+#define _PY_FRAME_EX_r31 1490
+#define _PY_FRAME_GENERAL_r01 1491
+#define _PY_FRAME_KW_r11 1492
+#define _REPLACE_WITH_TRUE_r02 1493
+#define _REPLACE_WITH_TRUE_r12 1494
+#define _REPLACE_WITH_TRUE_r23 1495
+#define _RESUME_CHECK_r00 1496
+#define _RESUME_CHECK_r11 1497
+#define _RESUME_CHECK_r22 1498
+#define _RESUME_CHECK_r33 1499
+#define _RETURN_GENERATOR_r01 1500
+#define _RETURN_VALUE_r11 1501
+#define _RROT_3_r03 1502
+#define _RROT_3_r13 1503
+#define _RROT_3_r23 1504
+#define _RROT_3_r33 1505
+#define _SAVE_RETURN_OFFSET_r00 1506
+#define _SAVE_RETURN_OFFSET_r11 1507
+#define _SAVE_RETURN_OFFSET_r22 1508
+#define _SAVE_RETURN_OFFSET_r33 1509
+#define _SEND_ASYNC_GEN_r33 1510
+#define _SEND_ASYNC_GEN_TIER_TWO_r33 1511
+#define _SEND_GEN_FRAME_r33 1512
+#define _SEND_VIRTUAL_r33 1513
+#define _SEND_VIRTUAL_TIER_TWO_r03 1514
+#define _SEND_VIRTUAL_TIER_TWO_r13 1515
+#define _SEND_VIRTUAL_TIER_TWO_r23 1516
+#define _SEND_VIRTUAL_TIER_TWO_r33 1517
+#define _SETUP_ANNOTATIONS_r00 1518
+#define _SET_ADD_r10 1519
+#define _SET_FUNCTION_ATTRIBUTE_r01 1520
+#define _SET_FUNCTION_ATTRIBUTE_r11 1521
+#define _SET_FUNCTION_ATTRIBUTE_r21 1522
+#define _SET_FUNCTION_ATTRIBUTE_r32 1523
+#define _SET_IP_r00 1524
+#define _SET_IP_r11 1525
+#define _SET_IP_r22 1526
+#define _SET_IP_r33 1527
+#define _SET_UPDATE_r11 1528
+#define _SPILL_OR_RELOAD_r01 1529
+#define _SPILL_OR_RELOAD_r02 1530
+#define _SPILL_OR_RELOAD_r03 1531
+#define _SPILL_OR_RELOAD_r10 1532
+#define _SPILL_OR_RELOAD_r12 1533
+#define _SPILL_OR_RELOAD_r13 1534
+#define _SPILL_OR_RELOAD_r20 1535
+#define _SPILL_OR_RELOAD_r21 1536
+#define _SPILL_OR_RELOAD_r23 1537
+#define _SPILL_OR_RELOAD_r30 1538
+#define _SPILL_OR_RELOAD_r31 1539
+#define _SPILL_OR_RELOAD_r32 1540
+#define _START_EXECUTOR_r00 1541
+#define _STORE_ATTR_r20 1542
+#define _STORE_ATTR_INSTANCE_VALUE_r21 1543
+#define _STORE_ATTR_SLOT_r21 1544
+#define _STORE_ATTR_WITH_HINT_r21 1545
+#define _STORE_DEREF_r10 1546
+#define _STORE_FAST_LOAD_FAST_r11 1547
+#define _STORE_FAST_STORE_FAST_r20 1548
+#define _STORE_GLOBAL_r10 1549
+#define _STORE_NAME_r10 1550
+#define _STORE_SLICE_r30 1551
+#define _STORE_SUBSCR_r30 1552
+#define _STORE_SUBSCR_DICT_r31 1553
+#define _STORE_SUBSCR_DICT_KNOWN_HASH_r31 1554
+#define _STORE_SUBSCR_LIST_INT_r32 1555
+#define _SWAP_r11 1556
+#define _SWAP_2_r02 1557
+#define _SWAP_2_r12 1558
+#define _SWAP_2_r22 1559
+#define _SWAP_2_r33 1560
+#define _SWAP_3_r03 1561
+#define _SWAP_3_r13 1562
+#define _SWAP_3_r23 1563
+#define _SWAP_3_r33 1564
+#define _SWAP_FAST_r01 1565
+#define _SWAP_FAST_r11 1566
+#define _SWAP_FAST_r22 1567
+#define _SWAP_FAST_r33 1568
+#define _SWAP_FAST_0_r01 1569
+#define _SWAP_FAST_0_r11 1570
+#define _SWAP_FAST_0_r22 1571
+#define _SWAP_FAST_0_r33 1572
+#define _SWAP_FAST_1_r01 1573
+#define _SWAP_FAST_1_r11 1574
+#define _SWAP_FAST_1_r22 1575
+#define _SWAP_FAST_1_r33 1576
+#define _SWAP_FAST_2_r01 1577
+#define _SWAP_FAST_2_r11 1578
+#define _SWAP_FAST_2_r22 1579
+#define _SWAP_FAST_2_r33 1580
+#define _SWAP_FAST_3_r01 1581
+#define _SWAP_FAST_3_r11 1582
+#define _SWAP_FAST_3_r22 1583
+#define _SWAP_FAST_3_r33 1584
+#define _SWAP_FAST_4_r01 1585
+#define _SWAP_FAST_4_r11 1586
+#define _SWAP_FAST_4_r22 1587
+#define _SWAP_FAST_4_r33 1588
+#define _SWAP_FAST_5_r01 1589
+#define _SWAP_FAST_5_r11 1590
+#define _SWAP_FAST_5_r22 1591
+#define _SWAP_FAST_5_r33 1592
+#define _SWAP_FAST_6_r01 1593
+#define _SWAP_FAST_6_r11 1594
+#define _SWAP_FAST_6_r22 1595
+#define _SWAP_FAST_6_r33 1596
+#define _SWAP_FAST_7_r01 1597
+#define _SWAP_FAST_7_r11 1598
+#define _SWAP_FAST_7_r22 1599
+#define _SWAP_FAST_7_r33 1600
+#define _TIER2_RESUME_CHECK_r00 1601
+#define _TIER2_RESUME_CHECK_r11 1602
+#define _TIER2_RESUME_CHECK_r22 1603
+#define _TIER2_RESUME_CHECK_r33 1604
+#define _TO_BOOL_r11 1605
+#define _TO_BOOL_BOOL_r01 1606
+#define _TO_BOOL_BOOL_r11 1607
+#define _TO_BOOL_BOOL_r22 1608
+#define _TO_BOOL_BOOL_r33 1609
+#define _TO_BOOL_INT_r02 1610
+#define _TO_BOOL_INT_r12 1611
+#define _TO_BOOL_INT_r23 1612
+#define _TO_BOOL_LIST_r02 1613
+#define _TO_BOOL_LIST_r12 1614
+#define _TO_BOOL_LIST_r23 1615
+#define _TO_BOOL_NONE_r01 1616
+#define _TO_BOOL_NONE_r11 1617
+#define _TO_BOOL_NONE_r22 1618
+#define _TO_BOOL_NONE_r33 1619
+#define _TO_BOOL_STR_r02 1620
+#define _TO_BOOL_STR_r12 1621
+#define _TO_BOOL_STR_r23 1622
+#define _TRACE_RECORD_r00 1623
+#define _UNARY_INVERT_r12 1624
+#define _UNARY_NEGATIVE_r12 1625
+#define _UNARY_NEGATIVE_FLOAT_INPLACE_r02 1626
+#define _UNARY_NEGATIVE_FLOAT_INPLACE_r12 1627
+#define _UNARY_NEGATIVE_FLOAT_INPLACE_r23 1628
+#define _UNARY_NOT_r01 1629
+#define _UNARY_NOT_r11 1630
+#define _UNARY_NOT_r22 1631
+#define _UNARY_NOT_r33 1632
+#define _UNPACK_EX_r10 1633
+#define _UNPACK_SEQUENCE_r10 1634
+#define _UNPACK_SEQUENCE_LIST_r10 1635
+#define _UNPACK_SEQUENCE_TUPLE_r10 1636
+#define _UNPACK_SEQUENCE_TWO_TUPLE_r12 1637
+#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r03 1638
+#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r13 1639
+#define _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10 1640
+#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r02 1641
+#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r12 1642
+#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r23 1643
+#define _WITH_EXCEPT_START_r33 1644
+#define _YIELD_VALUE_r11 1645
+#define MAX_UOP_REGS_ID 1645
#ifdef __cplusplus
}
diff --git a/Include/internal/pycore_uop_metadata.h
b/Include/internal/pycore_uop_metadata.h
index d4cceb5a500cab5..990706c0b329223 100644
--- a/Include/internal/pycore_uop_metadata.h
+++ b/Include/internal/pycore_uop_metadata.h
@@ -283,7 +283,6 @@ const uint32_t _PyUop_Flags[MAX_UOP_ID+1] = {
[_LOAD_SPECIAL] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG |
HAS_ESCAPES_FLAG,
[_WITH_EXCEPT_START] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
[_PUSH_EXC_INFO] = 0,
- [_GUARD_KEYS_VERSION] = HAS_EXIT_FLAG,
[_LOAD_ATTR_METHOD_WITH_VALUES] = HAS_ARG_FLAG,
[_LOAD_ATTR_METHOD_NO_DICT] = HAS_ARG_FLAG,
[_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
@@ -2677,15 +2676,6 @@ const _PyUopCachingInfo _PyUop_Caching[MAX_UOP_ID+1] = {
{ -1, -1, -1 },
},
},
- [_GUARD_KEYS_VERSION] = {
- .best = { 0, 1, 2, 3 },
- .entries = {
- { 1, 0, _GUARD_KEYS_VERSION_r01 },
- { 1, 1, _GUARD_KEYS_VERSION_r11 },
- { 2, 2, _GUARD_KEYS_VERSION_r22 },
- { 3, 3, _GUARD_KEYS_VERSION_r33 },
- },
- },
[_LOAD_ATTR_METHOD_WITH_VALUES] = {
.best = { 0, 1, 2, 2 },
.entries = {
@@ -4496,10 +4486,6 @@ const uint16_t _PyUop_Uncached[MAX_UOP_REGS_ID+1] = {
[_PUSH_EXC_INFO_r02] = _PUSH_EXC_INFO,
[_PUSH_EXC_INFO_r12] = _PUSH_EXC_INFO,
[_PUSH_EXC_INFO_r23] = _PUSH_EXC_INFO,
- [_GUARD_KEYS_VERSION_r01] = _GUARD_KEYS_VERSION,
- [_GUARD_KEYS_VERSION_r11] = _GUARD_KEYS_VERSION,
- [_GUARD_KEYS_VERSION_r22] = _GUARD_KEYS_VERSION,
- [_GUARD_KEYS_VERSION_r33] = _GUARD_KEYS_VERSION,
[_LOAD_ATTR_METHOD_WITH_VALUES_r02] = _LOAD_ATTR_METHOD_WITH_VALUES,
[_LOAD_ATTR_METHOD_WITH_VALUES_r12] = _LOAD_ATTR_METHOD_WITH_VALUES,
[_LOAD_ATTR_METHOD_WITH_VALUES_r23] = _LOAD_ATTR_METHOD_WITH_VALUES,
@@ -5415,11 +5401,6 @@ const char *const _PyOpcode_uop_name[MAX_UOP_REGS_ID+1]
= {
[_GUARD_ITER_VIRTUAL_r11] = "_GUARD_ITER_VIRTUAL_r11",
[_GUARD_ITER_VIRTUAL_r22] = "_GUARD_ITER_VIRTUAL_r22",
[_GUARD_ITER_VIRTUAL_r33] = "_GUARD_ITER_VIRTUAL_r33",
- [_GUARD_KEYS_VERSION] = "_GUARD_KEYS_VERSION",
- [_GUARD_KEYS_VERSION_r01] = "_GUARD_KEYS_VERSION_r01",
- [_GUARD_KEYS_VERSION_r11] = "_GUARD_KEYS_VERSION_r11",
- [_GUARD_KEYS_VERSION_r22] = "_GUARD_KEYS_VERSION_r22",
- [_GUARD_KEYS_VERSION_r33] = "_GUARD_KEYS_VERSION_r33",
[_GUARD_LOAD_SUPER_ATTR_METHOD] = "_GUARD_LOAD_SUPER_ATTR_METHOD",
[_GUARD_LOAD_SUPER_ATTR_METHOD_r03] = "_GUARD_LOAD_SUPER_ATTR_METHOD_r03",
[_GUARD_LOAD_SUPER_ATTR_METHOD_r13] = "_GUARD_LOAD_SUPER_ATTR_METHOD_r13",
@@ -6662,8 +6643,6 @@ int _PyUop_num_popped(int opcode, int oparg)
return 0;
case _PUSH_EXC_INFO:
return 1;
- case _GUARD_KEYS_VERSION:
- return 0;
case _LOAD_ATTR_METHOD_WITH_VALUES:
return 1;
case _LOAD_ATTR_METHOD_NO_DICT:
diff --git a/Lib/test/test_free_threading/test_type.py
b/Lib/test/test_free_threading/test_type.py
index 1255d842dbff48f..0c99bbc759e672a 100644
--- a/Lib/test/test_free_threading/test_type.py
+++ b/Lib/test/test_free_threading/test_type.py
@@ -2,7 +2,7 @@
import unittest
from concurrent.futures import ThreadPoolExecutor
-from threading import Thread
+from threading import Barrier, Thread
from unittest import TestCase
from test.support import threading_helper
@@ -160,6 +160,84 @@ def reader():
self.run_one(writer, reader)
+ def test_race_type_attr_added(self):
+ NROUNDS = 50
+ NSTOPPERS = 4
+ NWRITERS = 4
+ WARM = 8
+ KEY = "foo"
+ def make_reader():
+ ns = {}
+ exec(
+ "def read(o):\n return o.%s\n" % KEY, ns
+ ) # fresh code object per round
+ return ns["read"]
+
+
+ stop_all = [False]
+
+
+ def stopper():
+ class Dummy:
+ pass
+
+ Dummy()
+ while not stop_all[0]:
+ try:
+ Dummy.__abstractmethods__ = frozenset()
+ except Exception:
+ pass
+
+
+ box = {}
+ bugs = [] # (round, tid, stored, read_back)
+
+ def writer(tid):
+ for _ in range(NROUNDS):
+ box["start"].wait()
+ sentinel = box["sentinel"]
+ reader = box["reader"]
+ obj = box["objs"][tid]
+ val = box["vals"][tid]
+ # 1) warm THIS thread's own copy while KEY is absent -> NDV
cached at V
+ for _ in range(WARM):
+ reader(obj)
+ box["race"].wait()
+ # 2) race: store, then read back through our own NDV site
+ setattr(obj, KEY, val)
+ got = reader(obj)
+ if got is sentinel:
+ bugs.append((box["round"], tid, val, got))
+ box["end"].wait()
+
+ box["start"] = Barrier(NWRITERS + 1)
+ box["race"] = Barrier(NWRITERS)
+ box["end"] = Barrier(NWRITERS + 1)
+
+ stoppers = [Thread(target=stopper, daemon=True) for _ in
range(NSTOPPERS)]
+ writers = [Thread(target=writer, args=(i,)) for i in range(NWRITERS)]
+ for t in stoppers + writers:
+ t.start()
+
+ for r in range(NROUNDS):
+ sentinel = type(
+ "SENTINEL_%d" % r, (), {}
+ ) # non-descriptor, deferred refcount
+ C = type("C", (), {KEY: sentinel})
+ box["round"] = r
+ box["sentinel"] = sentinel
+ box["reader"] = make_reader()
+ box["objs"] = [C() for _ in range(NWRITERS)]
+ box["vals"] = [["value-%d-%d" % (r, i)] for i in range(NWRITERS)]
+ box["start"].wait()
+ box["end"].wait()
+
+ stop_all[0] = True
+ for t in writers:
+ t.join()
+
+ self.assertFalse(bugs)
+
def run_one(self, writer_func, reader_func):
barrier = threading.Barrier(NTHREADS)
diff --git a/Modules/_testinternalcapi/test_cases.c.h
b/Modules/_testinternalcapi/test_cases.c.h
index ab80c422687bf2a..a17648a33d4fe4a 100644
--- a/Modules/_testinternalcapi/test_cases.c.h
+++ b/Modules/_testinternalcapi/test_cases.c.h
@@ -9166,18 +9166,7 @@
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
- // _GUARD_KEYS_VERSION
- {
- uint32_t keys_version = read_u32(&this_instr[4].cache);
- PyTypeObject *owner_cls =
Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
- PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject
*)owner_cls;
- PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
- if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) !=
keys_version) {
- UPDATE_MISS_STATS(LOAD_ATTR);
- assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- JUMP_TO_PREDICTED(LOAD_ATTR);
- }
- }
+ /* Skip 2 cache entries */
// _LOAD_ATTR_METHOD_WITH_VALUES
{
PyObject *descr = read_obj(&this_instr[6].cache);
@@ -9362,18 +9351,7 @@
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
- // _GUARD_KEYS_VERSION
- {
- uint32_t keys_version = read_u32(&this_instr[4].cache);
- PyTypeObject *owner_cls =
Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
- PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject
*)owner_cls;
- PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
- if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) !=
keys_version) {
- UPDATE_MISS_STATS(LOAD_ATTR);
- assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- JUMP_TO_PREDICTED(LOAD_ATTR);
- }
- }
+ /* Skip 2 cache entries */
// _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES
{
PyObject *descr = read_obj(&this_instr[6].cache);
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 6029205eac8b20f..246ffe6c18e9b51 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -799,16 +799,12 @@ _PyDict_CheckConsistency(PyObject *op, int check_content)
}
-static PyDictKeysObject*
-new_keys_object(uint8_t log2_size, bool unicode)
+static inline int
+get_log2_bytes(uint8_t log2_size)
{
- Py_ssize_t usable;
int log2_bytes;
- size_t entry_size = unicode ? sizeof(PyDictUnicodeEntry) :
sizeof(PyDictKeyEntry);
-
assert(log2_size >= PyDict_LOG_MINSIZE);
- usable = USABLE_FRACTION((size_t)1<<log2_size);
if (log2_size < 8) {
log2_bytes = log2_size;
}
@@ -824,26 +820,20 @@ new_keys_object(uint8_t log2_size, bool unicode)
log2_bytes = log2_size + 2;
}
- PyDictKeysObject *dk = NULL;
- if (log2_size == PyDict_LOG_MINSIZE && unicode) {
- dk = _Py_FREELIST_POP_MEM(dictkeys);
- }
- if (dk == NULL) {
- dk = PyMem_Malloc(sizeof(PyDictKeysObject)
- + ((size_t)1 << log2_bytes)
- + entry_size * usable);
- if (dk == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
- }
+ return log2_bytes;
+}
+
+static inline void
+init_keys_object(PyDictKeysObject* dk, uint8_t log2_size, int log2_bytes, int
kind,
+ Py_ssize_t usable, Py_ssize_t entry_size)
+{
#ifdef Py_REF_DEBUG
_Py_IncRefTotal(_PyThreadState_GET());
#endif
dk->dk_refcnt = 1;
dk->dk_log2_size = log2_size;
dk->dk_log2_index_bytes = log2_bytes;
- dk->dk_kind = unicode ? DICT_KEYS_UNICODE : DICT_KEYS_GENERAL;
+ dk->dk_kind = kind;
#ifdef Py_GIL_DISABLED
dk->dk_mutex = (PyMutex){0};
#endif
@@ -852,15 +842,51 @@ new_keys_object(uint8_t log2_size, bool unicode)
dk->dk_version = 0;
memset(&dk->dk_indices[0], 0xff, ((size_t)1 << log2_bytes));
memset(&dk->dk_indices[(size_t)1 << log2_bytes], 0, entry_size * usable);
+}
+
+static PyDictKeysObject*
+new_keys_object(uint8_t log2_size, bool unicode)
+{
+ Py_ssize_t usable = USABLE_FRACTION((size_t)1<<log2_size);
+ size_t entry_size = unicode ? sizeof(PyDictUnicodeEntry) :
sizeof(PyDictKeyEntry);
+
+ int log2_bytes = get_log2_bytes(log2_size);
+
+ PyDictKeysObject *dk = NULL;
+ if (log2_size == PyDict_LOG_MINSIZE && unicode) {
+ dk = _Py_FREELIST_POP_MEM(dictkeys);
+ }
+ if (dk == NULL) {
+ dk = PyMem_Malloc(sizeof(PyDictKeysObject)
+ + ((size_t)1 << log2_bytes)
+ + entry_size * usable);
+ if (dk == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ }
+ init_keys_object(dk, log2_size, log2_bytes,
+ unicode ? DICT_KEYS_UNICODE : DICT_KEYS_GENERAL,
+ usable, entry_size);
return dk;
}
static void
free_keys_object(PyDictKeysObject *keys, bool use_qsbr)
{
+ void *ptr = keys;
+#ifdef Py_GIL_DISABLED
+ size_t size = _PyDict_KeysSize(keys);
+#endif
+ if (keys->dk_kind == DICT_KEYS_SPLIT) {
+ ptr = _PyDictKeys_AsSharedKeys(keys);
+#ifdef Py_GIL_DISABLED
+ size += offsetof(struct _instancekeysobject, dsk_keys);
+#endif
+ }
#ifdef Py_GIL_DISABLED
if (use_qsbr) {
- _PyMem_FreeDelayed(keys, _PyDict_KeysSize(keys));
+ _PyMem_FreeDelayed(ptr, size);
return;
}
#endif
@@ -868,7 +894,7 @@ free_keys_object(PyDictKeysObject *keys, bool use_qsbr)
_Py_FREELIST_FREE(dictkeys, keys, PyMem_Free);
}
else {
- PyMem_Free(keys);
+ PyMem_Free(ptr);
}
}
@@ -1925,6 +1951,12 @@ insert_split_key(PyDictKeysObject *keys, PyObject *key,
Py_hash_t hash)
if (ix >= 0) {
return ix;
}
+
+ // We need to acquire the type lock before the keys mutex. Another lock
+ // is never acquired below the keys mutex but a keys mutex can be acquired
+ // elsewhere while we hold the types lock. To avoid deadlocks we must
always
+ // acquire the type lock first.
+ Py_BEGIN_CRITICAL_SECTION_MUTEX(&_PyInterpreterState_GET()->types.mutex);
#endif
LOCK_KEYS(keys);
@@ -1932,6 +1964,12 @@ insert_split_key(PyDictKeysObject *keys, PyObject *key,
Py_hash_t hash)
if (ix == DKIX_EMPTY && keys->dk_usable > 0) {
// Insert into new slot
FT_ATOMIC_STORE_UINT32_RELAXED(keys->dk_version, 0);
+ struct _instancekeysobject *shared_keys =
_PyDictKeys_AsSharedKeys(keys);
+ PyTypeObject *type =
FT_ATOMIC_LOAD_PTR_ACQUIRE(shared_keys->dsk_owning_type);
+ if (type) {
+ // we acquired the type lock above
+ _PyType_Modified_Unlocked(type);
+ }
Py_ssize_t hashpos = find_empty_slot(keys, hash);
ix = keys->dk_nentries;
dictkeys_set_index(keys, hashpos, ix);
@@ -1941,6 +1979,10 @@ insert_split_key(PyDictKeysObject *keys, PyObject *key,
Py_hash_t hash)
}
assert (ix < SHARED_KEYS_MAX_SIZE);
UNLOCK_KEYS(keys);
+
+#ifdef Py_GIL_DISABLED
+ Py_END_CRITICAL_SECTION();
+#endif
return ix;
}
@@ -7216,16 +7258,24 @@ dictvalues_reversed(PyObject *self, PyObject
*Py_UNUSED(ignored))
PyDictKeysObject *
_PyDict_NewKeysForClass(PyHeapTypeObject *cls)
{
- PyDictKeysObject *keys = new_keys_object(NEXT_LOG2_SHARED_KEYS_MAX_SIZE,
1);
- if (keys == NULL) {
+ int log2_bytes = get_log2_bytes(NEXT_LOG2_SHARED_KEYS_MAX_SIZE);
+ Py_ssize_t usable =
USABLE_FRACTION((size_t)1<<NEXT_LOG2_SHARED_KEYS_MAX_SIZE);
+
+ struct _instancekeysobject *shared_keys =
+ PyMem_Malloc(sizeof(struct _instancekeysobject)
+ + ((size_t)1 << log2_bytes)
+ + sizeof(PyDictUnicodeEntry) * usable);
+ if (shared_keys == NULL) {
PyErr_Clear();
+ return NULL;
}
- else {
- assert(keys->dk_nentries == 0);
- /* Set to max size+1 as it will shrink by one before each new object */
- keys->dk_usable = SHARED_KEYS_MAX_SIZE;
- keys->dk_kind = DICT_KEYS_SPLIT;
- }
+
+ shared_keys->dsk_owning_type = (PyTypeObject *)cls;
+ PyDictKeysObject* keys = &shared_keys->dsk_keys;
+ init_keys_object(keys, NEXT_LOG2_SHARED_KEYS_MAX_SIZE, log2_bytes,
DICT_KEYS_SPLIT,
+ SHARED_KEYS_MAX_SIZE, sizeof(PyDictUnicodeEntry));
+ assert(keys->dk_nentries == 0);
+ /* Set to max size+1 as it will shrink by one before each new object */
if (cls->ht_type.tp_dict) {
PyObject *attrs = PyDict_GetItem(cls->ht_type.tp_dict,
&_Py_ID(__static_attributes__));
if (attrs != NULL && PyTuple_Check(attrs)) {
@@ -7243,6 +7293,15 @@ _PyDict_NewKeysForClass(PyHeapTypeObject *cls)
return keys;
}
+void
+_PyDict_RemoveKeysForClass(PyHeapTypeObject *cls)
+{
+ struct _instancekeysobject *shared_keys =
_PyDictKeys_AsSharedKeys(cls->ht_cached_keys);
+ FT_ATOMIC_STORE_PTR_RELEASE(shared_keys->dsk_owning_type, NULL);
+
+ _PyDictKeys_DecRef(cls->ht_cached_keys);
+}
+
void
_PyObject_InitInlineValues(PyObject *obj, PyTypeObject *tp)
{
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index d52cdedff10f96b..b77f3e3bce54551 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -1162,8 +1162,8 @@ set_version_unlocked(PyTypeObject *tp, unsigned int
version)
#endif
}
-static void
-type_modified_unlocked(PyTypeObject *type)
+void
+_PyType_Modified_Unlocked(PyTypeObject *type)
{
/* Invalidate any cached data for the specified type and all
subclasses. This function is called after the base
@@ -1203,7 +1203,7 @@ type_modified_unlocked(PyTypeObject *type)
if (subclass == NULL) {
continue;
}
- type_modified_unlocked(subclass);
+ _PyType_Modified_Unlocked(subclass);
Py_DECREF(subclass);
}
}
@@ -1248,7 +1248,7 @@ PyType_Modified(PyTypeObject *type)
}
BEGIN_TYPE_LOCK();
- type_modified_unlocked(type);
+ _PyType_Modified_Unlocked(type);
END_TYPE_LOCK();
}
@@ -1741,7 +1741,7 @@ type_set_abstractmethods(PyObject *tp, PyObject *value,
void *Py_UNUSED(closure)
}
BEGIN_TYPE_LOCK();
- type_modified_unlocked(type);
+ _PyType_Modified_Unlocked(type);
types_stop_world();
if (abstract)
type_add_flags(type, Py_TPFLAGS_IS_ABSTRACT);
@@ -1968,7 +1968,7 @@ type_set_bases_unlocked(PyTypeObject *type, PyObject
*new_bases, PyTypeObject *b
goto bail;
}
/* Clear the VALID_VERSION flag of 'type' and all its subclasses. */
- type_modified_unlocked(type);
+ _PyType_Modified_Unlocked(type);
}
else {
res = 0;
@@ -3684,7 +3684,7 @@ mro_internal(PyTypeObject *type, int initial, PyObject
**p_old_mro)
// XXX Expand this to Py_TPFLAGS_IMMUTABLETYPE?
if (!(type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN)) {
- type_modified_unlocked(type);
+ _PyType_Modified_Unlocked(type);
}
else {
/* For static builtin types, this is only called during init
@@ -6500,14 +6500,14 @@ _PyType_SetFlagsRecursive(PyTypeObject *self, unsigned
long mask, unsigned long
{
BEGIN_TYPE_LOCK();
/* Ideally, changing flags and invalidating the old version tag would
- happen in one step. But type_modified_unlocked() is re-entrant and
+ happen in one step. But _PyType_Modified_Unlocked() is re-entrant and
cannot run with the world stopped, so we must invalidate first.
Immutable/static-builtin types are skipped because
set_flags_recursive() does not modify them. */
if (!PyType_HasFeature(self, Py_TPFLAGS_IMMUTABLETYPE) &&
(self->tp_flags & mask) != flags)
{
- type_modified_unlocked(self);
+ _PyType_Modified_Unlocked(self);
}
/* Keep TYPE_LOCK held while waiting for stop-the-world so no thread
can reassign a version tag before the flag update. */
@@ -6688,7 +6688,7 @@ type_update_dict(PyTypeObject *type, PyDictObject *dict,
PyObject *name,
PyObject *value, PyObject **old_value)
{
// We don't want any re-entrancy between when we update the dict
- // and call type_modified_unlocked, including running the destructor
+ // and call _PyType_Modified_Unlocked, including running the destructor
// of the current value as it can observe the cache in an inconsistent
// state. Because we have an exact unicode and our dict has exact
// unicodes we know that this will all complete without releasing
@@ -6702,7 +6702,7 @@ type_update_dict(PyTypeObject *type, PyDictObject *dict,
PyObject *name,
update_subclasses() recursion in update_slot(), but carefully:
they each have their own conditions on which to stop
recursing into subclasses. */
- type_modified_unlocked(type);
+ _PyType_Modified_Unlocked(type);
if (_PyDict_SetItem_LockHeld(dict, name, value) < 0) {
PyErr_Format(PyExc_AttributeError,
@@ -7026,7 +7026,7 @@ type_dealloc(PyObject *self)
Py_XDECREF(et->ht_qualname);
Py_XDECREF(et->ht_slots);
if (et->ht_cached_keys) {
- _PyDictKeys_DecRef(et->ht_cached_keys);
+ _PyDict_RemoveKeysForClass(et);
}
Py_XDECREF(et->ht_module);
PyMem_Free(et->_ht_tpname);
@@ -12517,7 +12517,7 @@ PyType_Freeze(PyTypeObject *type)
type_add_flags(type, Py_TPFLAGS_IMMUTABLETYPE);
types_start_world();
ASSERT_TYPE_LOCK_HELD();
- type_modified_unlocked(type);
+ _PyType_Modified_Unlocked(type);
END_TYPE_LOCK();
return 0;
diff --git a/Python/bytecodes.c b/Python/bytecodes.c
index 689feeb0a1e0700..4d7b338e2dbd4c3 100644
--- a/Python/bytecodes.c
+++ b/Python/bytecodes.c
@@ -4231,13 +4231,6 @@ dummy_func(
DEAD(exc);
}
- op(_GUARD_KEYS_VERSION, (keys_version/2, owner -- owner)) {
- PyTypeObject *owner_cls =
Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
- PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls;
- PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
- EXIT_IF(FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) !=
keys_version);
- }
-
op(_LOAD_ATTR_METHOD_WITH_VALUES, (descr/4, owner -- attr, self)) {
assert(oparg & 1);
/* Cached method object */
@@ -4254,7 +4247,7 @@ dummy_func(
_RECORD_TOS_TYPE +
_GUARD_TYPE_VERSION +
_CHECK_MANAGED_OBJECT_HAS_VALUES +
- _GUARD_KEYS_VERSION +
+ unused/2 +
_LOAD_ATTR_METHOD_WITH_VALUES;
op(_LOAD_ATTR_METHOD_NO_DICT, (descr/4, owner -- attr, self)) {
@@ -4288,7 +4281,7 @@ dummy_func(
_RECORD_TOS_TYPE +
_GUARD_TYPE_VERSION +
_CHECK_MANAGED_OBJECT_HAS_VALUES +
- _GUARD_KEYS_VERSION +
+ unused/2 +
_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES;
op(_LOAD_ATTR_NONDESCRIPTOR_NO_DICT, (descr/4, owner -- attr)) {
diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h
index a012f14f7fbebe2..e45bbd7cceb295f 100644
--- a/Python/executor_cases.c.h
+++ b/Python/executor_cases.c.h
@@ -16306,103 +16306,6 @@
break;
}
- case _GUARD_KEYS_VERSION_r01: {
- CHECK_CURRENT_CACHED_VALUES(0);
- ASSERT_WITHIN_STACK_BOUNDS_IGNORING_CACHE(__FILE__, __LINE__);
- _PyStackRef owner;
- owner = stack_pointer[-1];
- uint32_t keys_version = (uint32_t)CURRENT_OPERAND0_32();
- PyTypeObject *owner_cls =
Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
- PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls;
- PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
- if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) !=
keys_version) {
- UOP_STAT_INC(uopcode, miss);
- SET_CURRENT_CACHED_VALUES(0);
- JUMP_TO_JUMP_TARGET();
- }
- _tos_cache0 = owner;
- SET_CURRENT_CACHED_VALUES(1);
- stack_pointer += -1;
- ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
- ASSERT_WITHIN_STACK_BOUNDS_IGNORING_CACHE(__FILE__, __LINE__);
- break;
- }
-
- case _GUARD_KEYS_VERSION_r11: {
- CHECK_CURRENT_CACHED_VALUES(1);
- ASSERT_WITHIN_STACK_BOUNDS_IGNORING_CACHE(__FILE__, __LINE__);
- _PyStackRef owner;
- _PyStackRef _stack_item_0 = _tos_cache0;
- owner = _stack_item_0;
- uint32_t keys_version = (uint32_t)CURRENT_OPERAND0_32();
- PyTypeObject *owner_cls =
Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
- PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls;
- PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
- if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) !=
keys_version) {
- UOP_STAT_INC(uopcode, miss);
- _tos_cache0 = owner;
- SET_CURRENT_CACHED_VALUES(1);
- JUMP_TO_JUMP_TARGET();
- }
- _tos_cache0 = owner;
- SET_CURRENT_CACHED_VALUES(1);
- ASSERT_WITHIN_STACK_BOUNDS_IGNORING_CACHE(__FILE__, __LINE__);
- break;
- }
-
- case _GUARD_KEYS_VERSION_r22: {
- CHECK_CURRENT_CACHED_VALUES(2);
- ASSERT_WITHIN_STACK_BOUNDS_IGNORING_CACHE(__FILE__, __LINE__);
- _PyStackRef owner;
- _PyStackRef _stack_item_0 = _tos_cache0;
- _PyStackRef _stack_item_1 = _tos_cache1;
- owner = _stack_item_1;
- uint32_t keys_version = (uint32_t)CURRENT_OPERAND0_32();
- PyTypeObject *owner_cls =
Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
- PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls;
- PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
- if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) !=
keys_version) {
- UOP_STAT_INC(uopcode, miss);
- _tos_cache1 = owner;
- _tos_cache0 = _stack_item_0;
- SET_CURRENT_CACHED_VALUES(2);
- JUMP_TO_JUMP_TARGET();
- }
- _tos_cache1 = owner;
- _tos_cache0 = _stack_item_0;
- SET_CURRENT_CACHED_VALUES(2);
- ASSERT_WITHIN_STACK_BOUNDS_IGNORING_CACHE(__FILE__, __LINE__);
- break;
- }
-
- case _GUARD_KEYS_VERSION_r33: {
- CHECK_CURRENT_CACHED_VALUES(3);
- ASSERT_WITHIN_STACK_BOUNDS_IGNORING_CACHE(__FILE__, __LINE__);
- _PyStackRef owner;
- _PyStackRef _stack_item_0 = _tos_cache0;
- _PyStackRef _stack_item_1 = _tos_cache1;
- _PyStackRef _stack_item_2 = _tos_cache2;
- owner = _stack_item_2;
- uint32_t keys_version = (uint32_t)CURRENT_OPERAND0_32();
- PyTypeObject *owner_cls =
Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
- PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls;
- PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
- if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) !=
keys_version) {
- UOP_STAT_INC(uopcode, miss);
- _tos_cache2 = owner;
- _tos_cache1 = _stack_item_1;
- _tos_cache0 = _stack_item_0;
- SET_CURRENT_CACHED_VALUES(3);
- JUMP_TO_JUMP_TARGET();
- }
- _tos_cache2 = owner;
- _tos_cache1 = _stack_item_1;
- _tos_cache0 = _stack_item_0;
- SET_CURRENT_CACHED_VALUES(3);
- ASSERT_WITHIN_STACK_BOUNDS_IGNORING_CACHE(__FILE__, __LINE__);
- break;
- }
-
case _LOAD_ATTR_METHOD_WITH_VALUES_r02: {
CHECK_CURRENT_CACHED_VALUES(0);
ASSERT_WITHIN_STACK_BOUNDS_IGNORING_CACHE(__FILE__, __LINE__);
diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h
index b72116d367634d8..6178dc70c1b80e7 100644
--- a/Python/generated_cases.c.h
+++ b/Python/generated_cases.c.h
@@ -9165,18 +9165,7 @@
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
- // _GUARD_KEYS_VERSION
- {
- uint32_t keys_version = read_u32(&this_instr[4].cache);
- PyTypeObject *owner_cls =
Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
- PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject
*)owner_cls;
- PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
- if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) !=
keys_version) {
- UPDATE_MISS_STATS(LOAD_ATTR);
- assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- JUMP_TO_PREDICTED(LOAD_ATTR);
- }
- }
+ /* Skip 2 cache entries */
// _LOAD_ATTR_METHOD_WITH_VALUES
{
PyObject *descr = read_obj(&this_instr[6].cache);
@@ -9361,18 +9350,7 @@
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
- // _GUARD_KEYS_VERSION
- {
- uint32_t keys_version = read_u32(&this_instr[4].cache);
- PyTypeObject *owner_cls =
Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
- PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject
*)owner_cls;
- PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
- if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) !=
keys_version) {
- UPDATE_MISS_STATS(LOAD_ATTR);
- assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- JUMP_TO_PREDICTED(LOAD_ATTR);
- }
- }
+ /* Skip 2 cache entries */
// _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES
{
PyObject *descr = read_obj(&this_instr[6].cache);
diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h
index 3ad23c3a74f7087..5e110360b81b445 100644
--- a/Python/optimizer_cases.c.h
+++ b/Python/optimizer_cases.c.h
@@ -3922,10 +3922,6 @@
break;
}
- case _GUARD_KEYS_VERSION: {
- break;
- }
-
case _LOAD_ATTR_METHOD_WITH_VALUES: {
JitOptRef owner;
JitOptRef attr;
diff --git a/Python/specialize.c b/Python/specialize.c
index 6aaae6f383d22f5..773b55c329c7720 100644
--- a/Python/specialize.c
+++ b/Python/specialize.c
@@ -980,12 +980,15 @@ static int
specialize_instance_load_attr(PyObject* owner, _Py_CODEUNIT* instr, PyObject*
name)
{
// 0 is not a valid version
- uint32_t shared_keys_version = 0;
- bool shadow = instance_has_key(owner, name, &shared_keys_version);
PyObject *descr = NULL;
unsigned int tp_version = 0;
PyTypeObject *type = Py_TYPE(owner);
+ // Read the type version before the keys version, we could have a
concurrent
+ // modification of the split keys in which case we update the keys version
and
+ // then the type version, this ensures we will still deopt if that happens.
DescriptorClassification kind = analyze_descriptor_load(type, name,
&descr, &tp_version);
+ uint32_t shared_keys_version = 0;
+ bool shadow = instance_has_key(owner, name, &shared_keys_version);
int result = do_specialize_instance_load_attr(owner, instr, name, shadow,
shared_keys_version, kind, descr, tp_version);
Py_XDECREF(descr);
return result;
@@ -1286,7 +1289,6 @@ specialize_attr_loadclassattr(PyObject *owner,
_Py_CODEUNIT *instr,
SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_OUT_OF_VERSIONS);
return 0;
}
- write_u32(cache->keys_version, shared_keys_version);
specialize(instr, is_method ? LOAD_ATTR_METHOD_WITH_VALUES :
LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES);
}
else {
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]