diff --git a/Include/internal/pycore_optimizer.h b/Include/internal/pycore_optimizer.h index 89e08e86ed6982..3779daeb85b1ad 100644 --- a/Include/internal/pycore_optimizer.h +++ b/Include/internal/pycore_optimizer.h @@ -211,7 +211,8 @@ static inline uint16_t uop_get_error_target(const _PyUOpInstruction *inst) #define REF_IS_BORROWED 1 #define REF_IS_INVALID 2 -#define REF_TAG_BITS 3 +#define REF_IS_UNIQUE 4 +#define REF_TAG_BITS 7 #define JIT_BITS_TO_PTR_MASKED(REF) ((JitOptSymbol *)(((REF).bits) & (~REF_TAG_BITS))) @@ -242,6 +243,31 @@ PyJitRef_IsInvalid(JitOptRef ref) return (ref.bits & REF_IS_INVALID) == REF_IS_INVALID; } +static inline JitOptRef +PyJitRef_MakeUnique(JitOptRef ref) +{ + assert((ref.bits & REF_IS_UNIQUE) == 0); + return (JitOptRef){ ref.bits | REF_IS_UNIQUE }; +} + +static inline JitOptRef +PyJitRef_RemoveUnique(JitOptRef ref) +{ + return (JitOptRef){ ref.bits & (~REF_IS_UNIQUE) }; +} + +static inline bool +PyJitRef_IsUnique(JitOptRef ref) +{ + return (ref.bits & REF_IS_UNIQUE) == REF_IS_UNIQUE; +} + +static inline JitOptRef +PyJitRef_StripBorrowInfo(JitOptRef ref) +{ + return (JitOptRef){ .bits = ref.bits & ~(REF_IS_BORROWED | REF_IS_INVALID) }; +} + static inline JitOptRef PyJitRef_StripReferenceInfo(JitOptRef ref) { diff --git a/Include/internal/pycore_tuple.h b/Include/internal/pycore_tuple.h index 46db02593ad106..8809be28f50802 100644 --- a/Include/internal/pycore_tuple.h +++ b/Include/internal/pycore_tuple.h @@ -21,6 +21,8 @@ extern PyStatus _PyTuple_InitGlobalObjects(PyInterpreterState *); /* other API */ +PyAPI_FUNC(void) _PyTuple_EmptyExactDealloc(PyObject *self); + #define _PyTuple_ITEMS(op) _Py_RVALUE(_PyTuple_CAST(op)->ob_item) PyAPI_FUNC(PyObject *)_PyTuple_FromStackRefStealOnSuccess(const union _PyStackRef *, Py_ssize_t); diff --git a/Include/internal/pycore_uop_ids.h b/Include/internal/pycore_uop_ids.h index a1abe168605cd5..64f2463115fcf1 100644 --- a/Include/internal/pycore_uop_ids.h +++ b/Include/internal/pycore_uop_ids.h @@ -379,876 +379,878 @@ extern "C" { #define _UNPACK_SEQUENCE_LIST 579 #define _UNPACK_SEQUENCE_TUPLE 580 #define _UNPACK_SEQUENCE_TWO_TUPLE 581 +#define _UNPACK_SEQUENCE_UNIQUE_TUPLE 582 #define _WITH_EXCEPT_START WITH_EXCEPT_START #define _YIELD_VALUE YIELD_VALUE -#define MAX_UOP_ID 581 -#define _BINARY_OP_r23 582 -#define _BINARY_OP_ADD_FLOAT_r03 583 -#define _BINARY_OP_ADD_FLOAT_r13 584 -#define _BINARY_OP_ADD_FLOAT_r23 585 -#define _BINARY_OP_ADD_INT_r03 586 -#define _BINARY_OP_ADD_INT_r13 587 -#define _BINARY_OP_ADD_INT_r23 588 -#define _BINARY_OP_ADD_UNICODE_r03 589 -#define _BINARY_OP_ADD_UNICODE_r13 590 -#define _BINARY_OP_ADD_UNICODE_r23 591 -#define _BINARY_OP_EXTEND_r23 592 -#define _BINARY_OP_INPLACE_ADD_UNICODE_r21 593 -#define _BINARY_OP_MULTIPLY_FLOAT_r03 594 -#define _BINARY_OP_MULTIPLY_FLOAT_r13 595 -#define _BINARY_OP_MULTIPLY_FLOAT_r23 596 -#define _BINARY_OP_MULTIPLY_INT_r03 597 -#define _BINARY_OP_MULTIPLY_INT_r13 598 -#define _BINARY_OP_MULTIPLY_INT_r23 599 -#define _BINARY_OP_SUBSCR_CHECK_FUNC_r23 600 -#define _BINARY_OP_SUBSCR_DICT_r23 601 -#define _BINARY_OP_SUBSCR_INIT_CALL_r01 602 -#define _BINARY_OP_SUBSCR_INIT_CALL_r11 603 -#define _BINARY_OP_SUBSCR_INIT_CALL_r21 604 -#define _BINARY_OP_SUBSCR_INIT_CALL_r31 605 -#define _BINARY_OP_SUBSCR_LIST_INT_r23 606 -#define _BINARY_OP_SUBSCR_LIST_SLICE_r21 607 -#define _BINARY_OP_SUBSCR_STR_INT_r23 608 -#define _BINARY_OP_SUBSCR_TUPLE_INT_r03 609 -#define _BINARY_OP_SUBSCR_TUPLE_INT_r13 610 -#define _BINARY_OP_SUBSCR_TUPLE_INT_r23 611 -#define _BINARY_OP_SUBSCR_USTR_INT_r23 612 -#define _BINARY_OP_SUBTRACT_FLOAT_r03 613 -#define _BINARY_OP_SUBTRACT_FLOAT_r13 614 -#define _BINARY_OP_SUBTRACT_FLOAT_r23 615 -#define _BINARY_OP_SUBTRACT_INT_r03 616 -#define _BINARY_OP_SUBTRACT_INT_r13 617 -#define _BINARY_OP_SUBTRACT_INT_r23 618 -#define _BINARY_SLICE_r31 619 -#define _BUILD_INTERPOLATION_r01 620 -#define _BUILD_LIST_r01 621 -#define _BUILD_MAP_r01 622 -#define _BUILD_SET_r01 623 -#define _BUILD_SLICE_r01 624 -#define _BUILD_STRING_r01 625 -#define _BUILD_TEMPLATE_r21 626 -#define _BUILD_TUPLE_r01 627 -#define _CALL_BUILTIN_CLASS_r01 628 -#define _CALL_BUILTIN_FAST_r01 629 -#define _CALL_BUILTIN_FAST_WITH_KEYWORDS_r01 630 -#define _CALL_BUILTIN_O_r03 631 -#define _CALL_FUNCTION_EX_NON_PY_GENERAL_r31 632 -#define _CALL_INTRINSIC_1_r11 633 -#define _CALL_INTRINSIC_2_r21 634 -#define _CALL_ISINSTANCE_r31 635 -#define _CALL_KW_NON_PY_r11 636 -#define _CALL_LEN_r33 637 -#define _CALL_LIST_APPEND_r03 638 -#define _CALL_LIST_APPEND_r13 639 -#define _CALL_LIST_APPEND_r23 640 -#define _CALL_LIST_APPEND_r33 641 -#define _CALL_METHOD_DESCRIPTOR_FAST_r01 642 -#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r01 643 -#define _CALL_METHOD_DESCRIPTOR_NOARGS_r01 644 -#define _CALL_METHOD_DESCRIPTOR_O_r03 645 -#define _CALL_NON_PY_GENERAL_r01 646 -#define _CALL_STR_1_r32 647 -#define _CALL_TUPLE_1_r32 648 -#define _CALL_TYPE_1_r02 649 -#define _CALL_TYPE_1_r12 650 -#define _CALL_TYPE_1_r22 651 -#define _CALL_TYPE_1_r32 652 -#define _CHECK_AND_ALLOCATE_OBJECT_r00 653 -#define _CHECK_ATTR_CLASS_r01 654 -#define _CHECK_ATTR_CLASS_r11 655 -#define _CHECK_ATTR_CLASS_r22 656 -#define _CHECK_ATTR_CLASS_r33 657 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r01 658 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r11 659 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r22 660 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r33 661 -#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_r00 662 -#define _CHECK_EG_MATCH_r22 663 -#define _CHECK_EXC_MATCH_r22 664 -#define _CHECK_FUNCTION_EXACT_ARGS_r00 665 -#define _CHECK_FUNCTION_VERSION_r00 666 -#define _CHECK_FUNCTION_VERSION_INLINE_r00 667 -#define _CHECK_FUNCTION_VERSION_INLINE_r11 668 -#define _CHECK_FUNCTION_VERSION_INLINE_r22 669 -#define _CHECK_FUNCTION_VERSION_INLINE_r33 670 -#define _CHECK_FUNCTION_VERSION_KW_r11 671 -#define _CHECK_IS_NOT_PY_CALLABLE_r00 672 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r03 673 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r13 674 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r23 675 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r33 676 -#define _CHECK_IS_NOT_PY_CALLABLE_KW_r11 677 -#define _CHECK_IS_PY_CALLABLE_EX_r03 678 -#define _CHECK_IS_PY_CALLABLE_EX_r13 679 -#define _CHECK_IS_PY_CALLABLE_EX_r23 680 -#define _CHECK_IS_PY_CALLABLE_EX_r33 681 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r01 682 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r11 683 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r22 684 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r33 685 -#define _CHECK_METHOD_VERSION_r00 686 -#define _CHECK_METHOD_VERSION_KW_r11 687 -#define _CHECK_PEP_523_r00 688 -#define _CHECK_PEP_523_r11 689 -#define _CHECK_PEP_523_r22 690 -#define _CHECK_PEP_523_r33 691 -#define _CHECK_PERIODIC_r00 692 -#define _CHECK_PERIODIC_AT_END_r00 693 -#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM_r00 694 -#define _CHECK_RECURSION_REMAINING_r00 695 -#define _CHECK_RECURSION_REMAINING_r11 696 -#define _CHECK_RECURSION_REMAINING_r22 697 -#define _CHECK_RECURSION_REMAINING_r33 698 -#define _CHECK_STACK_SPACE_r00 699 -#define _CHECK_STACK_SPACE_OPERAND_r00 700 -#define _CHECK_STACK_SPACE_OPERAND_r11 701 -#define _CHECK_STACK_SPACE_OPERAND_r22 702 -#define _CHECK_STACK_SPACE_OPERAND_r33 703 -#define _CHECK_VALIDITY_r00 704 -#define _CHECK_VALIDITY_r11 705 -#define _CHECK_VALIDITY_r22 706 -#define _CHECK_VALIDITY_r33 707 -#define _COLD_DYNAMIC_EXIT_r00 708 -#define _COLD_EXIT_r00 709 -#define _COMPARE_OP_r21 710 -#define _COMPARE_OP_FLOAT_r03 711 -#define _COMPARE_OP_FLOAT_r13 712 -#define _COMPARE_OP_FLOAT_r23 713 -#define _COMPARE_OP_INT_r23 714 -#define _COMPARE_OP_STR_r23 715 -#define _CONTAINS_OP_r23 716 -#define _CONTAINS_OP_DICT_r23 717 -#define _CONTAINS_OP_SET_r23 718 -#define _CONVERT_VALUE_r11 719 -#define _COPY_r01 720 -#define _COPY_1_r02 721 -#define _COPY_1_r12 722 -#define _COPY_1_r23 723 -#define _COPY_2_r03 724 -#define _COPY_2_r13 725 -#define _COPY_2_r23 726 -#define _COPY_3_r03 727 -#define _COPY_3_r13 728 -#define _COPY_3_r23 729 -#define _COPY_3_r33 730 -#define _COPY_FREE_VARS_r00 731 -#define _COPY_FREE_VARS_r11 732 -#define _COPY_FREE_VARS_r22 733 -#define _COPY_FREE_VARS_r33 734 -#define _CREATE_INIT_FRAME_r01 735 -#define _DELETE_ATTR_r10 736 -#define _DELETE_DEREF_r00 737 -#define _DELETE_FAST_r00 738 -#define _DELETE_GLOBAL_r00 739 -#define _DELETE_NAME_r00 740 -#define _DELETE_SUBSCR_r20 741 -#define _DEOPT_r00 742 -#define _DEOPT_r10 743 -#define _DEOPT_r20 744 -#define _DEOPT_r30 745 -#define _DICT_MERGE_r10 746 -#define _DICT_UPDATE_r10 747 -#define _DO_CALL_r01 748 -#define _DO_CALL_FUNCTION_EX_r31 749 -#define _DO_CALL_KW_r11 750 -#define _DYNAMIC_EXIT_r00 751 -#define _DYNAMIC_EXIT_r10 752 -#define _DYNAMIC_EXIT_r20 753 -#define _DYNAMIC_EXIT_r30 754 -#define _END_FOR_r10 755 -#define _END_SEND_r21 756 -#define _ERROR_POP_N_r00 757 -#define _EXIT_INIT_CHECK_r10 758 -#define _EXIT_TRACE_r00 759 -#define _EXIT_TRACE_r10 760 -#define _EXIT_TRACE_r20 761 -#define _EXIT_TRACE_r30 762 -#define _EXPAND_METHOD_r00 763 -#define _EXPAND_METHOD_KW_r11 764 -#define _FATAL_ERROR_r00 765 -#define _FATAL_ERROR_r11 766 -#define _FATAL_ERROR_r22 767 -#define _FATAL_ERROR_r33 768 -#define _FORMAT_SIMPLE_r11 769 -#define _FORMAT_WITH_SPEC_r21 770 -#define _FOR_ITER_r23 771 -#define _FOR_ITER_GEN_FRAME_r03 772 -#define _FOR_ITER_GEN_FRAME_r13 773 -#define _FOR_ITER_GEN_FRAME_r23 774 -#define _FOR_ITER_TIER_TWO_r23 775 -#define _GET_AITER_r11 776 -#define _GET_ANEXT_r12 777 -#define _GET_AWAITABLE_r11 778 -#define _GET_ITER_r12 779 -#define _GET_LEN_r12 780 -#define _GET_YIELD_FROM_ITER_r11 781 -#define _GUARD_BINARY_OP_EXTEND_r22 782 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r02 783 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r12 784 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r22 785 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r33 786 -#define _GUARD_BIT_IS_SET_POP_r00 787 -#define _GUARD_BIT_IS_SET_POP_r10 788 -#define _GUARD_BIT_IS_SET_POP_r21 789 -#define _GUARD_BIT_IS_SET_POP_r32 790 -#define _GUARD_BIT_IS_SET_POP_4_r00 791 -#define _GUARD_BIT_IS_SET_POP_4_r10 792 -#define _GUARD_BIT_IS_SET_POP_4_r21 793 -#define _GUARD_BIT_IS_SET_POP_4_r32 794 -#define _GUARD_BIT_IS_SET_POP_5_r00 795 -#define _GUARD_BIT_IS_SET_POP_5_r10 796 -#define _GUARD_BIT_IS_SET_POP_5_r21 797 -#define _GUARD_BIT_IS_SET_POP_5_r32 798 -#define _GUARD_BIT_IS_SET_POP_6_r00 799 -#define _GUARD_BIT_IS_SET_POP_6_r10 800 -#define _GUARD_BIT_IS_SET_POP_6_r21 801 -#define _GUARD_BIT_IS_SET_POP_6_r32 802 -#define _GUARD_BIT_IS_SET_POP_7_r00 803 -#define _GUARD_BIT_IS_SET_POP_7_r10 804 -#define _GUARD_BIT_IS_SET_POP_7_r21 805 -#define _GUARD_BIT_IS_SET_POP_7_r32 806 -#define _GUARD_BIT_IS_UNSET_POP_r00 807 -#define _GUARD_BIT_IS_UNSET_POP_r10 808 -#define _GUARD_BIT_IS_UNSET_POP_r21 809 -#define _GUARD_BIT_IS_UNSET_POP_r32 810 -#define _GUARD_BIT_IS_UNSET_POP_4_r00 811 -#define _GUARD_BIT_IS_UNSET_POP_4_r10 812 -#define _GUARD_BIT_IS_UNSET_POP_4_r21 813 -#define _GUARD_BIT_IS_UNSET_POP_4_r32 814 -#define _GUARD_BIT_IS_UNSET_POP_5_r00 815 -#define _GUARD_BIT_IS_UNSET_POP_5_r10 816 -#define _GUARD_BIT_IS_UNSET_POP_5_r21 817 -#define _GUARD_BIT_IS_UNSET_POP_5_r32 818 -#define _GUARD_BIT_IS_UNSET_POP_6_r00 819 -#define _GUARD_BIT_IS_UNSET_POP_6_r10 820 -#define _GUARD_BIT_IS_UNSET_POP_6_r21 821 -#define _GUARD_BIT_IS_UNSET_POP_6_r32 822 -#define _GUARD_BIT_IS_UNSET_POP_7_r00 823 -#define _GUARD_BIT_IS_UNSET_POP_7_r10 824 -#define _GUARD_BIT_IS_UNSET_POP_7_r21 825 -#define _GUARD_BIT_IS_UNSET_POP_7_r32 826 -#define _GUARD_CALLABLE_ISINSTANCE_r03 827 -#define _GUARD_CALLABLE_ISINSTANCE_r13 828 -#define _GUARD_CALLABLE_ISINSTANCE_r23 829 -#define _GUARD_CALLABLE_ISINSTANCE_r33 830 -#define _GUARD_CALLABLE_LEN_r03 831 -#define _GUARD_CALLABLE_LEN_r13 832 -#define _GUARD_CALLABLE_LEN_r23 833 -#define _GUARD_CALLABLE_LEN_r33 834 -#define _GUARD_CALLABLE_LIST_APPEND_r03 835 -#define _GUARD_CALLABLE_LIST_APPEND_r13 836 -#define _GUARD_CALLABLE_LIST_APPEND_r23 837 -#define _GUARD_CALLABLE_LIST_APPEND_r33 838 -#define _GUARD_CALLABLE_STR_1_r03 839 -#define _GUARD_CALLABLE_STR_1_r13 840 -#define _GUARD_CALLABLE_STR_1_r23 841 -#define _GUARD_CALLABLE_STR_1_r33 842 -#define _GUARD_CALLABLE_TUPLE_1_r03 843 -#define _GUARD_CALLABLE_TUPLE_1_r13 844 -#define _GUARD_CALLABLE_TUPLE_1_r23 845 -#define _GUARD_CALLABLE_TUPLE_1_r33 846 -#define _GUARD_CALLABLE_TYPE_1_r03 847 -#define _GUARD_CALLABLE_TYPE_1_r13 848 -#define _GUARD_CALLABLE_TYPE_1_r23 849 -#define _GUARD_CALLABLE_TYPE_1_r33 850 -#define _GUARD_DORV_NO_DICT_r01 851 -#define _GUARD_DORV_NO_DICT_r11 852 -#define _GUARD_DORV_NO_DICT_r22 853 -#define _GUARD_DORV_NO_DICT_r33 854 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r01 855 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r11 856 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r22 857 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r33 858 -#define _GUARD_GLOBALS_VERSION_r00 859 -#define _GUARD_GLOBALS_VERSION_r11 860 -#define _GUARD_GLOBALS_VERSION_r22 861 -#define _GUARD_GLOBALS_VERSION_r33 862 -#define _GUARD_IP_RETURN_GENERATOR_r00 863 -#define _GUARD_IP_RETURN_GENERATOR_r11 864 -#define _GUARD_IP_RETURN_GENERATOR_r22 865 -#define _GUARD_IP_RETURN_GENERATOR_r33 866 -#define _GUARD_IP_RETURN_VALUE_r00 867 -#define _GUARD_IP_RETURN_VALUE_r11 868 -#define _GUARD_IP_RETURN_VALUE_r22 869 -#define _GUARD_IP_RETURN_VALUE_r33 870 -#define _GUARD_IP_YIELD_VALUE_r00 871 -#define _GUARD_IP_YIELD_VALUE_r11 872 -#define _GUARD_IP_YIELD_VALUE_r22 873 -#define _GUARD_IP_YIELD_VALUE_r33 874 -#define _GUARD_IP__PUSH_FRAME_r00 875 -#define _GUARD_IP__PUSH_FRAME_r11 876 -#define _GUARD_IP__PUSH_FRAME_r22 877 -#define _GUARD_IP__PUSH_FRAME_r33 878 -#define _GUARD_IS_FALSE_POP_r00 879 -#define _GUARD_IS_FALSE_POP_r10 880 -#define _GUARD_IS_FALSE_POP_r21 881 -#define _GUARD_IS_FALSE_POP_r32 882 -#define _GUARD_IS_NONE_POP_r00 883 -#define _GUARD_IS_NONE_POP_r10 884 -#define _GUARD_IS_NONE_POP_r21 885 -#define _GUARD_IS_NONE_POP_r32 886 -#define _GUARD_IS_NOT_NONE_POP_r10 887 -#define _GUARD_IS_TRUE_POP_r00 888 -#define _GUARD_IS_TRUE_POP_r10 889 -#define _GUARD_IS_TRUE_POP_r21 890 -#define _GUARD_IS_TRUE_POP_r32 891 -#define _GUARD_KEYS_VERSION_r01 892 -#define _GUARD_KEYS_VERSION_r11 893 -#define _GUARD_KEYS_VERSION_r22 894 -#define _GUARD_KEYS_VERSION_r33 895 -#define _GUARD_NOS_COMPACT_ASCII_r02 896 -#define _GUARD_NOS_COMPACT_ASCII_r12 897 -#define _GUARD_NOS_COMPACT_ASCII_r22 898 -#define _GUARD_NOS_COMPACT_ASCII_r33 899 -#define _GUARD_NOS_DICT_r02 900 -#define _GUARD_NOS_DICT_r12 901 -#define _GUARD_NOS_DICT_r22 902 -#define _GUARD_NOS_DICT_r33 903 -#define _GUARD_NOS_FLOAT_r02 904 -#define _GUARD_NOS_FLOAT_r12 905 -#define _GUARD_NOS_FLOAT_r22 906 -#define _GUARD_NOS_FLOAT_r33 907 -#define _GUARD_NOS_INT_r02 908 -#define _GUARD_NOS_INT_r12 909 -#define _GUARD_NOS_INT_r22 910 -#define _GUARD_NOS_INT_r33 911 -#define _GUARD_NOS_LIST_r02 912 -#define _GUARD_NOS_LIST_r12 913 -#define _GUARD_NOS_LIST_r22 914 -#define _GUARD_NOS_LIST_r33 915 -#define _GUARD_NOS_NOT_NULL_r02 916 -#define _GUARD_NOS_NOT_NULL_r12 917 -#define _GUARD_NOS_NOT_NULL_r22 918 -#define _GUARD_NOS_NOT_NULL_r33 919 -#define _GUARD_NOS_NULL_r02 920 -#define _GUARD_NOS_NULL_r12 921 -#define _GUARD_NOS_NULL_r22 922 -#define _GUARD_NOS_NULL_r33 923 -#define _GUARD_NOS_OVERFLOWED_r02 924 -#define _GUARD_NOS_OVERFLOWED_r12 925 -#define _GUARD_NOS_OVERFLOWED_r22 926 -#define _GUARD_NOS_OVERFLOWED_r33 927 -#define _GUARD_NOS_TUPLE_r02 928 -#define _GUARD_NOS_TUPLE_r12 929 -#define _GUARD_NOS_TUPLE_r22 930 -#define _GUARD_NOS_TUPLE_r33 931 -#define _GUARD_NOS_UNICODE_r02 932 -#define _GUARD_NOS_UNICODE_r12 933 -#define _GUARD_NOS_UNICODE_r22 934 -#define _GUARD_NOS_UNICODE_r33 935 -#define _GUARD_NOT_EXHAUSTED_LIST_r02 936 -#define _GUARD_NOT_EXHAUSTED_LIST_r12 937 -#define _GUARD_NOT_EXHAUSTED_LIST_r22 938 -#define _GUARD_NOT_EXHAUSTED_LIST_r33 939 -#define _GUARD_NOT_EXHAUSTED_RANGE_r02 940 -#define _GUARD_NOT_EXHAUSTED_RANGE_r12 941 -#define _GUARD_NOT_EXHAUSTED_RANGE_r22 942 -#define _GUARD_NOT_EXHAUSTED_RANGE_r33 943 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r02 944 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r12 945 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r22 946 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r33 947 -#define _GUARD_THIRD_NULL_r03 948 -#define _GUARD_THIRD_NULL_r13 949 -#define _GUARD_THIRD_NULL_r23 950 -#define _GUARD_THIRD_NULL_r33 951 -#define _GUARD_TOS_ANY_SET_r01 952 -#define _GUARD_TOS_ANY_SET_r11 953 -#define _GUARD_TOS_ANY_SET_r22 954 -#define _GUARD_TOS_ANY_SET_r33 955 -#define _GUARD_TOS_DICT_r01 956 -#define _GUARD_TOS_DICT_r11 957 -#define _GUARD_TOS_DICT_r22 958 -#define _GUARD_TOS_DICT_r33 959 -#define _GUARD_TOS_FLOAT_r01 960 -#define _GUARD_TOS_FLOAT_r11 961 -#define _GUARD_TOS_FLOAT_r22 962 -#define _GUARD_TOS_FLOAT_r33 963 -#define _GUARD_TOS_INT_r01 964 -#define _GUARD_TOS_INT_r11 965 -#define _GUARD_TOS_INT_r22 966 -#define _GUARD_TOS_INT_r33 967 -#define _GUARD_TOS_LIST_r01 968 -#define _GUARD_TOS_LIST_r11 969 -#define _GUARD_TOS_LIST_r22 970 -#define _GUARD_TOS_LIST_r33 971 -#define _GUARD_TOS_OVERFLOWED_r01 972 -#define _GUARD_TOS_OVERFLOWED_r11 973 -#define _GUARD_TOS_OVERFLOWED_r22 974 -#define _GUARD_TOS_OVERFLOWED_r33 975 -#define _GUARD_TOS_SLICE_r01 976 -#define _GUARD_TOS_SLICE_r11 977 -#define _GUARD_TOS_SLICE_r22 978 -#define _GUARD_TOS_SLICE_r33 979 -#define _GUARD_TOS_TUPLE_r01 980 -#define _GUARD_TOS_TUPLE_r11 981 -#define _GUARD_TOS_TUPLE_r22 982 -#define _GUARD_TOS_TUPLE_r33 983 -#define _GUARD_TOS_UNICODE_r01 984 -#define _GUARD_TOS_UNICODE_r11 985 -#define _GUARD_TOS_UNICODE_r22 986 -#define _GUARD_TOS_UNICODE_r33 987 -#define _GUARD_TYPE_VERSION_r01 988 -#define _GUARD_TYPE_VERSION_r11 989 -#define _GUARD_TYPE_VERSION_r22 990 -#define _GUARD_TYPE_VERSION_r33 991 -#define _GUARD_TYPE_VERSION_AND_LOCK_r01 992 -#define _GUARD_TYPE_VERSION_AND_LOCK_r11 993 -#define _GUARD_TYPE_VERSION_AND_LOCK_r22 994 -#define _GUARD_TYPE_VERSION_AND_LOCK_r33 995 -#define _HANDLE_PENDING_AND_DEOPT_r00 996 -#define _HANDLE_PENDING_AND_DEOPT_r10 997 -#define _HANDLE_PENDING_AND_DEOPT_r20 998 -#define _HANDLE_PENDING_AND_DEOPT_r30 999 -#define _IMPORT_FROM_r12 1000 -#define _IMPORT_NAME_r21 1001 -#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS_r00 1002 -#define _INIT_CALL_PY_EXACT_ARGS_r01 1003 -#define _INIT_CALL_PY_EXACT_ARGS_0_r01 1004 -#define _INIT_CALL_PY_EXACT_ARGS_1_r01 1005 -#define _INIT_CALL_PY_EXACT_ARGS_2_r01 1006 -#define _INIT_CALL_PY_EXACT_ARGS_3_r01 1007 -#define _INIT_CALL_PY_EXACT_ARGS_4_r01 1008 -#define _INSERT_1_LOAD_CONST_INLINE_r02 1009 -#define _INSERT_1_LOAD_CONST_INLINE_r12 1010 -#define _INSERT_1_LOAD_CONST_INLINE_r23 1011 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r02 1012 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r12 1013 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r23 1014 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r03 1015 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r13 1016 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r23 1017 -#define _INSERT_NULL_r10 1018 -#define _INSTRUMENTED_FOR_ITER_r23 1019 -#define _INSTRUMENTED_INSTRUCTION_r00 1020 -#define _INSTRUMENTED_JUMP_FORWARD_r00 1021 -#define _INSTRUMENTED_JUMP_FORWARD_r11 1022 -#define _INSTRUMENTED_JUMP_FORWARD_r22 1023 -#define _INSTRUMENTED_JUMP_FORWARD_r33 1024 -#define _INSTRUMENTED_LINE_r00 1025 -#define _INSTRUMENTED_NOT_TAKEN_r00 1026 -#define _INSTRUMENTED_NOT_TAKEN_r11 1027 -#define _INSTRUMENTED_NOT_TAKEN_r22 1028 -#define _INSTRUMENTED_NOT_TAKEN_r33 1029 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r00 1030 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r10 1031 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r21 1032 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r32 1033 -#define _INSTRUMENTED_POP_JUMP_IF_NONE_r10 1034 -#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE_r10 1035 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r00 1036 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r10 1037 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r21 1038 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r32 1039 -#define _IS_NONE_r11 1040 -#define _IS_OP_r03 1041 -#define _IS_OP_r13 1042 -#define _IS_OP_r23 1043 -#define _ITER_CHECK_LIST_r02 1044 -#define _ITER_CHECK_LIST_r12 1045 -#define _ITER_CHECK_LIST_r22 1046 -#define _ITER_CHECK_LIST_r33 1047 -#define _ITER_CHECK_RANGE_r02 1048 -#define _ITER_CHECK_RANGE_r12 1049 -#define _ITER_CHECK_RANGE_r22 1050 -#define _ITER_CHECK_RANGE_r33 1051 -#define _ITER_CHECK_TUPLE_r02 1052 -#define _ITER_CHECK_TUPLE_r12 1053 -#define _ITER_CHECK_TUPLE_r22 1054 -#define _ITER_CHECK_TUPLE_r33 1055 -#define _ITER_JUMP_LIST_r02 1056 -#define _ITER_JUMP_LIST_r12 1057 -#define _ITER_JUMP_LIST_r22 1058 -#define _ITER_JUMP_LIST_r33 1059 -#define _ITER_JUMP_RANGE_r02 1060 -#define _ITER_JUMP_RANGE_r12 1061 -#define _ITER_JUMP_RANGE_r22 1062 -#define _ITER_JUMP_RANGE_r33 1063 -#define _ITER_JUMP_TUPLE_r02 1064 -#define _ITER_JUMP_TUPLE_r12 1065 -#define _ITER_JUMP_TUPLE_r22 1066 -#define _ITER_JUMP_TUPLE_r33 1067 -#define _ITER_NEXT_LIST_r23 1068 -#define _ITER_NEXT_LIST_TIER_TWO_r23 1069 -#define _ITER_NEXT_RANGE_r03 1070 -#define _ITER_NEXT_RANGE_r13 1071 -#define _ITER_NEXT_RANGE_r23 1072 -#define _ITER_NEXT_TUPLE_r03 1073 -#define _ITER_NEXT_TUPLE_r13 1074 -#define _ITER_NEXT_TUPLE_r23 1075 -#define _JUMP_BACKWARD_NO_INTERRUPT_r00 1076 -#define _JUMP_BACKWARD_NO_INTERRUPT_r11 1077 -#define _JUMP_BACKWARD_NO_INTERRUPT_r22 1078 -#define _JUMP_BACKWARD_NO_INTERRUPT_r33 1079 -#define _JUMP_TO_TOP_r00 1080 -#define _LIST_APPEND_r10 1081 -#define _LIST_EXTEND_r10 1082 -#define _LOAD_ATTR_r10 1083 -#define _LOAD_ATTR_CLASS_r11 1084 -#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_r11 1085 -#define _LOAD_ATTR_INSTANCE_VALUE_r02 1086 -#define _LOAD_ATTR_INSTANCE_VALUE_r12 1087 -#define _LOAD_ATTR_INSTANCE_VALUE_r23 1088 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r02 1089 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r12 1090 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r23 1091 -#define _LOAD_ATTR_METHOD_NO_DICT_r02 1092 -#define _LOAD_ATTR_METHOD_NO_DICT_r12 1093 -#define _LOAD_ATTR_METHOD_NO_DICT_r23 1094 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r02 1095 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r12 1096 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r23 1097 -#define _LOAD_ATTR_MODULE_r12 1098 -#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT_r11 1099 -#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES_r11 1100 -#define _LOAD_ATTR_PROPERTY_FRAME_r11 1101 -#define _LOAD_ATTR_SLOT_r02 1102 -#define _LOAD_ATTR_SLOT_r12 1103 -#define _LOAD_ATTR_SLOT_r23 1104 -#define _LOAD_ATTR_WITH_HINT_r12 1105 -#define _LOAD_BUILD_CLASS_r01 1106 -#define _LOAD_BYTECODE_r00 1107 -#define _LOAD_COMMON_CONSTANT_r01 1108 -#define _LOAD_COMMON_CONSTANT_r12 1109 -#define _LOAD_COMMON_CONSTANT_r23 1110 -#define _LOAD_CONST_r01 1111 -#define _LOAD_CONST_r12 1112 -#define _LOAD_CONST_r23 1113 -#define _LOAD_CONST_INLINE_r01 1114 -#define _LOAD_CONST_INLINE_r12 1115 -#define _LOAD_CONST_INLINE_r23 1116 -#define _LOAD_CONST_INLINE_BORROW_r01 1117 -#define _LOAD_CONST_INLINE_BORROW_r12 1118 -#define _LOAD_CONST_INLINE_BORROW_r23 1119 -#define _LOAD_CONST_UNDER_INLINE_r02 1120 -#define _LOAD_CONST_UNDER_INLINE_r12 1121 -#define _LOAD_CONST_UNDER_INLINE_r23 1122 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r02 1123 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r12 1124 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r23 1125 -#define _LOAD_DEREF_r01 1126 -#define _LOAD_FAST_r01 1127 -#define _LOAD_FAST_r12 1128 -#define _LOAD_FAST_r23 1129 -#define _LOAD_FAST_0_r01 1130 -#define _LOAD_FAST_0_r12 1131 -#define _LOAD_FAST_0_r23 1132 -#define _LOAD_FAST_1_r01 1133 -#define _LOAD_FAST_1_r12 1134 -#define _LOAD_FAST_1_r23 1135 -#define _LOAD_FAST_2_r01 1136 -#define _LOAD_FAST_2_r12 1137 -#define _LOAD_FAST_2_r23 1138 -#define _LOAD_FAST_3_r01 1139 -#define _LOAD_FAST_3_r12 1140 -#define _LOAD_FAST_3_r23 1141 -#define _LOAD_FAST_4_r01 1142 -#define _LOAD_FAST_4_r12 1143 -#define _LOAD_FAST_4_r23 1144 -#define _LOAD_FAST_5_r01 1145 -#define _LOAD_FAST_5_r12 1146 -#define _LOAD_FAST_5_r23 1147 -#define _LOAD_FAST_6_r01 1148 -#define _LOAD_FAST_6_r12 1149 -#define _LOAD_FAST_6_r23 1150 -#define _LOAD_FAST_7_r01 1151 -#define _LOAD_FAST_7_r12 1152 -#define _LOAD_FAST_7_r23 1153 -#define _LOAD_FAST_AND_CLEAR_r01 1154 -#define _LOAD_FAST_AND_CLEAR_r12 1155 -#define _LOAD_FAST_AND_CLEAR_r23 1156 -#define _LOAD_FAST_BORROW_r01 1157 -#define _LOAD_FAST_BORROW_r12 1158 -#define _LOAD_FAST_BORROW_r23 1159 -#define _LOAD_FAST_BORROW_0_r01 1160 -#define _LOAD_FAST_BORROW_0_r12 1161 -#define _LOAD_FAST_BORROW_0_r23 1162 -#define _LOAD_FAST_BORROW_1_r01 1163 -#define _LOAD_FAST_BORROW_1_r12 1164 -#define _LOAD_FAST_BORROW_1_r23 1165 -#define _LOAD_FAST_BORROW_2_r01 1166 -#define _LOAD_FAST_BORROW_2_r12 1167 -#define _LOAD_FAST_BORROW_2_r23 1168 -#define _LOAD_FAST_BORROW_3_r01 1169 -#define _LOAD_FAST_BORROW_3_r12 1170 -#define _LOAD_FAST_BORROW_3_r23 1171 -#define _LOAD_FAST_BORROW_4_r01 1172 -#define _LOAD_FAST_BORROW_4_r12 1173 -#define _LOAD_FAST_BORROW_4_r23 1174 -#define _LOAD_FAST_BORROW_5_r01 1175 -#define _LOAD_FAST_BORROW_5_r12 1176 -#define _LOAD_FAST_BORROW_5_r23 1177 -#define _LOAD_FAST_BORROW_6_r01 1178 -#define _LOAD_FAST_BORROW_6_r12 1179 -#define _LOAD_FAST_BORROW_6_r23 1180 -#define _LOAD_FAST_BORROW_7_r01 1181 -#define _LOAD_FAST_BORROW_7_r12 1182 -#define _LOAD_FAST_BORROW_7_r23 1183 -#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r02 1184 -#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r13 1185 -#define _LOAD_FAST_CHECK_r01 1186 -#define _LOAD_FAST_CHECK_r12 1187 -#define _LOAD_FAST_CHECK_r23 1188 -#define _LOAD_FAST_LOAD_FAST_r02 1189 -#define _LOAD_FAST_LOAD_FAST_r13 1190 -#define _LOAD_FROM_DICT_OR_DEREF_r11 1191 -#define _LOAD_FROM_DICT_OR_GLOBALS_r11 1192 -#define _LOAD_GLOBAL_r00 1193 -#define _LOAD_GLOBAL_BUILTINS_r01 1194 -#define _LOAD_GLOBAL_MODULE_r01 1195 -#define _LOAD_LOCALS_r01 1196 -#define _LOAD_LOCALS_r12 1197 -#define _LOAD_LOCALS_r23 1198 -#define _LOAD_NAME_r01 1199 -#define _LOAD_SMALL_INT_r01 1200 -#define _LOAD_SMALL_INT_r12 1201 -#define _LOAD_SMALL_INT_r23 1202 -#define _LOAD_SMALL_INT_0_r01 1203 -#define _LOAD_SMALL_INT_0_r12 1204 -#define _LOAD_SMALL_INT_0_r23 1205 -#define _LOAD_SMALL_INT_1_r01 1206 -#define _LOAD_SMALL_INT_1_r12 1207 -#define _LOAD_SMALL_INT_1_r23 1208 -#define _LOAD_SMALL_INT_2_r01 1209 -#define _LOAD_SMALL_INT_2_r12 1210 -#define _LOAD_SMALL_INT_2_r23 1211 -#define _LOAD_SMALL_INT_3_r01 1212 -#define _LOAD_SMALL_INT_3_r12 1213 -#define _LOAD_SMALL_INT_3_r23 1214 -#define _LOAD_SPECIAL_r00 1215 -#define _LOAD_SUPER_ATTR_ATTR_r31 1216 -#define _LOAD_SUPER_ATTR_METHOD_r32 1217 -#define _MAKE_CALLARGS_A_TUPLE_r33 1218 -#define _MAKE_CELL_r00 1219 -#define _MAKE_FUNCTION_r11 1220 -#define _MAKE_WARM_r00 1221 -#define _MAKE_WARM_r11 1222 -#define _MAKE_WARM_r22 1223 -#define _MAKE_WARM_r33 1224 -#define _MAP_ADD_r20 1225 -#define _MATCH_CLASS_r31 1226 -#define _MATCH_KEYS_r23 1227 -#define _MATCH_MAPPING_r02 1228 -#define _MATCH_MAPPING_r12 1229 -#define _MATCH_MAPPING_r23 1230 -#define _MATCH_SEQUENCE_r02 1231 -#define _MATCH_SEQUENCE_r12 1232 -#define _MATCH_SEQUENCE_r23 1233 -#define _MAYBE_EXPAND_METHOD_r00 1234 -#define _MAYBE_EXPAND_METHOD_KW_r11 1235 -#define _MONITOR_CALL_r00 1236 -#define _MONITOR_CALL_KW_r11 1237 -#define _MONITOR_JUMP_BACKWARD_r00 1238 -#define _MONITOR_JUMP_BACKWARD_r11 1239 -#define _MONITOR_JUMP_BACKWARD_r22 1240 -#define _MONITOR_JUMP_BACKWARD_r33 1241 -#define _MONITOR_RESUME_r00 1242 -#define _NOP_r00 1243 -#define _NOP_r11 1244 -#define _NOP_r22 1245 -#define _NOP_r33 1246 -#define _POP_CALL_r20 1247 -#define _POP_CALL_LOAD_CONST_INLINE_BORROW_r21 1248 -#define _POP_CALL_ONE_r30 1249 -#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW_r31 1250 -#define _POP_CALL_TWO_r30 1251 -#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW_r31 1252 -#define _POP_EXCEPT_r10 1253 -#define _POP_ITER_r20 1254 -#define _POP_JUMP_IF_FALSE_r00 1255 -#define _POP_JUMP_IF_FALSE_r10 1256 -#define _POP_JUMP_IF_FALSE_r21 1257 -#define _POP_JUMP_IF_FALSE_r32 1258 -#define _POP_JUMP_IF_TRUE_r00 1259 -#define _POP_JUMP_IF_TRUE_r10 1260 -#define _POP_JUMP_IF_TRUE_r21 1261 -#define _POP_JUMP_IF_TRUE_r32 1262 -#define _POP_TOP_r10 1263 -#define _POP_TOP_FLOAT_r00 1264 -#define _POP_TOP_FLOAT_r10 1265 -#define _POP_TOP_FLOAT_r21 1266 -#define _POP_TOP_FLOAT_r32 1267 -#define _POP_TOP_INT_r00 1268 -#define _POP_TOP_INT_r10 1269 -#define _POP_TOP_INT_r21 1270 -#define _POP_TOP_INT_r32 1271 -#define _POP_TOP_LOAD_CONST_INLINE_r11 1272 -#define _POP_TOP_LOAD_CONST_INLINE_BORROW_r11 1273 -#define _POP_TOP_NOP_r00 1274 -#define _POP_TOP_NOP_r10 1275 -#define _POP_TOP_NOP_r21 1276 -#define _POP_TOP_NOP_r32 1277 -#define _POP_TOP_UNICODE_r00 1278 -#define _POP_TOP_UNICODE_r10 1279 -#define _POP_TOP_UNICODE_r21 1280 -#define _POP_TOP_UNICODE_r32 1281 -#define _POP_TWO_r20 1282 -#define _POP_TWO_LOAD_CONST_INLINE_BORROW_r21 1283 -#define _PUSH_EXC_INFO_r02 1284 -#define _PUSH_EXC_INFO_r12 1285 -#define _PUSH_EXC_INFO_r23 1286 -#define _PUSH_FRAME_r10 1287 -#define _PUSH_NULL_r01 1288 -#define _PUSH_NULL_r12 1289 -#define _PUSH_NULL_r23 1290 -#define _PUSH_NULL_CONDITIONAL_r00 1291 -#define _PY_FRAME_EX_r31 1292 -#define _PY_FRAME_GENERAL_r01 1293 -#define _PY_FRAME_KW_r11 1294 -#define _QUICKEN_RESUME_r00 1295 -#define _QUICKEN_RESUME_r11 1296 -#define _QUICKEN_RESUME_r22 1297 -#define _QUICKEN_RESUME_r33 1298 -#define _REPLACE_WITH_TRUE_r02 1299 -#define _REPLACE_WITH_TRUE_r12 1300 -#define _REPLACE_WITH_TRUE_r23 1301 -#define _RESUME_CHECK_r00 1302 -#define _RESUME_CHECK_r11 1303 -#define _RESUME_CHECK_r22 1304 -#define _RESUME_CHECK_r33 1305 -#define _RETURN_GENERATOR_r01 1306 -#define _RETURN_VALUE_r11 1307 -#define _SAVE_RETURN_OFFSET_r00 1308 -#define _SAVE_RETURN_OFFSET_r11 1309 -#define _SAVE_RETURN_OFFSET_r22 1310 -#define _SAVE_RETURN_OFFSET_r33 1311 -#define _SEND_r22 1312 -#define _SEND_GEN_FRAME_r22 1313 -#define _SETUP_ANNOTATIONS_r00 1314 -#define _SET_ADD_r10 1315 -#define _SET_FUNCTION_ATTRIBUTE_r01 1316 -#define _SET_FUNCTION_ATTRIBUTE_r11 1317 -#define _SET_FUNCTION_ATTRIBUTE_r21 1318 -#define _SET_FUNCTION_ATTRIBUTE_r32 1319 -#define _SET_IP_r00 1320 -#define _SET_IP_r11 1321 -#define _SET_IP_r22 1322 -#define _SET_IP_r33 1323 -#define _SET_UPDATE_r10 1324 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r02 1325 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r12 1326 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r22 1327 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r32 1328 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r03 1329 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r13 1330 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r23 1331 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r33 1332 -#define _SPILL_OR_RELOAD_r01 1333 -#define _SPILL_OR_RELOAD_r02 1334 -#define _SPILL_OR_RELOAD_r03 1335 -#define _SPILL_OR_RELOAD_r10 1336 -#define _SPILL_OR_RELOAD_r12 1337 -#define _SPILL_OR_RELOAD_r13 1338 -#define _SPILL_OR_RELOAD_r20 1339 -#define _SPILL_OR_RELOAD_r21 1340 -#define _SPILL_OR_RELOAD_r23 1341 -#define _SPILL_OR_RELOAD_r30 1342 -#define _SPILL_OR_RELOAD_r31 1343 -#define _SPILL_OR_RELOAD_r32 1344 -#define _START_EXECUTOR_r00 1345 -#define _STORE_ATTR_r20 1346 -#define _STORE_ATTR_INSTANCE_VALUE_r21 1347 -#define _STORE_ATTR_INSTANCE_VALUE_NULL_r01 1348 -#define _STORE_ATTR_INSTANCE_VALUE_NULL_r11 1349 -#define _STORE_ATTR_INSTANCE_VALUE_NULL_r21 1350 -#define _STORE_ATTR_INSTANCE_VALUE_NULL_r32 1351 -#define _STORE_ATTR_SLOT_r21 1352 -#define _STORE_ATTR_SLOT_NULL_r01 1353 -#define _STORE_ATTR_SLOT_NULL_r11 1354 -#define _STORE_ATTR_SLOT_NULL_r21 1355 -#define _STORE_ATTR_SLOT_NULL_r32 1356 -#define _STORE_ATTR_WITH_HINT_r21 1357 -#define _STORE_DEREF_r10 1358 -#define _STORE_FAST_LOAD_FAST_r11 1359 -#define _STORE_FAST_STORE_FAST_r20 1360 -#define _STORE_GLOBAL_r10 1361 -#define _STORE_NAME_r10 1362 -#define _STORE_SLICE_r30 1363 -#define _STORE_SUBSCR_r30 1364 -#define _STORE_SUBSCR_DICT_r31 1365 -#define _STORE_SUBSCR_LIST_INT_r32 1366 -#define _SWAP_r11 1367 -#define _SWAP_2_r02 1368 -#define _SWAP_2_r12 1369 -#define _SWAP_2_r22 1370 -#define _SWAP_2_r33 1371 -#define _SWAP_3_r03 1372 -#define _SWAP_3_r13 1373 -#define _SWAP_3_r23 1374 -#define _SWAP_3_r33 1375 -#define _SWAP_FAST_r01 1376 -#define _SWAP_FAST_r11 1377 -#define _SWAP_FAST_r22 1378 -#define _SWAP_FAST_r33 1379 -#define _SWAP_FAST_0_r01 1380 -#define _SWAP_FAST_0_r11 1381 -#define _SWAP_FAST_0_r22 1382 -#define _SWAP_FAST_0_r33 1383 -#define _SWAP_FAST_1_r01 1384 -#define _SWAP_FAST_1_r11 1385 -#define _SWAP_FAST_1_r22 1386 -#define _SWAP_FAST_1_r33 1387 -#define _SWAP_FAST_2_r01 1388 -#define _SWAP_FAST_2_r11 1389 -#define _SWAP_FAST_2_r22 1390 -#define _SWAP_FAST_2_r33 1391 -#define _SWAP_FAST_3_r01 1392 -#define _SWAP_FAST_3_r11 1393 -#define _SWAP_FAST_3_r22 1394 -#define _SWAP_FAST_3_r33 1395 -#define _SWAP_FAST_4_r01 1396 -#define _SWAP_FAST_4_r11 1397 -#define _SWAP_FAST_4_r22 1398 -#define _SWAP_FAST_4_r33 1399 -#define _SWAP_FAST_5_r01 1400 -#define _SWAP_FAST_5_r11 1401 -#define _SWAP_FAST_5_r22 1402 -#define _SWAP_FAST_5_r33 1403 -#define _SWAP_FAST_6_r01 1404 -#define _SWAP_FAST_6_r11 1405 -#define _SWAP_FAST_6_r22 1406 -#define _SWAP_FAST_6_r33 1407 -#define _SWAP_FAST_7_r01 1408 -#define _SWAP_FAST_7_r11 1409 -#define _SWAP_FAST_7_r22 1410 -#define _SWAP_FAST_7_r33 1411 -#define _TIER2_RESUME_CHECK_r00 1412 -#define _TIER2_RESUME_CHECK_r11 1413 -#define _TIER2_RESUME_CHECK_r22 1414 -#define _TIER2_RESUME_CHECK_r33 1415 -#define _TO_BOOL_r11 1416 -#define _TO_BOOL_BOOL_r01 1417 -#define _TO_BOOL_BOOL_r11 1418 -#define _TO_BOOL_BOOL_r22 1419 -#define _TO_BOOL_BOOL_r33 1420 -#define _TO_BOOL_INT_r02 1421 -#define _TO_BOOL_INT_r12 1422 -#define _TO_BOOL_INT_r23 1423 -#define _TO_BOOL_LIST_r02 1424 -#define _TO_BOOL_LIST_r12 1425 -#define _TO_BOOL_LIST_r23 1426 -#define _TO_BOOL_NONE_r01 1427 -#define _TO_BOOL_NONE_r11 1428 -#define _TO_BOOL_NONE_r22 1429 -#define _TO_BOOL_NONE_r33 1430 -#define _TO_BOOL_STR_r02 1431 -#define _TO_BOOL_STR_r12 1432 -#define _TO_BOOL_STR_r23 1433 -#define _TRACE_RECORD_r00 1434 -#define _UNARY_INVERT_r12 1435 -#define _UNARY_NEGATIVE_r12 1436 -#define _UNARY_NOT_r01 1437 -#define _UNARY_NOT_r11 1438 -#define _UNARY_NOT_r22 1439 -#define _UNARY_NOT_r33 1440 -#define _UNPACK_EX_r10 1441 -#define _UNPACK_SEQUENCE_r10 1442 -#define _UNPACK_SEQUENCE_LIST_r10 1443 -#define _UNPACK_SEQUENCE_TUPLE_r10 1444 -#define _UNPACK_SEQUENCE_TWO_TUPLE_r12 1445 -#define _WITH_EXCEPT_START_r33 1446 -#define _YIELD_VALUE_r11 1447 -#define MAX_UOP_REGS_ID 1447 +#define MAX_UOP_ID 582 +#define _BINARY_OP_r23 583 +#define _BINARY_OP_ADD_FLOAT_r03 584 +#define _BINARY_OP_ADD_FLOAT_r13 585 +#define _BINARY_OP_ADD_FLOAT_r23 586 +#define _BINARY_OP_ADD_INT_r03 587 +#define _BINARY_OP_ADD_INT_r13 588 +#define _BINARY_OP_ADD_INT_r23 589 +#define _BINARY_OP_ADD_UNICODE_r03 590 +#define _BINARY_OP_ADD_UNICODE_r13 591 +#define _BINARY_OP_ADD_UNICODE_r23 592 +#define _BINARY_OP_EXTEND_r23 593 +#define _BINARY_OP_INPLACE_ADD_UNICODE_r21 594 +#define _BINARY_OP_MULTIPLY_FLOAT_r03 595 +#define _BINARY_OP_MULTIPLY_FLOAT_r13 596 +#define _BINARY_OP_MULTIPLY_FLOAT_r23 597 +#define _BINARY_OP_MULTIPLY_INT_r03 598 +#define _BINARY_OP_MULTIPLY_INT_r13 599 +#define _BINARY_OP_MULTIPLY_INT_r23 600 +#define _BINARY_OP_SUBSCR_CHECK_FUNC_r23 601 +#define _BINARY_OP_SUBSCR_DICT_r23 602 +#define _BINARY_OP_SUBSCR_INIT_CALL_r01 603 +#define _BINARY_OP_SUBSCR_INIT_CALL_r11 604 +#define _BINARY_OP_SUBSCR_INIT_CALL_r21 605 +#define _BINARY_OP_SUBSCR_INIT_CALL_r31 606 +#define _BINARY_OP_SUBSCR_LIST_INT_r23 607 +#define _BINARY_OP_SUBSCR_LIST_SLICE_r21 608 +#define _BINARY_OP_SUBSCR_STR_INT_r23 609 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r03 610 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r13 611 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r23 612 +#define _BINARY_OP_SUBSCR_USTR_INT_r23 613 +#define _BINARY_OP_SUBTRACT_FLOAT_r03 614 +#define _BINARY_OP_SUBTRACT_FLOAT_r13 615 +#define _BINARY_OP_SUBTRACT_FLOAT_r23 616 +#define _BINARY_OP_SUBTRACT_INT_r03 617 +#define _BINARY_OP_SUBTRACT_INT_r13 618 +#define _BINARY_OP_SUBTRACT_INT_r23 619 +#define _BINARY_SLICE_r31 620 +#define _BUILD_INTERPOLATION_r01 621 +#define _BUILD_LIST_r01 622 +#define _BUILD_MAP_r01 623 +#define _BUILD_SET_r01 624 +#define _BUILD_SLICE_r01 625 +#define _BUILD_STRING_r01 626 +#define _BUILD_TEMPLATE_r21 627 +#define _BUILD_TUPLE_r01 628 +#define _CALL_BUILTIN_CLASS_r01 629 +#define _CALL_BUILTIN_FAST_r01 630 +#define _CALL_BUILTIN_FAST_WITH_KEYWORDS_r01 631 +#define _CALL_BUILTIN_O_r03 632 +#define _CALL_FUNCTION_EX_NON_PY_GENERAL_r31 633 +#define _CALL_INTRINSIC_1_r11 634 +#define _CALL_INTRINSIC_2_r21 635 +#define _CALL_ISINSTANCE_r31 636 +#define _CALL_KW_NON_PY_r11 637 +#define _CALL_LEN_r33 638 +#define _CALL_LIST_APPEND_r03 639 +#define _CALL_LIST_APPEND_r13 640 +#define _CALL_LIST_APPEND_r23 641 +#define _CALL_LIST_APPEND_r33 642 +#define _CALL_METHOD_DESCRIPTOR_FAST_r01 643 +#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r01 644 +#define _CALL_METHOD_DESCRIPTOR_NOARGS_r01 645 +#define _CALL_METHOD_DESCRIPTOR_O_r03 646 +#define _CALL_NON_PY_GENERAL_r01 647 +#define _CALL_STR_1_r32 648 +#define _CALL_TUPLE_1_r32 649 +#define _CALL_TYPE_1_r02 650 +#define _CALL_TYPE_1_r12 651 +#define _CALL_TYPE_1_r22 652 +#define _CALL_TYPE_1_r32 653 +#define _CHECK_AND_ALLOCATE_OBJECT_r00 654 +#define _CHECK_ATTR_CLASS_r01 655 +#define _CHECK_ATTR_CLASS_r11 656 +#define _CHECK_ATTR_CLASS_r22 657 +#define _CHECK_ATTR_CLASS_r33 658 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r01 659 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r11 660 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r22 661 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r33 662 +#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_r00 663 +#define _CHECK_EG_MATCH_r22 664 +#define _CHECK_EXC_MATCH_r22 665 +#define _CHECK_FUNCTION_EXACT_ARGS_r00 666 +#define _CHECK_FUNCTION_VERSION_r00 667 +#define _CHECK_FUNCTION_VERSION_INLINE_r00 668 +#define _CHECK_FUNCTION_VERSION_INLINE_r11 669 +#define _CHECK_FUNCTION_VERSION_INLINE_r22 670 +#define _CHECK_FUNCTION_VERSION_INLINE_r33 671 +#define _CHECK_FUNCTION_VERSION_KW_r11 672 +#define _CHECK_IS_NOT_PY_CALLABLE_r00 673 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r03 674 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r13 675 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r23 676 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r33 677 +#define _CHECK_IS_NOT_PY_CALLABLE_KW_r11 678 +#define _CHECK_IS_PY_CALLABLE_EX_r03 679 +#define _CHECK_IS_PY_CALLABLE_EX_r13 680 +#define _CHECK_IS_PY_CALLABLE_EX_r23 681 +#define _CHECK_IS_PY_CALLABLE_EX_r33 682 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r01 683 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r11 684 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r22 685 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r33 686 +#define _CHECK_METHOD_VERSION_r00 687 +#define _CHECK_METHOD_VERSION_KW_r11 688 +#define _CHECK_PEP_523_r00 689 +#define _CHECK_PEP_523_r11 690 +#define _CHECK_PEP_523_r22 691 +#define _CHECK_PEP_523_r33 692 +#define _CHECK_PERIODIC_r00 693 +#define _CHECK_PERIODIC_AT_END_r00 694 +#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM_r00 695 +#define _CHECK_RECURSION_REMAINING_r00 696 +#define _CHECK_RECURSION_REMAINING_r11 697 +#define _CHECK_RECURSION_REMAINING_r22 698 +#define _CHECK_RECURSION_REMAINING_r33 699 +#define _CHECK_STACK_SPACE_r00 700 +#define _CHECK_STACK_SPACE_OPERAND_r00 701 +#define _CHECK_STACK_SPACE_OPERAND_r11 702 +#define _CHECK_STACK_SPACE_OPERAND_r22 703 +#define _CHECK_STACK_SPACE_OPERAND_r33 704 +#define _CHECK_VALIDITY_r00 705 +#define _CHECK_VALIDITY_r11 706 +#define _CHECK_VALIDITY_r22 707 +#define _CHECK_VALIDITY_r33 708 +#define _COLD_DYNAMIC_EXIT_r00 709 +#define _COLD_EXIT_r00 710 +#define _COMPARE_OP_r21 711 +#define _COMPARE_OP_FLOAT_r03 712 +#define _COMPARE_OP_FLOAT_r13 713 +#define _COMPARE_OP_FLOAT_r23 714 +#define _COMPARE_OP_INT_r23 715 +#define _COMPARE_OP_STR_r23 716 +#define _CONTAINS_OP_r23 717 +#define _CONTAINS_OP_DICT_r23 718 +#define _CONTAINS_OP_SET_r23 719 +#define _CONVERT_VALUE_r11 720 +#define _COPY_r01 721 +#define _COPY_1_r02 722 +#define _COPY_1_r12 723 +#define _COPY_1_r23 724 +#define _COPY_2_r03 725 +#define _COPY_2_r13 726 +#define _COPY_2_r23 727 +#define _COPY_3_r03 728 +#define _COPY_3_r13 729 +#define _COPY_3_r23 730 +#define _COPY_3_r33 731 +#define _COPY_FREE_VARS_r00 732 +#define _COPY_FREE_VARS_r11 733 +#define _COPY_FREE_VARS_r22 734 +#define _COPY_FREE_VARS_r33 735 +#define _CREATE_INIT_FRAME_r01 736 +#define _DELETE_ATTR_r10 737 +#define _DELETE_DEREF_r00 738 +#define _DELETE_FAST_r00 739 +#define _DELETE_GLOBAL_r00 740 +#define _DELETE_NAME_r00 741 +#define _DELETE_SUBSCR_r20 742 +#define _DEOPT_r00 743 +#define _DEOPT_r10 744 +#define _DEOPT_r20 745 +#define _DEOPT_r30 746 +#define _DICT_MERGE_r10 747 +#define _DICT_UPDATE_r10 748 +#define _DO_CALL_r01 749 +#define _DO_CALL_FUNCTION_EX_r31 750 +#define _DO_CALL_KW_r11 751 +#define _DYNAMIC_EXIT_r00 752 +#define _DYNAMIC_EXIT_r10 753 +#define _DYNAMIC_EXIT_r20 754 +#define _DYNAMIC_EXIT_r30 755 +#define _END_FOR_r10 756 +#define _END_SEND_r21 757 +#define _ERROR_POP_N_r00 758 +#define _EXIT_INIT_CHECK_r10 759 +#define _EXIT_TRACE_r00 760 +#define _EXIT_TRACE_r10 761 +#define _EXIT_TRACE_r20 762 +#define _EXIT_TRACE_r30 763 +#define _EXPAND_METHOD_r00 764 +#define _EXPAND_METHOD_KW_r11 765 +#define _FATAL_ERROR_r00 766 +#define _FATAL_ERROR_r11 767 +#define _FATAL_ERROR_r22 768 +#define _FATAL_ERROR_r33 769 +#define _FORMAT_SIMPLE_r11 770 +#define _FORMAT_WITH_SPEC_r21 771 +#define _FOR_ITER_r23 772 +#define _FOR_ITER_GEN_FRAME_r03 773 +#define _FOR_ITER_GEN_FRAME_r13 774 +#define _FOR_ITER_GEN_FRAME_r23 775 +#define _FOR_ITER_TIER_TWO_r23 776 +#define _GET_AITER_r11 777 +#define _GET_ANEXT_r12 778 +#define _GET_AWAITABLE_r11 779 +#define _GET_ITER_r12 780 +#define _GET_LEN_r12 781 +#define _GET_YIELD_FROM_ITER_r11 782 +#define _GUARD_BINARY_OP_EXTEND_r22 783 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r02 784 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r12 785 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r22 786 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r33 787 +#define _GUARD_BIT_IS_SET_POP_r00 788 +#define _GUARD_BIT_IS_SET_POP_r10 789 +#define _GUARD_BIT_IS_SET_POP_r21 790 +#define _GUARD_BIT_IS_SET_POP_r32 791 +#define _GUARD_BIT_IS_SET_POP_4_r00 792 +#define _GUARD_BIT_IS_SET_POP_4_r10 793 +#define _GUARD_BIT_IS_SET_POP_4_r21 794 +#define _GUARD_BIT_IS_SET_POP_4_r32 795 +#define _GUARD_BIT_IS_SET_POP_5_r00 796 +#define _GUARD_BIT_IS_SET_POP_5_r10 797 +#define _GUARD_BIT_IS_SET_POP_5_r21 798 +#define _GUARD_BIT_IS_SET_POP_5_r32 799 +#define _GUARD_BIT_IS_SET_POP_6_r00 800 +#define _GUARD_BIT_IS_SET_POP_6_r10 801 +#define _GUARD_BIT_IS_SET_POP_6_r21 802 +#define _GUARD_BIT_IS_SET_POP_6_r32 803 +#define _GUARD_BIT_IS_SET_POP_7_r00 804 +#define _GUARD_BIT_IS_SET_POP_7_r10 805 +#define _GUARD_BIT_IS_SET_POP_7_r21 806 +#define _GUARD_BIT_IS_SET_POP_7_r32 807 +#define _GUARD_BIT_IS_UNSET_POP_r00 808 +#define _GUARD_BIT_IS_UNSET_POP_r10 809 +#define _GUARD_BIT_IS_UNSET_POP_r21 810 +#define _GUARD_BIT_IS_UNSET_POP_r32 811 +#define _GUARD_BIT_IS_UNSET_POP_4_r00 812 +#define _GUARD_BIT_IS_UNSET_POP_4_r10 813 +#define _GUARD_BIT_IS_UNSET_POP_4_r21 814 +#define _GUARD_BIT_IS_UNSET_POP_4_r32 815 +#define _GUARD_BIT_IS_UNSET_POP_5_r00 816 +#define _GUARD_BIT_IS_UNSET_POP_5_r10 817 +#define _GUARD_BIT_IS_UNSET_POP_5_r21 818 +#define _GUARD_BIT_IS_UNSET_POP_5_r32 819 +#define _GUARD_BIT_IS_UNSET_POP_6_r00 820 +#define _GUARD_BIT_IS_UNSET_POP_6_r10 821 +#define _GUARD_BIT_IS_UNSET_POP_6_r21 822 +#define _GUARD_BIT_IS_UNSET_POP_6_r32 823 +#define _GUARD_BIT_IS_UNSET_POP_7_r00 824 +#define _GUARD_BIT_IS_UNSET_POP_7_r10 825 +#define _GUARD_BIT_IS_UNSET_POP_7_r21 826 +#define _GUARD_BIT_IS_UNSET_POP_7_r32 827 +#define _GUARD_CALLABLE_ISINSTANCE_r03 828 +#define _GUARD_CALLABLE_ISINSTANCE_r13 829 +#define _GUARD_CALLABLE_ISINSTANCE_r23 830 +#define _GUARD_CALLABLE_ISINSTANCE_r33 831 +#define _GUARD_CALLABLE_LEN_r03 832 +#define _GUARD_CALLABLE_LEN_r13 833 +#define _GUARD_CALLABLE_LEN_r23 834 +#define _GUARD_CALLABLE_LEN_r33 835 +#define _GUARD_CALLABLE_LIST_APPEND_r03 836 +#define _GUARD_CALLABLE_LIST_APPEND_r13 837 +#define _GUARD_CALLABLE_LIST_APPEND_r23 838 +#define _GUARD_CALLABLE_LIST_APPEND_r33 839 +#define _GUARD_CALLABLE_STR_1_r03 840 +#define _GUARD_CALLABLE_STR_1_r13 841 +#define _GUARD_CALLABLE_STR_1_r23 842 +#define _GUARD_CALLABLE_STR_1_r33 843 +#define _GUARD_CALLABLE_TUPLE_1_r03 844 +#define _GUARD_CALLABLE_TUPLE_1_r13 845 +#define _GUARD_CALLABLE_TUPLE_1_r23 846 +#define _GUARD_CALLABLE_TUPLE_1_r33 847 +#define _GUARD_CALLABLE_TYPE_1_r03 848 +#define _GUARD_CALLABLE_TYPE_1_r13 849 +#define _GUARD_CALLABLE_TYPE_1_r23 850 +#define _GUARD_CALLABLE_TYPE_1_r33 851 +#define _GUARD_DORV_NO_DICT_r01 852 +#define _GUARD_DORV_NO_DICT_r11 853 +#define _GUARD_DORV_NO_DICT_r22 854 +#define _GUARD_DORV_NO_DICT_r33 855 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r01 856 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r11 857 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r22 858 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r33 859 +#define _GUARD_GLOBALS_VERSION_r00 860 +#define _GUARD_GLOBALS_VERSION_r11 861 +#define _GUARD_GLOBALS_VERSION_r22 862 +#define _GUARD_GLOBALS_VERSION_r33 863 +#define _GUARD_IP_RETURN_GENERATOR_r00 864 +#define _GUARD_IP_RETURN_GENERATOR_r11 865 +#define _GUARD_IP_RETURN_GENERATOR_r22 866 +#define _GUARD_IP_RETURN_GENERATOR_r33 867 +#define _GUARD_IP_RETURN_VALUE_r00 868 +#define _GUARD_IP_RETURN_VALUE_r11 869 +#define _GUARD_IP_RETURN_VALUE_r22 870 +#define _GUARD_IP_RETURN_VALUE_r33 871 +#define _GUARD_IP_YIELD_VALUE_r00 872 +#define _GUARD_IP_YIELD_VALUE_r11 873 +#define _GUARD_IP_YIELD_VALUE_r22 874 +#define _GUARD_IP_YIELD_VALUE_r33 875 +#define _GUARD_IP__PUSH_FRAME_r00 876 +#define _GUARD_IP__PUSH_FRAME_r11 877 +#define _GUARD_IP__PUSH_FRAME_r22 878 +#define _GUARD_IP__PUSH_FRAME_r33 879 +#define _GUARD_IS_FALSE_POP_r00 880 +#define _GUARD_IS_FALSE_POP_r10 881 +#define _GUARD_IS_FALSE_POP_r21 882 +#define _GUARD_IS_FALSE_POP_r32 883 +#define _GUARD_IS_NONE_POP_r00 884 +#define _GUARD_IS_NONE_POP_r10 885 +#define _GUARD_IS_NONE_POP_r21 886 +#define _GUARD_IS_NONE_POP_r32 887 +#define _GUARD_IS_NOT_NONE_POP_r10 888 +#define _GUARD_IS_TRUE_POP_r00 889 +#define _GUARD_IS_TRUE_POP_r10 890 +#define _GUARD_IS_TRUE_POP_r21 891 +#define _GUARD_IS_TRUE_POP_r32 892 +#define _GUARD_KEYS_VERSION_r01 893 +#define _GUARD_KEYS_VERSION_r11 894 +#define _GUARD_KEYS_VERSION_r22 895 +#define _GUARD_KEYS_VERSION_r33 896 +#define _GUARD_NOS_COMPACT_ASCII_r02 897 +#define _GUARD_NOS_COMPACT_ASCII_r12 898 +#define _GUARD_NOS_COMPACT_ASCII_r22 899 +#define _GUARD_NOS_COMPACT_ASCII_r33 900 +#define _GUARD_NOS_DICT_r02 901 +#define _GUARD_NOS_DICT_r12 902 +#define _GUARD_NOS_DICT_r22 903 +#define _GUARD_NOS_DICT_r33 904 +#define _GUARD_NOS_FLOAT_r02 905 +#define _GUARD_NOS_FLOAT_r12 906 +#define _GUARD_NOS_FLOAT_r22 907 +#define _GUARD_NOS_FLOAT_r33 908 +#define _GUARD_NOS_INT_r02 909 +#define _GUARD_NOS_INT_r12 910 +#define _GUARD_NOS_INT_r22 911 +#define _GUARD_NOS_INT_r33 912 +#define _GUARD_NOS_LIST_r02 913 +#define _GUARD_NOS_LIST_r12 914 +#define _GUARD_NOS_LIST_r22 915 +#define _GUARD_NOS_LIST_r33 916 +#define _GUARD_NOS_NOT_NULL_r02 917 +#define _GUARD_NOS_NOT_NULL_r12 918 +#define _GUARD_NOS_NOT_NULL_r22 919 +#define _GUARD_NOS_NOT_NULL_r33 920 +#define _GUARD_NOS_NULL_r02 921 +#define _GUARD_NOS_NULL_r12 922 +#define _GUARD_NOS_NULL_r22 923 +#define _GUARD_NOS_NULL_r33 924 +#define _GUARD_NOS_OVERFLOWED_r02 925 +#define _GUARD_NOS_OVERFLOWED_r12 926 +#define _GUARD_NOS_OVERFLOWED_r22 927 +#define _GUARD_NOS_OVERFLOWED_r33 928 +#define _GUARD_NOS_TUPLE_r02 929 +#define _GUARD_NOS_TUPLE_r12 930 +#define _GUARD_NOS_TUPLE_r22 931 +#define _GUARD_NOS_TUPLE_r33 932 +#define _GUARD_NOS_UNICODE_r02 933 +#define _GUARD_NOS_UNICODE_r12 934 +#define _GUARD_NOS_UNICODE_r22 935 +#define _GUARD_NOS_UNICODE_r33 936 +#define _GUARD_NOT_EXHAUSTED_LIST_r02 937 +#define _GUARD_NOT_EXHAUSTED_LIST_r12 938 +#define _GUARD_NOT_EXHAUSTED_LIST_r22 939 +#define _GUARD_NOT_EXHAUSTED_LIST_r33 940 +#define _GUARD_NOT_EXHAUSTED_RANGE_r02 941 +#define _GUARD_NOT_EXHAUSTED_RANGE_r12 942 +#define _GUARD_NOT_EXHAUSTED_RANGE_r22 943 +#define _GUARD_NOT_EXHAUSTED_RANGE_r33 944 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r02 945 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r12 946 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r22 947 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r33 948 +#define _GUARD_THIRD_NULL_r03 949 +#define _GUARD_THIRD_NULL_r13 950 +#define _GUARD_THIRD_NULL_r23 951 +#define _GUARD_THIRD_NULL_r33 952 +#define _GUARD_TOS_ANY_SET_r01 953 +#define _GUARD_TOS_ANY_SET_r11 954 +#define _GUARD_TOS_ANY_SET_r22 955 +#define _GUARD_TOS_ANY_SET_r33 956 +#define _GUARD_TOS_DICT_r01 957 +#define _GUARD_TOS_DICT_r11 958 +#define _GUARD_TOS_DICT_r22 959 +#define _GUARD_TOS_DICT_r33 960 +#define _GUARD_TOS_FLOAT_r01 961 +#define _GUARD_TOS_FLOAT_r11 962 +#define _GUARD_TOS_FLOAT_r22 963 +#define _GUARD_TOS_FLOAT_r33 964 +#define _GUARD_TOS_INT_r01 965 +#define _GUARD_TOS_INT_r11 966 +#define _GUARD_TOS_INT_r22 967 +#define _GUARD_TOS_INT_r33 968 +#define _GUARD_TOS_LIST_r01 969 +#define _GUARD_TOS_LIST_r11 970 +#define _GUARD_TOS_LIST_r22 971 +#define _GUARD_TOS_LIST_r33 972 +#define _GUARD_TOS_OVERFLOWED_r01 973 +#define _GUARD_TOS_OVERFLOWED_r11 974 +#define _GUARD_TOS_OVERFLOWED_r22 975 +#define _GUARD_TOS_OVERFLOWED_r33 976 +#define _GUARD_TOS_SLICE_r01 977 +#define _GUARD_TOS_SLICE_r11 978 +#define _GUARD_TOS_SLICE_r22 979 +#define _GUARD_TOS_SLICE_r33 980 +#define _GUARD_TOS_TUPLE_r01 981 +#define _GUARD_TOS_TUPLE_r11 982 +#define _GUARD_TOS_TUPLE_r22 983 +#define _GUARD_TOS_TUPLE_r33 984 +#define _GUARD_TOS_UNICODE_r01 985 +#define _GUARD_TOS_UNICODE_r11 986 +#define _GUARD_TOS_UNICODE_r22 987 +#define _GUARD_TOS_UNICODE_r33 988 +#define _GUARD_TYPE_VERSION_r01 989 +#define _GUARD_TYPE_VERSION_r11 990 +#define _GUARD_TYPE_VERSION_r22 991 +#define _GUARD_TYPE_VERSION_r33 992 +#define _GUARD_TYPE_VERSION_AND_LOCK_r01 993 +#define _GUARD_TYPE_VERSION_AND_LOCK_r11 994 +#define _GUARD_TYPE_VERSION_AND_LOCK_r22 995 +#define _GUARD_TYPE_VERSION_AND_LOCK_r33 996 +#define _HANDLE_PENDING_AND_DEOPT_r00 997 +#define _HANDLE_PENDING_AND_DEOPT_r10 998 +#define _HANDLE_PENDING_AND_DEOPT_r20 999 +#define _HANDLE_PENDING_AND_DEOPT_r30 1000 +#define _IMPORT_FROM_r12 1001 +#define _IMPORT_NAME_r21 1002 +#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS_r00 1003 +#define _INIT_CALL_PY_EXACT_ARGS_r01 1004 +#define _INIT_CALL_PY_EXACT_ARGS_0_r01 1005 +#define _INIT_CALL_PY_EXACT_ARGS_1_r01 1006 +#define _INIT_CALL_PY_EXACT_ARGS_2_r01 1007 +#define _INIT_CALL_PY_EXACT_ARGS_3_r01 1008 +#define _INIT_CALL_PY_EXACT_ARGS_4_r01 1009 +#define _INSERT_1_LOAD_CONST_INLINE_r02 1010 +#define _INSERT_1_LOAD_CONST_INLINE_r12 1011 +#define _INSERT_1_LOAD_CONST_INLINE_r23 1012 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r02 1013 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r12 1014 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r23 1015 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r03 1016 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r13 1017 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r23 1018 +#define _INSERT_NULL_r10 1019 +#define _INSTRUMENTED_FOR_ITER_r23 1020 +#define _INSTRUMENTED_INSTRUCTION_r00 1021 +#define _INSTRUMENTED_JUMP_FORWARD_r00 1022 +#define _INSTRUMENTED_JUMP_FORWARD_r11 1023 +#define _INSTRUMENTED_JUMP_FORWARD_r22 1024 +#define _INSTRUMENTED_JUMP_FORWARD_r33 1025 +#define _INSTRUMENTED_LINE_r00 1026 +#define _INSTRUMENTED_NOT_TAKEN_r00 1027 +#define _INSTRUMENTED_NOT_TAKEN_r11 1028 +#define _INSTRUMENTED_NOT_TAKEN_r22 1029 +#define _INSTRUMENTED_NOT_TAKEN_r33 1030 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r00 1031 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r10 1032 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r21 1033 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r32 1034 +#define _INSTRUMENTED_POP_JUMP_IF_NONE_r10 1035 +#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE_r10 1036 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r00 1037 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r10 1038 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r21 1039 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r32 1040 +#define _IS_NONE_r11 1041 +#define _IS_OP_r03 1042 +#define _IS_OP_r13 1043 +#define _IS_OP_r23 1044 +#define _ITER_CHECK_LIST_r02 1045 +#define _ITER_CHECK_LIST_r12 1046 +#define _ITER_CHECK_LIST_r22 1047 +#define _ITER_CHECK_LIST_r33 1048 +#define _ITER_CHECK_RANGE_r02 1049 +#define _ITER_CHECK_RANGE_r12 1050 +#define _ITER_CHECK_RANGE_r22 1051 +#define _ITER_CHECK_RANGE_r33 1052 +#define _ITER_CHECK_TUPLE_r02 1053 +#define _ITER_CHECK_TUPLE_r12 1054 +#define _ITER_CHECK_TUPLE_r22 1055 +#define _ITER_CHECK_TUPLE_r33 1056 +#define _ITER_JUMP_LIST_r02 1057 +#define _ITER_JUMP_LIST_r12 1058 +#define _ITER_JUMP_LIST_r22 1059 +#define _ITER_JUMP_LIST_r33 1060 +#define _ITER_JUMP_RANGE_r02 1061 +#define _ITER_JUMP_RANGE_r12 1062 +#define _ITER_JUMP_RANGE_r22 1063 +#define _ITER_JUMP_RANGE_r33 1064 +#define _ITER_JUMP_TUPLE_r02 1065 +#define _ITER_JUMP_TUPLE_r12 1066 +#define _ITER_JUMP_TUPLE_r22 1067 +#define _ITER_JUMP_TUPLE_r33 1068 +#define _ITER_NEXT_LIST_r23 1069 +#define _ITER_NEXT_LIST_TIER_TWO_r23 1070 +#define _ITER_NEXT_RANGE_r03 1071 +#define _ITER_NEXT_RANGE_r13 1072 +#define _ITER_NEXT_RANGE_r23 1073 +#define _ITER_NEXT_TUPLE_r03 1074 +#define _ITER_NEXT_TUPLE_r13 1075 +#define _ITER_NEXT_TUPLE_r23 1076 +#define _JUMP_BACKWARD_NO_INTERRUPT_r00 1077 +#define _JUMP_BACKWARD_NO_INTERRUPT_r11 1078 +#define _JUMP_BACKWARD_NO_INTERRUPT_r22 1079 +#define _JUMP_BACKWARD_NO_INTERRUPT_r33 1080 +#define _JUMP_TO_TOP_r00 1081 +#define _LIST_APPEND_r10 1082 +#define _LIST_EXTEND_r10 1083 +#define _LOAD_ATTR_r10 1084 +#define _LOAD_ATTR_CLASS_r11 1085 +#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_r11 1086 +#define _LOAD_ATTR_INSTANCE_VALUE_r02 1087 +#define _LOAD_ATTR_INSTANCE_VALUE_r12 1088 +#define _LOAD_ATTR_INSTANCE_VALUE_r23 1089 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r02 1090 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r12 1091 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r23 1092 +#define _LOAD_ATTR_METHOD_NO_DICT_r02 1093 +#define _LOAD_ATTR_METHOD_NO_DICT_r12 1094 +#define _LOAD_ATTR_METHOD_NO_DICT_r23 1095 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r02 1096 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r12 1097 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r23 1098 +#define _LOAD_ATTR_MODULE_r12 1099 +#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT_r11 1100 +#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES_r11 1101 +#define _LOAD_ATTR_PROPERTY_FRAME_r11 1102 +#define _LOAD_ATTR_SLOT_r02 1103 +#define _LOAD_ATTR_SLOT_r12 1104 +#define _LOAD_ATTR_SLOT_r23 1105 +#define _LOAD_ATTR_WITH_HINT_r12 1106 +#define _LOAD_BUILD_CLASS_r01 1107 +#define _LOAD_BYTECODE_r00 1108 +#define _LOAD_COMMON_CONSTANT_r01 1109 +#define _LOAD_COMMON_CONSTANT_r12 1110 +#define _LOAD_COMMON_CONSTANT_r23 1111 +#define _LOAD_CONST_r01 1112 +#define _LOAD_CONST_r12 1113 +#define _LOAD_CONST_r23 1114 +#define _LOAD_CONST_INLINE_r01 1115 +#define _LOAD_CONST_INLINE_r12 1116 +#define _LOAD_CONST_INLINE_r23 1117 +#define _LOAD_CONST_INLINE_BORROW_r01 1118 +#define _LOAD_CONST_INLINE_BORROW_r12 1119 +#define _LOAD_CONST_INLINE_BORROW_r23 1120 +#define _LOAD_CONST_UNDER_INLINE_r02 1121 +#define _LOAD_CONST_UNDER_INLINE_r12 1122 +#define _LOAD_CONST_UNDER_INLINE_r23 1123 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r02 1124 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r12 1125 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r23 1126 +#define _LOAD_DEREF_r01 1127 +#define _LOAD_FAST_r01 1128 +#define _LOAD_FAST_r12 1129 +#define _LOAD_FAST_r23 1130 +#define _LOAD_FAST_0_r01 1131 +#define _LOAD_FAST_0_r12 1132 +#define _LOAD_FAST_0_r23 1133 +#define _LOAD_FAST_1_r01 1134 +#define _LOAD_FAST_1_r12 1135 +#define _LOAD_FAST_1_r23 1136 +#define _LOAD_FAST_2_r01 1137 +#define _LOAD_FAST_2_r12 1138 +#define _LOAD_FAST_2_r23 1139 +#define _LOAD_FAST_3_r01 1140 +#define _LOAD_FAST_3_r12 1141 +#define _LOAD_FAST_3_r23 1142 +#define _LOAD_FAST_4_r01 1143 +#define _LOAD_FAST_4_r12 1144 +#define _LOAD_FAST_4_r23 1145 +#define _LOAD_FAST_5_r01 1146 +#define _LOAD_FAST_5_r12 1147 +#define _LOAD_FAST_5_r23 1148 +#define _LOAD_FAST_6_r01 1149 +#define _LOAD_FAST_6_r12 1150 +#define _LOAD_FAST_6_r23 1151 +#define _LOAD_FAST_7_r01 1152 +#define _LOAD_FAST_7_r12 1153 +#define _LOAD_FAST_7_r23 1154 +#define _LOAD_FAST_AND_CLEAR_r01 1155 +#define _LOAD_FAST_AND_CLEAR_r12 1156 +#define _LOAD_FAST_AND_CLEAR_r23 1157 +#define _LOAD_FAST_BORROW_r01 1158 +#define _LOAD_FAST_BORROW_r12 1159 +#define _LOAD_FAST_BORROW_r23 1160 +#define _LOAD_FAST_BORROW_0_r01 1161 +#define _LOAD_FAST_BORROW_0_r12 1162 +#define _LOAD_FAST_BORROW_0_r23 1163 +#define _LOAD_FAST_BORROW_1_r01 1164 +#define _LOAD_FAST_BORROW_1_r12 1165 +#define _LOAD_FAST_BORROW_1_r23 1166 +#define _LOAD_FAST_BORROW_2_r01 1167 +#define _LOAD_FAST_BORROW_2_r12 1168 +#define _LOAD_FAST_BORROW_2_r23 1169 +#define _LOAD_FAST_BORROW_3_r01 1170 +#define _LOAD_FAST_BORROW_3_r12 1171 +#define _LOAD_FAST_BORROW_3_r23 1172 +#define _LOAD_FAST_BORROW_4_r01 1173 +#define _LOAD_FAST_BORROW_4_r12 1174 +#define _LOAD_FAST_BORROW_4_r23 1175 +#define _LOAD_FAST_BORROW_5_r01 1176 +#define _LOAD_FAST_BORROW_5_r12 1177 +#define _LOAD_FAST_BORROW_5_r23 1178 +#define _LOAD_FAST_BORROW_6_r01 1179 +#define _LOAD_FAST_BORROW_6_r12 1180 +#define _LOAD_FAST_BORROW_6_r23 1181 +#define _LOAD_FAST_BORROW_7_r01 1182 +#define _LOAD_FAST_BORROW_7_r12 1183 +#define _LOAD_FAST_BORROW_7_r23 1184 +#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r02 1185 +#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r13 1186 +#define _LOAD_FAST_CHECK_r01 1187 +#define _LOAD_FAST_CHECK_r12 1188 +#define _LOAD_FAST_CHECK_r23 1189 +#define _LOAD_FAST_LOAD_FAST_r02 1190 +#define _LOAD_FAST_LOAD_FAST_r13 1191 +#define _LOAD_FROM_DICT_OR_DEREF_r11 1192 +#define _LOAD_FROM_DICT_OR_GLOBALS_r11 1193 +#define _LOAD_GLOBAL_r00 1194 +#define _LOAD_GLOBAL_BUILTINS_r01 1195 +#define _LOAD_GLOBAL_MODULE_r01 1196 +#define _LOAD_LOCALS_r01 1197 +#define _LOAD_LOCALS_r12 1198 +#define _LOAD_LOCALS_r23 1199 +#define _LOAD_NAME_r01 1200 +#define _LOAD_SMALL_INT_r01 1201 +#define _LOAD_SMALL_INT_r12 1202 +#define _LOAD_SMALL_INT_r23 1203 +#define _LOAD_SMALL_INT_0_r01 1204 +#define _LOAD_SMALL_INT_0_r12 1205 +#define _LOAD_SMALL_INT_0_r23 1206 +#define _LOAD_SMALL_INT_1_r01 1207 +#define _LOAD_SMALL_INT_1_r12 1208 +#define _LOAD_SMALL_INT_1_r23 1209 +#define _LOAD_SMALL_INT_2_r01 1210 +#define _LOAD_SMALL_INT_2_r12 1211 +#define _LOAD_SMALL_INT_2_r23 1212 +#define _LOAD_SMALL_INT_3_r01 1213 +#define _LOAD_SMALL_INT_3_r12 1214 +#define _LOAD_SMALL_INT_3_r23 1215 +#define _LOAD_SPECIAL_r00 1216 +#define _LOAD_SUPER_ATTR_ATTR_r31 1217 +#define _LOAD_SUPER_ATTR_METHOD_r32 1218 +#define _MAKE_CALLARGS_A_TUPLE_r33 1219 +#define _MAKE_CELL_r00 1220 +#define _MAKE_FUNCTION_r11 1221 +#define _MAKE_WARM_r00 1222 +#define _MAKE_WARM_r11 1223 +#define _MAKE_WARM_r22 1224 +#define _MAKE_WARM_r33 1225 +#define _MAP_ADD_r20 1226 +#define _MATCH_CLASS_r31 1227 +#define _MATCH_KEYS_r23 1228 +#define _MATCH_MAPPING_r02 1229 +#define _MATCH_MAPPING_r12 1230 +#define _MATCH_MAPPING_r23 1231 +#define _MATCH_SEQUENCE_r02 1232 +#define _MATCH_SEQUENCE_r12 1233 +#define _MATCH_SEQUENCE_r23 1234 +#define _MAYBE_EXPAND_METHOD_r00 1235 +#define _MAYBE_EXPAND_METHOD_KW_r11 1236 +#define _MONITOR_CALL_r00 1237 +#define _MONITOR_CALL_KW_r11 1238 +#define _MONITOR_JUMP_BACKWARD_r00 1239 +#define _MONITOR_JUMP_BACKWARD_r11 1240 +#define _MONITOR_JUMP_BACKWARD_r22 1241 +#define _MONITOR_JUMP_BACKWARD_r33 1242 +#define _MONITOR_RESUME_r00 1243 +#define _NOP_r00 1244 +#define _NOP_r11 1245 +#define _NOP_r22 1246 +#define _NOP_r33 1247 +#define _POP_CALL_r20 1248 +#define _POP_CALL_LOAD_CONST_INLINE_BORROW_r21 1249 +#define _POP_CALL_ONE_r30 1250 +#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW_r31 1251 +#define _POP_CALL_TWO_r30 1252 +#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW_r31 1253 +#define _POP_EXCEPT_r10 1254 +#define _POP_ITER_r20 1255 +#define _POP_JUMP_IF_FALSE_r00 1256 +#define _POP_JUMP_IF_FALSE_r10 1257 +#define _POP_JUMP_IF_FALSE_r21 1258 +#define _POP_JUMP_IF_FALSE_r32 1259 +#define _POP_JUMP_IF_TRUE_r00 1260 +#define _POP_JUMP_IF_TRUE_r10 1261 +#define _POP_JUMP_IF_TRUE_r21 1262 +#define _POP_JUMP_IF_TRUE_r32 1263 +#define _POP_TOP_r10 1264 +#define _POP_TOP_FLOAT_r00 1265 +#define _POP_TOP_FLOAT_r10 1266 +#define _POP_TOP_FLOAT_r21 1267 +#define _POP_TOP_FLOAT_r32 1268 +#define _POP_TOP_INT_r00 1269 +#define _POP_TOP_INT_r10 1270 +#define _POP_TOP_INT_r21 1271 +#define _POP_TOP_INT_r32 1272 +#define _POP_TOP_LOAD_CONST_INLINE_r11 1273 +#define _POP_TOP_LOAD_CONST_INLINE_BORROW_r11 1274 +#define _POP_TOP_NOP_r00 1275 +#define _POP_TOP_NOP_r10 1276 +#define _POP_TOP_NOP_r21 1277 +#define _POP_TOP_NOP_r32 1278 +#define _POP_TOP_UNICODE_r00 1279 +#define _POP_TOP_UNICODE_r10 1280 +#define _POP_TOP_UNICODE_r21 1281 +#define _POP_TOP_UNICODE_r32 1282 +#define _POP_TWO_r20 1283 +#define _POP_TWO_LOAD_CONST_INLINE_BORROW_r21 1284 +#define _PUSH_EXC_INFO_r02 1285 +#define _PUSH_EXC_INFO_r12 1286 +#define _PUSH_EXC_INFO_r23 1287 +#define _PUSH_FRAME_r10 1288 +#define _PUSH_NULL_r01 1289 +#define _PUSH_NULL_r12 1290 +#define _PUSH_NULL_r23 1291 +#define _PUSH_NULL_CONDITIONAL_r00 1292 +#define _PY_FRAME_EX_r31 1293 +#define _PY_FRAME_GENERAL_r01 1294 +#define _PY_FRAME_KW_r11 1295 +#define _QUICKEN_RESUME_r00 1296 +#define _QUICKEN_RESUME_r11 1297 +#define _QUICKEN_RESUME_r22 1298 +#define _QUICKEN_RESUME_r33 1299 +#define _REPLACE_WITH_TRUE_r02 1300 +#define _REPLACE_WITH_TRUE_r12 1301 +#define _REPLACE_WITH_TRUE_r23 1302 +#define _RESUME_CHECK_r00 1303 +#define _RESUME_CHECK_r11 1304 +#define _RESUME_CHECK_r22 1305 +#define _RESUME_CHECK_r33 1306 +#define _RETURN_GENERATOR_r01 1307 +#define _RETURN_VALUE_r11 1308 +#define _SAVE_RETURN_OFFSET_r00 1309 +#define _SAVE_RETURN_OFFSET_r11 1310 +#define _SAVE_RETURN_OFFSET_r22 1311 +#define _SAVE_RETURN_OFFSET_r33 1312 +#define _SEND_r22 1313 +#define _SEND_GEN_FRAME_r22 1314 +#define _SETUP_ANNOTATIONS_r00 1315 +#define _SET_ADD_r10 1316 +#define _SET_FUNCTION_ATTRIBUTE_r01 1317 +#define _SET_FUNCTION_ATTRIBUTE_r11 1318 +#define _SET_FUNCTION_ATTRIBUTE_r21 1319 +#define _SET_FUNCTION_ATTRIBUTE_r32 1320 +#define _SET_IP_r00 1321 +#define _SET_IP_r11 1322 +#define _SET_IP_r22 1323 +#define _SET_IP_r33 1324 +#define _SET_UPDATE_r10 1325 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r02 1326 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r12 1327 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r22 1328 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r32 1329 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r03 1330 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r13 1331 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r23 1332 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r33 1333 +#define _SPILL_OR_RELOAD_r01 1334 +#define _SPILL_OR_RELOAD_r02 1335 +#define _SPILL_OR_RELOAD_r03 1336 +#define _SPILL_OR_RELOAD_r10 1337 +#define _SPILL_OR_RELOAD_r12 1338 +#define _SPILL_OR_RELOAD_r13 1339 +#define _SPILL_OR_RELOAD_r20 1340 +#define _SPILL_OR_RELOAD_r21 1341 +#define _SPILL_OR_RELOAD_r23 1342 +#define _SPILL_OR_RELOAD_r30 1343 +#define _SPILL_OR_RELOAD_r31 1344 +#define _SPILL_OR_RELOAD_r32 1345 +#define _START_EXECUTOR_r00 1346 +#define _STORE_ATTR_r20 1347 +#define _STORE_ATTR_INSTANCE_VALUE_r21 1348 +#define _STORE_ATTR_INSTANCE_VALUE_NULL_r01 1349 +#define _STORE_ATTR_INSTANCE_VALUE_NULL_r11 1350 +#define _STORE_ATTR_INSTANCE_VALUE_NULL_r21 1351 +#define _STORE_ATTR_INSTANCE_VALUE_NULL_r32 1352 +#define _STORE_ATTR_SLOT_r21 1353 +#define _STORE_ATTR_SLOT_NULL_r01 1354 +#define _STORE_ATTR_SLOT_NULL_r11 1355 +#define _STORE_ATTR_SLOT_NULL_r21 1356 +#define _STORE_ATTR_SLOT_NULL_r32 1357 +#define _STORE_ATTR_WITH_HINT_r21 1358 +#define _STORE_DEREF_r10 1359 +#define _STORE_FAST_LOAD_FAST_r11 1360 +#define _STORE_FAST_STORE_FAST_r20 1361 +#define _STORE_GLOBAL_r10 1362 +#define _STORE_NAME_r10 1363 +#define _STORE_SLICE_r30 1364 +#define _STORE_SUBSCR_r30 1365 +#define _STORE_SUBSCR_DICT_r31 1366 +#define _STORE_SUBSCR_LIST_INT_r32 1367 +#define _SWAP_r11 1368 +#define _SWAP_2_r02 1369 +#define _SWAP_2_r12 1370 +#define _SWAP_2_r22 1371 +#define _SWAP_2_r33 1372 +#define _SWAP_3_r03 1373 +#define _SWAP_3_r13 1374 +#define _SWAP_3_r23 1375 +#define _SWAP_3_r33 1376 +#define _SWAP_FAST_r01 1377 +#define _SWAP_FAST_r11 1378 +#define _SWAP_FAST_r22 1379 +#define _SWAP_FAST_r33 1380 +#define _SWAP_FAST_0_r01 1381 +#define _SWAP_FAST_0_r11 1382 +#define _SWAP_FAST_0_r22 1383 +#define _SWAP_FAST_0_r33 1384 +#define _SWAP_FAST_1_r01 1385 +#define _SWAP_FAST_1_r11 1386 +#define _SWAP_FAST_1_r22 1387 +#define _SWAP_FAST_1_r33 1388 +#define _SWAP_FAST_2_r01 1389 +#define _SWAP_FAST_2_r11 1390 +#define _SWAP_FAST_2_r22 1391 +#define _SWAP_FAST_2_r33 1392 +#define _SWAP_FAST_3_r01 1393 +#define _SWAP_FAST_3_r11 1394 +#define _SWAP_FAST_3_r22 1395 +#define _SWAP_FAST_3_r33 1396 +#define _SWAP_FAST_4_r01 1397 +#define _SWAP_FAST_4_r11 1398 +#define _SWAP_FAST_4_r22 1399 +#define _SWAP_FAST_4_r33 1400 +#define _SWAP_FAST_5_r01 1401 +#define _SWAP_FAST_5_r11 1402 +#define _SWAP_FAST_5_r22 1403 +#define _SWAP_FAST_5_r33 1404 +#define _SWAP_FAST_6_r01 1405 +#define _SWAP_FAST_6_r11 1406 +#define _SWAP_FAST_6_r22 1407 +#define _SWAP_FAST_6_r33 1408 +#define _SWAP_FAST_7_r01 1409 +#define _SWAP_FAST_7_r11 1410 +#define _SWAP_FAST_7_r22 1411 +#define _SWAP_FAST_7_r33 1412 +#define _TIER2_RESUME_CHECK_r00 1413 +#define _TIER2_RESUME_CHECK_r11 1414 +#define _TIER2_RESUME_CHECK_r22 1415 +#define _TIER2_RESUME_CHECK_r33 1416 +#define _TO_BOOL_r11 1417 +#define _TO_BOOL_BOOL_r01 1418 +#define _TO_BOOL_BOOL_r11 1419 +#define _TO_BOOL_BOOL_r22 1420 +#define _TO_BOOL_BOOL_r33 1421 +#define _TO_BOOL_INT_r02 1422 +#define _TO_BOOL_INT_r12 1423 +#define _TO_BOOL_INT_r23 1424 +#define _TO_BOOL_LIST_r02 1425 +#define _TO_BOOL_LIST_r12 1426 +#define _TO_BOOL_LIST_r23 1427 +#define _TO_BOOL_NONE_r01 1428 +#define _TO_BOOL_NONE_r11 1429 +#define _TO_BOOL_NONE_r22 1430 +#define _TO_BOOL_NONE_r33 1431 +#define _TO_BOOL_STR_r02 1432 +#define _TO_BOOL_STR_r12 1433 +#define _TO_BOOL_STR_r23 1434 +#define _TRACE_RECORD_r00 1435 +#define _UNARY_INVERT_r12 1436 +#define _UNARY_NEGATIVE_r12 1437 +#define _UNARY_NOT_r01 1438 +#define _UNARY_NOT_r11 1439 +#define _UNARY_NOT_r22 1440 +#define _UNARY_NOT_r33 1441 +#define _UNPACK_EX_r10 1442 +#define _UNPACK_SEQUENCE_r10 1443 +#define _UNPACK_SEQUENCE_LIST_r10 1444 +#define _UNPACK_SEQUENCE_TUPLE_r10 1445 +#define _UNPACK_SEQUENCE_TWO_TUPLE_r12 1446 +#define _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10 1447 +#define _WITH_EXCEPT_START_r33 1448 +#define _YIELD_VALUE_r11 1449 +#define MAX_UOP_REGS_ID 1449 #ifdef __cplusplus } diff --git a/Include/internal/pycore_uop_metadata.h b/Include/internal/pycore_uop_metadata.h index d19f219c165324..c9609e0dfe6036 100644 --- a/Include/internal/pycore_uop_metadata.h +++ b/Include/internal/pycore_uop_metadata.h @@ -153,6 +153,7 @@ const uint32_t _PyUop_Flags[MAX_UOP_ID+1] = { [_UNPACK_SEQUENCE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, [_UNPACK_SEQUENCE_TWO_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG, [_UNPACK_SEQUENCE_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG, + [_UNPACK_SEQUENCE_UNIQUE_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, [_UNPACK_SEQUENCE_LIST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG, [_UNPACK_EX] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, [_STORE_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, @@ -1453,6 +1454,15 @@ const _PyUopCachingInfo _PyUop_Caching[MAX_UOP_ID+1] = { { -1, -1, -1 }, }, }, + [_UNPACK_SEQUENCE_UNIQUE_TUPLE] = { + .best = { 1, 1, 1, 1 }, + .entries = { + { -1, -1, -1 }, + { 0, 1, _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10 }, + { -1, -1, -1 }, + { -1, -1, -1 }, + }, + }, [_UNPACK_SEQUENCE_LIST] = { .best = { 1, 1, 1, 1 }, .entries = { @@ -3760,6 +3770,7 @@ const uint16_t _PyUop_Uncached[MAX_UOP_REGS_ID+1] = { [_UNPACK_SEQUENCE_r10] = _UNPACK_SEQUENCE, [_UNPACK_SEQUENCE_TWO_TUPLE_r12] = _UNPACK_SEQUENCE_TWO_TUPLE, [_UNPACK_SEQUENCE_TUPLE_r10] = _UNPACK_SEQUENCE_TUPLE, + [_UNPACK_SEQUENCE_UNIQUE_TUPLE_r10] = _UNPACK_SEQUENCE_UNIQUE_TUPLE, [_UNPACK_SEQUENCE_LIST_r10] = _UNPACK_SEQUENCE_LIST, [_UNPACK_EX_r10] = _UNPACK_EX, [_STORE_ATTR_r20] = _STORE_ATTR, @@ -5395,6 +5406,8 @@ const char *const _PyOpcode_uop_name[MAX_UOP_REGS_ID+1] = { [_UNPACK_SEQUENCE_TUPLE_r10] = "_UNPACK_SEQUENCE_TUPLE_r10", [_UNPACK_SEQUENCE_TWO_TUPLE] = "_UNPACK_SEQUENCE_TWO_TUPLE", [_UNPACK_SEQUENCE_TWO_TUPLE_r12] = "_UNPACK_SEQUENCE_TWO_TUPLE_r12", + [_UNPACK_SEQUENCE_UNIQUE_TUPLE] = "_UNPACK_SEQUENCE_UNIQUE_TUPLE", + [_UNPACK_SEQUENCE_UNIQUE_TUPLE_r10] = "_UNPACK_SEQUENCE_UNIQUE_TUPLE_r10", [_WITH_EXCEPT_START] = "_WITH_EXCEPT_START", [_WITH_EXCEPT_START_r33] = "_WITH_EXCEPT_START_r33", [_YIELD_VALUE] = "_YIELD_VALUE", @@ -5639,6 +5652,8 @@ int _PyUop_num_popped(int opcode, int oparg) return 1; case _UNPACK_SEQUENCE_TUPLE: return 1; + case _UNPACK_SEQUENCE_UNIQUE_TUPLE: + return 1; case _UNPACK_SEQUENCE_LIST: return 1; case _UNPACK_EX: diff --git a/Lib/test/test_capi/test_opt.py b/Lib/test/test_capi/test_opt.py index a379d1be2f9bd3..38bba72a20fec5 100644 --- a/Lib/test/test_capi/test_opt.py +++ b/Lib/test/test_capi/test_opt.py @@ -1999,6 +1999,45 @@ def f(n): self.assertEqual(uops.count("_BINARY_OP_SUBSCR_LIST_INT"), 1) self.assertEqual(uops.count("_TO_BOOL_LIST"), 1) + def test_unique_tuple_unpack(self): + def f(n): + def triplet(x): + return (x, x, x) + hits = 0 + for i in range(n): + x, y, z = triplet(1) + hits += x + y + z + return hits + + res, ex = self._run_with_optimizer(f, TIER2_THRESHOLD) + self.assertEqual(res, TIER2_THRESHOLD * 3) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + + self.assertIn("_BUILD_TUPLE", uops) + self.assertIn("_UNPACK_SEQUENCE_UNIQUE_TUPLE", uops) + self.assertNotIn("_UNPACK_SEQUENCE_TUPLE", uops) + + def test_non_unique_tuple_unpack(self): + def f(n): + def triplet(x): + return (x, x, x) + hits = 0 + for i in range(n): + t = triplet(1) + x, y, z = t + hits += x + y + z + return hits + + res, ex = self._run_with_optimizer(f, TIER2_THRESHOLD) + self.assertEqual(res, TIER2_THRESHOLD * 3) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + + self.assertIn("_BUILD_TUPLE", uops) + self.assertIn("_UNPACK_SEQUENCE_TUPLE", uops) + self.assertNotIn("_UNPACK_SEQUENCE_UNIQUE_TUPLE", uops) + def test_remove_guard_for_known_type_set(self): def f(n): x = 0 diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c index 169ac69701da11..d32bce6e374c0e 100644 --- a/Objects/tupleobject.c +++ b/Objects/tupleobject.c @@ -205,6 +205,35 @@ PyTuple_Pack(Py_ssize_t n, ...) /* Methods */ +void +_PyTuple_EmptyExactDealloc(PyObject *obj) +{ + assert(PyTuple_CheckExact(obj)); + PyTupleObject *op = _PyTuple_CAST(obj); + + if (Py_SIZE(op) == 0 && op == &_Py_SINGLETON(tuple_empty)) { +#ifdef Py_DEBUG + _Py_FatalRefcountError("deallocating the empty tuple singleton"); +#else + return; +#endif + } + + PyObject_GC_UnTrack(op); + +#ifdef Py_DEBUG + Py_ssize_t i = Py_SIZE(op); + while (--i >= 0) { + assert(op->ob_item[i] == NULL); + } +#endif + + // This will abort on the empty singleton (if there is one). + if (!maybe_freelist_push(op)) { + Py_TYPE(op)->tp_free((PyObject *)op); + } +} + static void tuple_dealloc(PyObject *self) { diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 8bc58240e908a7..01d29299bb1bb9 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -30,7 +30,7 @@ #include "pycore_sliceobject.h" // _PyBuildSlice_ConsumeRefs #include "pycore_stackref.h" #include "pycore_template.h" // _PyTemplate_Build() -#include "pycore_tuple.h" // _PyTuple_ITEMS() +#include "pycore_tuple.h" // _PyTuple_EmptyExactDealloc(), _PyTuple_ITEMS() #include "pycore_typeobject.h" // _PySuper_Lookup() #include "pycore_dict.h" @@ -1671,6 +1671,20 @@ dummy_func( DECREF_INPUTS(); } + op(_UNPACK_SEQUENCE_UNIQUE_TUPLE, (seq -- values[oparg])) { + PyObject *seq_o = PyStackRef_AsPyObjectBorrow(seq); + assert(PyTuple_CheckExact(seq_o)); + DEOPT_IF(PyTuple_GET_SIZE(seq_o) != oparg); + DEOPT_IF(!_PyObject_IsUniquelyReferenced(seq_o)); + STAT_INC(UNPACK_SEQUENCE, hit); + PyObject **items = _PyTuple_ITEMS(seq_o); + for (int i = oparg; --i >= 0; ) { + *values++ = PyStackRef_FromPyObjectSteal(items[i]); + items[i] = NULL; + } + PyStackRef_CLOSE_SPECIALIZED(seq, _PyTuple_EmptyExactDealloc); + } + macro(UNPACK_SEQUENCE_LIST) = _GUARD_TOS_LIST + unused/1 + _UNPACK_SEQUENCE_LIST; diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index 1a705098472425..41f11f78847f90 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -7158,6 +7158,43 @@ break; } + case _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10: { + CHECK_CURRENT_CACHED_VALUES(1); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef seq; + _PyStackRef *values; + _PyStackRef _stack_item_0 = _tos_cache0; + oparg = CURRENT_OPARG(); + seq = _stack_item_0; + values = &stack_pointer[0]; + PyObject *seq_o = PyStackRef_AsPyObjectBorrow(seq); + assert(PyTuple_CheckExact(seq_o)); + if (PyTuple_GET_SIZE(seq_o) != oparg) { + UOP_STAT_INC(uopcode, miss); + _tos_cache0 = seq; + SET_CURRENT_CACHED_VALUES(1); + JUMP_TO_JUMP_TARGET(); + } + if (!_PyObject_IsUniquelyReferenced(seq_o)) { + UOP_STAT_INC(uopcode, miss); + _tos_cache0 = seq; + SET_CURRENT_CACHED_VALUES(1); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(UNPACK_SEQUENCE, hit); + PyObject **items = _PyTuple_ITEMS(seq_o); + for (int i = oparg; --i >= 0; ) { + *values++ = PyStackRef_FromPyObjectSteal(items[i]); + items[i] = NULL; + } + PyStackRef_CLOSE_SPECIALIZED(seq, _PyTuple_EmptyExactDealloc); + SET_CURRENT_CACHED_VALUES(0); + stack_pointer += oparg; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + case _UNPACK_SEQUENCE_LIST_r10: { CHECK_CURRENT_CACHED_VALUES(1); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); diff --git a/Python/optimizer_bytecodes.c b/Python/optimizer_bytecodes.c index 4ccecd472b36da..168b642f832153 100644 --- a/Python/optimizer_bytecodes.c +++ b/Python/optimizer_bytecodes.c @@ -89,20 +89,24 @@ dummy_func(void) { if (sym_is_null(value)) { ctx->done = true; } + value = PyJitRef_RemoveUnique(value); } op(_LOAD_FAST, (-- value)) { value = GETLOCAL(oparg); + value = PyJitRef_RemoveUnique(value); } op(_LOAD_FAST_BORROW, (-- value)) { value = PyJitRef_Borrow(GETLOCAL(oparg)); + value = PyJitRef_RemoveUnique(value); } op(_LOAD_FAST_AND_CLEAR, (-- value)) { value = GETLOCAL(oparg); JitOptRef temp = sym_new_null(ctx); GETLOCAL(oparg) = temp; + value = PyJitRef_RemoveUnique(value); } op(_STORE_ATTR_INSTANCE_VALUE, (offset/1, value, owner -- o)) { @@ -696,6 +700,7 @@ dummy_func(void) { op(_COPY, (bottom, unused[oparg-1] -- bottom, unused[oparg-1], top)) { assert(oparg > 0); + bottom = PyJitRef_RemoveUnique(bottom); top = bottom; } @@ -980,7 +985,7 @@ dummy_func(void) { op(_RETURN_VALUE, (retval -- res)) { // Mimics PyStackRef_MakeHeapSafe in the interpreter. - JitOptRef temp = PyJitRef_StripReferenceInfo(retval); + JitOptRef temp = PyJitRef_StripBorrowInfo(retval); DEAD(retval); SAVE_STACK(); ctx->frame->stack_pointer = stack_pointer; @@ -1337,6 +1342,7 @@ dummy_func(void) { op(_BUILD_TUPLE, (values[oparg] -- tup)) { tup = sym_new_tuple(ctx, oparg, values); + tup = PyJitRef_MakeUnique(tup); } op(_BUILD_LIST, (values[oparg] -- list)) { @@ -1365,6 +1371,9 @@ dummy_func(void) { } op(_UNPACK_SEQUENCE_TUPLE, (seq -- values[oparg])) { + if (PyJitRef_IsUnique(seq) && sym_tuple_length(seq) == oparg) { + ADD_OP(_UNPACK_SEQUENCE_UNIQUE_TUPLE, oparg, 0); + } for (int i = 0; i < oparg; i++) { values[i] = sym_tuple_getitem(ctx, seq, oparg - i - 1); } diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index 4a6f2450680bf9..59cadd9603e583 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -33,6 +33,7 @@ if (sym_is_null(value)) { ctx->done = true; } + value = PyJitRef_RemoveUnique(value); CHECK_STACK_BOUNDS(1); stack_pointer[0] = value; stack_pointer += 1; @@ -43,6 +44,7 @@ case _LOAD_FAST: { JitOptRef value; value = GETLOCAL(oparg); + value = PyJitRef_RemoveUnique(value); CHECK_STACK_BOUNDS(1); stack_pointer[0] = value; stack_pointer += 1; @@ -53,6 +55,7 @@ case _LOAD_FAST_BORROW: { JitOptRef value; value = PyJitRef_Borrow(GETLOCAL(oparg)); + value = PyJitRef_RemoveUnique(value); CHECK_STACK_BOUNDS(1); stack_pointer[0] = value; stack_pointer += 1; @@ -65,6 +68,7 @@ value = GETLOCAL(oparg); JitOptRef temp = sym_new_null(ctx); GETLOCAL(oparg) = temp; + value = PyJitRef_RemoveUnique(value); CHECK_STACK_BOUNDS(1); stack_pointer[0] = value; stack_pointer += 1; @@ -1234,7 +1238,7 @@ JitOptRef retval; JitOptRef res; retval = stack_pointer[-1]; - JitOptRef temp = PyJitRef_StripReferenceInfo(retval); + JitOptRef temp = PyJitRef_StripBorrowInfo(retval); CHECK_STACK_BOUNDS(-1); stack_pointer += -1; ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); @@ -1412,6 +1416,9 @@ JitOptRef *values; seq = stack_pointer[-1]; values = &stack_pointer[-1]; + if (PyJitRef_IsUnique(seq) && sym_tuple_length(seq) == oparg) { + ADD_OP(_UNPACK_SEQUENCE_UNIQUE_TUPLE, oparg, 0); + } for (int i = 0; i < oparg; i++) { values[i] = sym_tuple_getitem(ctx, seq, oparg - i - 1); } @@ -1421,6 +1428,18 @@ break; } + case _UNPACK_SEQUENCE_UNIQUE_TUPLE: { + JitOptRef *values; + values = &stack_pointer[-1]; + for (int _i = oparg; --_i >= 0;) { + values[_i] = sym_new_not_null(ctx); + } + CHECK_STACK_BOUNDS(-1 + oparg); + stack_pointer += -1 + oparg; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + break; + } + case _UNPACK_SEQUENCE_LIST: { JitOptRef *values; values = &stack_pointer[-1]; @@ -1711,6 +1730,7 @@ JitOptRef tup; values = &stack_pointer[-oparg]; tup = sym_new_tuple(ctx, oparg, values); + tup = PyJitRef_MakeUnique(tup); CHECK_STACK_BOUNDS(1 - oparg); stack_pointer[-oparg] = tup; stack_pointer += 1 - oparg; @@ -3692,8 +3712,10 @@ JitOptRef top; bottom = stack_pointer[-1 - (oparg-1)]; assert(oparg > 0); + bottom = PyJitRef_RemoveUnique(bottom); top = bottom; CHECK_STACK_BOUNDS(1); + stack_pointer[-1 - (oparg-1)] = bottom; stack_pointer[0] = top; stack_pointer += 1; ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);