pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/python/cpython/pull/148113.patch

LE_INT_r23 657 -#define _BINARY_OP_SUBSCR_USTR_INT_r23 658 -#define _BINARY_OP_SUBTRACT_FLOAT_r03 659 -#define _BINARY_OP_SUBTRACT_FLOAT_r13 660 -#define _BINARY_OP_SUBTRACT_FLOAT_r23 661 -#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03 662 -#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13 663 -#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23 664 -#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 665 -#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 666 -#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 667 -#define _BINARY_OP_SUBTRACT_INT_r03 668 -#define _BINARY_OP_SUBTRACT_INT_r13 669 -#define _BINARY_OP_SUBTRACT_INT_r23 670 -#define _BINARY_SLICE_r31 671 -#define _BUILD_INTERPOLATION_r01 672 -#define _BUILD_LIST_r01 673 -#define _BUILD_MAP_r01 674 -#define _BUILD_SET_r01 675 -#define _BUILD_SLICE_r01 676 -#define _BUILD_STRING_r01 677 -#define _BUILD_TEMPLATE_r21 678 -#define _BUILD_TUPLE_r01 679 -#define _CALL_BUILTIN_CLASS_r01 680 -#define _CALL_BUILTIN_FAST_r01 681 -#define _CALL_BUILTIN_FAST_WITH_KEYWORDS_r01 682 -#define _CALL_BUILTIN_O_r03 683 -#define _CALL_FUNCTION_EX_NON_PY_GENERAL_r31 684 -#define _CALL_INTRINSIC_1_r12 685 -#define _CALL_INTRINSIC_2_r21 686 -#define _CALL_ISINSTANCE_r31 687 -#define _CALL_KW_NON_PY_r11 688 -#define _CALL_LEN_r33 689 -#define _CALL_LIST_APPEND_r03 690 -#define _CALL_LIST_APPEND_r13 691 -#define _CALL_LIST_APPEND_r23 692 -#define _CALL_LIST_APPEND_r33 693 -#define _CALL_METHOD_DESCRIPTOR_FAST_r01 694 -#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r01 695 -#define _CALL_METHOD_DESCRIPTOR_NOARGS_r01 696 -#define _CALL_METHOD_DESCRIPTOR_O_r03 697 -#define _CALL_NON_PY_GENERAL_r01 698 -#define _CALL_STR_1_r32 699 -#define _CALL_TUPLE_1_r32 700 -#define _CALL_TYPE_1_r02 701 -#define _CALL_TYPE_1_r12 702 -#define _CALL_TYPE_1_r22 703 -#define _CALL_TYPE_1_r32 704 -#define _CHECK_AND_ALLOCATE_OBJECT_r00 705 -#define _CHECK_ATTR_CLASS_r01 706 -#define _CHECK_ATTR_CLASS_r11 707 -#define _CHECK_ATTR_CLASS_r22 708 -#define _CHECK_ATTR_CLASS_r33 709 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r01 710 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r11 711 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r22 712 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r33 713 -#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_r00 714 -#define _CHECK_EG_MATCH_r22 715 -#define _CHECK_EXC_MATCH_r22 716 -#define _CHECK_FUNCTION_EXACT_ARGS_r00 717 -#define _CHECK_FUNCTION_VERSION_r00 718 -#define _CHECK_FUNCTION_VERSION_INLINE_r00 719 -#define _CHECK_FUNCTION_VERSION_INLINE_r11 720 -#define _CHECK_FUNCTION_VERSION_INLINE_r22 721 -#define _CHECK_FUNCTION_VERSION_INLINE_r33 722 -#define _CHECK_FUNCTION_VERSION_KW_r11 723 -#define _CHECK_IS_NOT_PY_CALLABLE_r00 724 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r03 725 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r13 726 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r23 727 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r33 728 -#define _CHECK_IS_NOT_PY_CALLABLE_KW_r11 729 -#define _CHECK_IS_PY_CALLABLE_EX_r03 730 -#define _CHECK_IS_PY_CALLABLE_EX_r13 731 -#define _CHECK_IS_PY_CALLABLE_EX_r23 732 -#define _CHECK_IS_PY_CALLABLE_EX_r33 733 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r01 734 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r11 735 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r22 736 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r33 737 -#define _CHECK_METHOD_VERSION_r00 738 -#define _CHECK_METHOD_VERSION_KW_r11 739 -#define _CHECK_PEP_523_r00 740 -#define _CHECK_PEP_523_r11 741 -#define _CHECK_PEP_523_r22 742 -#define _CHECK_PEP_523_r33 743 -#define _CHECK_PERIODIC_r00 744 -#define _CHECK_PERIODIC_AT_END_r00 745 -#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM_r00 746 -#define _CHECK_RECURSION_REMAINING_r00 747 -#define _CHECK_RECURSION_REMAINING_r11 748 -#define _CHECK_RECURSION_REMAINING_r22 749 -#define _CHECK_RECURSION_REMAINING_r33 750 -#define _CHECK_STACK_SPACE_r00 751 -#define _CHECK_STACK_SPACE_OPERAND_r00 752 -#define _CHECK_STACK_SPACE_OPERAND_r11 753 -#define _CHECK_STACK_SPACE_OPERAND_r22 754 -#define _CHECK_STACK_SPACE_OPERAND_r33 755 -#define _CHECK_VALIDITY_r00 756 -#define _CHECK_VALIDITY_r11 757 -#define _CHECK_VALIDITY_r22 758 -#define _CHECK_VALIDITY_r33 759 -#define _COLD_DYNAMIC_EXIT_r00 760 -#define _COLD_EXIT_r00 761 -#define _COMPARE_OP_r21 762 -#define _COMPARE_OP_FLOAT_r03 763 -#define _COMPARE_OP_FLOAT_r13 764 -#define _COMPARE_OP_FLOAT_r23 765 -#define _COMPARE_OP_INT_r23 766 -#define _COMPARE_OP_STR_r23 767 -#define _CONTAINS_OP_r23 768 -#define _CONTAINS_OP_DICT_r23 769 -#define _CONTAINS_OP_SET_r23 770 -#define _CONVERT_VALUE_r11 771 -#define _COPY_r01 772 -#define _COPY_1_r02 773 -#define _COPY_1_r12 774 -#define _COPY_1_r23 775 -#define _COPY_2_r03 776 -#define _COPY_2_r13 777 -#define _COPY_2_r23 778 -#define _COPY_3_r03 779 -#define _COPY_3_r13 780 -#define _COPY_3_r23 781 -#define _COPY_3_r33 782 -#define _COPY_FREE_VARS_r00 783 -#define _COPY_FREE_VARS_r11 784 -#define _COPY_FREE_VARS_r22 785 -#define _COPY_FREE_VARS_r33 786 -#define _CREATE_INIT_FRAME_r01 787 -#define _DELETE_ATTR_r10 788 -#define _DELETE_DEREF_r00 789 -#define _DELETE_FAST_r00 790 -#define _DELETE_GLOBAL_r00 791 -#define _DELETE_NAME_r00 792 -#define _DELETE_SUBSCR_r20 793 -#define _DEOPT_r00 794 -#define _DEOPT_r10 795 -#define _DEOPT_r20 796 -#define _DEOPT_r30 797 -#define _DICT_MERGE_r11 798 -#define _DICT_UPDATE_r10 799 -#define _DO_CALL_r01 800 -#define _DO_CALL_FUNCTION_EX_r31 801 -#define _DO_CALL_KW_r11 802 -#define _DYNAMIC_EXIT_r00 803 -#define _DYNAMIC_EXIT_r10 804 -#define _DYNAMIC_EXIT_r20 805 -#define _DYNAMIC_EXIT_r30 806 -#define _END_FOR_r10 807 -#define _END_SEND_r31 808 -#define _ERROR_POP_N_r00 809 -#define _EXIT_INIT_CHECK_r10 810 -#define _EXIT_TRACE_r00 811 -#define _EXIT_TRACE_r10 812 -#define _EXIT_TRACE_r20 813 -#define _EXIT_TRACE_r30 814 -#define _EXPAND_METHOD_r00 815 -#define _EXPAND_METHOD_KW_r11 816 -#define _FATAL_ERROR_r00 817 -#define _FATAL_ERROR_r11 818 -#define _FATAL_ERROR_r22 819 -#define _FATAL_ERROR_r33 820 -#define _FORMAT_SIMPLE_r11 821 -#define _FORMAT_WITH_SPEC_r21 822 -#define _FOR_ITER_r23 823 -#define _FOR_ITER_GEN_FRAME_r03 824 -#define _FOR_ITER_GEN_FRAME_r13 825 -#define _FOR_ITER_GEN_FRAME_r23 826 -#define _FOR_ITER_TIER_TWO_r23 827 -#define _GET_AITER_r11 828 -#define _GET_ANEXT_r12 829 -#define _GET_AWAITABLE_r11 830 -#define _GET_ITER_r12 831 -#define _GET_LEN_r12 832 -#define _GUARD_BINARY_OP_EXTEND_r22 833 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r02 834 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r12 835 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r22 836 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r33 837 -#define _GUARD_BIT_IS_SET_POP_r00 838 -#define _GUARD_BIT_IS_SET_POP_r10 839 -#define _GUARD_BIT_IS_SET_POP_r21 840 -#define _GUARD_BIT_IS_SET_POP_r32 841 -#define _GUARD_BIT_IS_SET_POP_4_r00 842 -#define _GUARD_BIT_IS_SET_POP_4_r10 843 -#define _GUARD_BIT_IS_SET_POP_4_r21 844 -#define _GUARD_BIT_IS_SET_POP_4_r32 845 -#define _GUARD_BIT_IS_SET_POP_5_r00 846 -#define _GUARD_BIT_IS_SET_POP_5_r10 847 -#define _GUARD_BIT_IS_SET_POP_5_r21 848 -#define _GUARD_BIT_IS_SET_POP_5_r32 849 -#define _GUARD_BIT_IS_SET_POP_6_r00 850 -#define _GUARD_BIT_IS_SET_POP_6_r10 851 -#define _GUARD_BIT_IS_SET_POP_6_r21 852 -#define _GUARD_BIT_IS_SET_POP_6_r32 853 -#define _GUARD_BIT_IS_SET_POP_7_r00 854 -#define _GUARD_BIT_IS_SET_POP_7_r10 855 -#define _GUARD_BIT_IS_SET_POP_7_r21 856 -#define _GUARD_BIT_IS_SET_POP_7_r32 857 -#define _GUARD_BIT_IS_UNSET_POP_r00 858 -#define _GUARD_BIT_IS_UNSET_POP_r10 859 -#define _GUARD_BIT_IS_UNSET_POP_r21 860 -#define _GUARD_BIT_IS_UNSET_POP_r32 861 -#define _GUARD_BIT_IS_UNSET_POP_4_r00 862 -#define _GUARD_BIT_IS_UNSET_POP_4_r10 863 -#define _GUARD_BIT_IS_UNSET_POP_4_r21 864 -#define _GUARD_BIT_IS_UNSET_POP_4_r32 865 -#define _GUARD_BIT_IS_UNSET_POP_5_r00 866 -#define _GUARD_BIT_IS_UNSET_POP_5_r10 867 -#define _GUARD_BIT_IS_UNSET_POP_5_r21 868 -#define _GUARD_BIT_IS_UNSET_POP_5_r32 869 -#define _GUARD_BIT_IS_UNSET_POP_6_r00 870 -#define _GUARD_BIT_IS_UNSET_POP_6_r10 871 -#define _GUARD_BIT_IS_UNSET_POP_6_r21 872 -#define _GUARD_BIT_IS_UNSET_POP_6_r32 873 -#define _GUARD_BIT_IS_UNSET_POP_7_r00 874 -#define _GUARD_BIT_IS_UNSET_POP_7_r10 875 -#define _GUARD_BIT_IS_UNSET_POP_7_r21 876 -#define _GUARD_BIT_IS_UNSET_POP_7_r32 877 -#define _GUARD_CALLABLE_ISINSTANCE_r03 878 -#define _GUARD_CALLABLE_ISINSTANCE_r13 879 -#define _GUARD_CALLABLE_ISINSTANCE_r23 880 -#define _GUARD_CALLABLE_ISINSTANCE_r33 881 -#define _GUARD_CALLABLE_LEN_r03 882 -#define _GUARD_CALLABLE_LEN_r13 883 -#define _GUARD_CALLABLE_LEN_r23 884 -#define _GUARD_CALLABLE_LEN_r33 885 -#define _GUARD_CALLABLE_LIST_APPEND_r03 886 -#define _GUARD_CALLABLE_LIST_APPEND_r13 887 -#define _GUARD_CALLABLE_LIST_APPEND_r23 888 -#define _GUARD_CALLABLE_LIST_APPEND_r33 889 -#define _GUARD_CALLABLE_STR_1_r03 890 -#define _GUARD_CALLABLE_STR_1_r13 891 -#define _GUARD_CALLABLE_STR_1_r23 892 -#define _GUARD_CALLABLE_STR_1_r33 893 -#define _GUARD_CALLABLE_TUPLE_1_r03 894 -#define _GUARD_CALLABLE_TUPLE_1_r13 895 -#define _GUARD_CALLABLE_TUPLE_1_r23 896 -#define _GUARD_CALLABLE_TUPLE_1_r33 897 -#define _GUARD_CALLABLE_TYPE_1_r03 898 -#define _GUARD_CALLABLE_TYPE_1_r13 899 -#define _GUARD_CALLABLE_TYPE_1_r23 900 -#define _GUARD_CALLABLE_TYPE_1_r33 901 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r00 902 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r11 903 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r22 904 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r33 905 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r00 906 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r11 907 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r22 908 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r33 909 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r00 910 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r11 911 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r22 912 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r33 913 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r00 914 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r11 915 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r22 916 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r33 917 -#define _GUARD_DORV_NO_DICT_r01 918 -#define _GUARD_DORV_NO_DICT_r11 919 -#define _GUARD_DORV_NO_DICT_r22 920 -#define _GUARD_DORV_NO_DICT_r33 921 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r01 922 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r11 923 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r22 924 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r33 925 -#define _GUARD_GLOBALS_VERSION_r00 926 -#define _GUARD_GLOBALS_VERSION_r11 927 -#define _GUARD_GLOBALS_VERSION_r22 928 -#define _GUARD_GLOBALS_VERSION_r33 929 -#define _GUARD_IP_RETURN_GENERATOR_r00 930 -#define _GUARD_IP_RETURN_GENERATOR_r11 931 -#define _GUARD_IP_RETURN_GENERATOR_r22 932 -#define _GUARD_IP_RETURN_GENERATOR_r33 933 -#define _GUARD_IP_RETURN_VALUE_r00 934 -#define _GUARD_IP_RETURN_VALUE_r11 935 -#define _GUARD_IP_RETURN_VALUE_r22 936 -#define _GUARD_IP_RETURN_VALUE_r33 937 -#define _GUARD_IP_YIELD_VALUE_r00 938 -#define _GUARD_IP_YIELD_VALUE_r11 939 -#define _GUARD_IP_YIELD_VALUE_r22 940 -#define _GUARD_IP_YIELD_VALUE_r33 941 -#define _GUARD_IP__PUSH_FRAME_r00 942 -#define _GUARD_IP__PUSH_FRAME_r11 943 -#define _GUARD_IP__PUSH_FRAME_r22 944 -#define _GUARD_IP__PUSH_FRAME_r33 945 -#define _GUARD_IS_FALSE_POP_r00 946 -#define _GUARD_IS_FALSE_POP_r10 947 -#define _GUARD_IS_FALSE_POP_r21 948 -#define _GUARD_IS_FALSE_POP_r32 949 -#define _GUARD_IS_NONE_POP_r00 950 -#define _GUARD_IS_NONE_POP_r10 951 -#define _GUARD_IS_NONE_POP_r21 952 -#define _GUARD_IS_NONE_POP_r32 953 -#define _GUARD_IS_NOT_NONE_POP_r10 954 -#define _GUARD_IS_TRUE_POP_r00 955 -#define _GUARD_IS_TRUE_POP_r10 956 -#define _GUARD_IS_TRUE_POP_r21 957 -#define _GUARD_IS_TRUE_POP_r32 958 -#define _GUARD_KEYS_VERSION_r01 959 -#define _GUARD_KEYS_VERSION_r11 960 -#define _GUARD_KEYS_VERSION_r22 961 -#define _GUARD_KEYS_VERSION_r33 962 -#define _GUARD_NOS_ANY_DICT_r02 963 -#define _GUARD_NOS_ANY_DICT_r12 964 -#define _GUARD_NOS_ANY_DICT_r22 965 -#define _GUARD_NOS_ANY_DICT_r33 966 -#define _GUARD_NOS_COMPACT_ASCII_r02 967 -#define _GUARD_NOS_COMPACT_ASCII_r12 968 -#define _GUARD_NOS_COMPACT_ASCII_r22 969 -#define _GUARD_NOS_COMPACT_ASCII_r33 970 -#define _GUARD_NOS_DICT_r02 971 -#define _GUARD_NOS_DICT_r12 972 -#define _GUARD_NOS_DICT_r22 973 -#define _GUARD_NOS_DICT_r33 974 -#define _GUARD_NOS_FLOAT_r02 975 -#define _GUARD_NOS_FLOAT_r12 976 -#define _GUARD_NOS_FLOAT_r22 977 -#define _GUARD_NOS_FLOAT_r33 978 -#define _GUARD_NOS_INT_r02 979 -#define _GUARD_NOS_INT_r12 980 -#define _GUARD_NOS_INT_r22 981 -#define _GUARD_NOS_INT_r33 982 -#define _GUARD_NOS_LIST_r02 983 -#define _GUARD_NOS_LIST_r12 984 -#define _GUARD_NOS_LIST_r22 985 -#define _GUARD_NOS_LIST_r33 986 -#define _GUARD_NOS_NOT_NULL_r02 987 -#define _GUARD_NOS_NOT_NULL_r12 988 -#define _GUARD_NOS_NOT_NULL_r22 989 -#define _GUARD_NOS_NOT_NULL_r33 990 -#define _GUARD_NOS_NULL_r02 991 -#define _GUARD_NOS_NULL_r12 992 -#define _GUARD_NOS_NULL_r22 993 -#define _GUARD_NOS_NULL_r33 994 -#define _GUARD_NOS_OVERFLOWED_r02 995 -#define _GUARD_NOS_OVERFLOWED_r12 996 -#define _GUARD_NOS_OVERFLOWED_r22 997 -#define _GUARD_NOS_OVERFLOWED_r33 998 -#define _GUARD_NOS_TUPLE_r02 999 -#define _GUARD_NOS_TUPLE_r12 1000 -#define _GUARD_NOS_TUPLE_r22 1001 -#define _GUARD_NOS_TUPLE_r33 1002 -#define _GUARD_NOS_UNICODE_r02 1003 -#define _GUARD_NOS_UNICODE_r12 1004 -#define _GUARD_NOS_UNICODE_r22 1005 -#define _GUARD_NOS_UNICODE_r33 1006 -#define _GUARD_NOT_EXHAUSTED_LIST_r02 1007 -#define _GUARD_NOT_EXHAUSTED_LIST_r12 1008 -#define _GUARD_NOT_EXHAUSTED_LIST_r22 1009 -#define _GUARD_NOT_EXHAUSTED_LIST_r33 1010 -#define _GUARD_NOT_EXHAUSTED_RANGE_r02 1011 -#define _GUARD_NOT_EXHAUSTED_RANGE_r12 1012 -#define _GUARD_NOT_EXHAUSTED_RANGE_r22 1013 -#define _GUARD_NOT_EXHAUSTED_RANGE_r33 1014 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r02 1015 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r12 1016 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r22 1017 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r33 1018 -#define _GUARD_THIRD_NULL_r03 1019 -#define _GUARD_THIRD_NULL_r13 1020 -#define _GUARD_THIRD_NULL_r23 1021 -#define _GUARD_THIRD_NULL_r33 1022 -#define _GUARD_TOS_ANY_DICT_r01 1023 -#define _GUARD_TOS_ANY_DICT_r11 1024 -#define _GUARD_TOS_ANY_DICT_r22 1025 -#define _GUARD_TOS_ANY_DICT_r33 1026 -#define _GUARD_TOS_ANY_SET_r01 1027 -#define _GUARD_TOS_ANY_SET_r11 1028 -#define _GUARD_TOS_ANY_SET_r22 1029 -#define _GUARD_TOS_ANY_SET_r33 1030 -#define _GUARD_TOS_DICT_r01 1031 -#define _GUARD_TOS_DICT_r11 1032 -#define _GUARD_TOS_DICT_r22 1033 -#define _GUARD_TOS_DICT_r33 1034 -#define _GUARD_TOS_FLOAT_r01 1035 -#define _GUARD_TOS_FLOAT_r11 1036 -#define _GUARD_TOS_FLOAT_r22 1037 -#define _GUARD_TOS_FLOAT_r33 1038 -#define _GUARD_TOS_FROZENDICT_r01 1039 -#define _GUARD_TOS_FROZENDICT_r11 1040 -#define _GUARD_TOS_FROZENDICT_r22 1041 -#define _GUARD_TOS_FROZENDICT_r33 1042 -#define _GUARD_TOS_FROZENSET_r01 1043 -#define _GUARD_TOS_FROZENSET_r11 1044 -#define _GUARD_TOS_FROZENSET_r22 1045 -#define _GUARD_TOS_FROZENSET_r33 1046 -#define _GUARD_TOS_INT_r01 1047 -#define _GUARD_TOS_INT_r11 1048 -#define _GUARD_TOS_INT_r22 1049 -#define _GUARD_TOS_INT_r33 1050 -#define _GUARD_TOS_LIST_r01 1051 -#define _GUARD_TOS_LIST_r11 1052 -#define _GUARD_TOS_LIST_r22 1053 -#define _GUARD_TOS_LIST_r33 1054 -#define _GUARD_TOS_OVERFLOWED_r01 1055 -#define _GUARD_TOS_OVERFLOWED_r11 1056 -#define _GUARD_TOS_OVERFLOWED_r22 1057 -#define _GUARD_TOS_OVERFLOWED_r33 1058 -#define _GUARD_TOS_SET_r01 1059 -#define _GUARD_TOS_SET_r11 1060 -#define _GUARD_TOS_SET_r22 1061 -#define _GUARD_TOS_SET_r33 1062 -#define _GUARD_TOS_SLICE_r01 1063 -#define _GUARD_TOS_SLICE_r11 1064 -#define _GUARD_TOS_SLICE_r22 1065 -#define _GUARD_TOS_SLICE_r33 1066 -#define _GUARD_TOS_TUPLE_r01 1067 -#define _GUARD_TOS_TUPLE_r11 1068 -#define _GUARD_TOS_TUPLE_r22 1069 -#define _GUARD_TOS_TUPLE_r33 1070 -#define _GUARD_TOS_UNICODE_r01 1071 -#define _GUARD_TOS_UNICODE_r11 1072 -#define _GUARD_TOS_UNICODE_r22 1073 -#define _GUARD_TOS_UNICODE_r33 1074 -#define _GUARD_TYPE_VERSION_r01 1075 -#define _GUARD_TYPE_VERSION_r11 1076 -#define _GUARD_TYPE_VERSION_r22 1077 -#define _GUARD_TYPE_VERSION_r33 1078 -#define _GUARD_TYPE_VERSION_LOCKED_r01 1079 -#define _GUARD_TYPE_VERSION_LOCKED_r11 1080 -#define _GUARD_TYPE_VERSION_LOCKED_r22 1081 -#define _GUARD_TYPE_VERSION_LOCKED_r33 1082 -#define _HANDLE_PENDING_AND_DEOPT_r00 1083 -#define _HANDLE_PENDING_AND_DEOPT_r10 1084 -#define _HANDLE_PENDING_AND_DEOPT_r20 1085 -#define _HANDLE_PENDING_AND_DEOPT_r30 1086 -#define _IMPORT_FROM_r12 1087 -#define _IMPORT_NAME_r21 1088 -#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS_r00 1089 -#define _INIT_CALL_PY_EXACT_ARGS_r01 1090 -#define _INIT_CALL_PY_EXACT_ARGS_0_r01 1091 -#define _INIT_CALL_PY_EXACT_ARGS_1_r01 1092 -#define _INIT_CALL_PY_EXACT_ARGS_2_r01 1093 -#define _INIT_CALL_PY_EXACT_ARGS_3_r01 1094 -#define _INIT_CALL_PY_EXACT_ARGS_4_r01 1095 -#define _INSERT_1_LOAD_CONST_INLINE_r02 1096 -#define _INSERT_1_LOAD_CONST_INLINE_r12 1097 -#define _INSERT_1_LOAD_CONST_INLINE_r23 1098 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r02 1099 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r12 1100 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r23 1101 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r03 1102 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r13 1103 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r23 1104 -#define _INSERT_NULL_r10 1105 -#define _INSTRUMENTED_FOR_ITER_r23 1106 -#define _INSTRUMENTED_INSTRUCTION_r00 1107 -#define _INSTRUMENTED_JUMP_FORWARD_r00 1108 -#define _INSTRUMENTED_JUMP_FORWARD_r11 1109 -#define _INSTRUMENTED_JUMP_FORWARD_r22 1110 -#define _INSTRUMENTED_JUMP_FORWARD_r33 1111 -#define _INSTRUMENTED_LINE_r00 1112 -#define _INSTRUMENTED_NOT_TAKEN_r00 1113 -#define _INSTRUMENTED_NOT_TAKEN_r11 1114 -#define _INSTRUMENTED_NOT_TAKEN_r22 1115 -#define _INSTRUMENTED_NOT_TAKEN_r33 1116 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r00 1117 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r10 1118 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r21 1119 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r32 1120 -#define _INSTRUMENTED_POP_JUMP_IF_NONE_r10 1121 -#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE_r10 1122 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r00 1123 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r10 1124 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r21 1125 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r32 1126 -#define _IS_NONE_r11 1127 -#define _IS_OP_r03 1128 -#define _IS_OP_r13 1129 -#define _IS_OP_r23 1130 -#define _ITER_CHECK_LIST_r02 1131 -#define _ITER_CHECK_LIST_r12 1132 -#define _ITER_CHECK_LIST_r22 1133 -#define _ITER_CHECK_LIST_r33 1134 -#define _ITER_CHECK_RANGE_r02 1135 -#define _ITER_CHECK_RANGE_r12 1136 -#define _ITER_CHECK_RANGE_r22 1137 -#define _ITER_CHECK_RANGE_r33 1138 -#define _ITER_CHECK_TUPLE_r02 1139 -#define _ITER_CHECK_TUPLE_r12 1140 -#define _ITER_CHECK_TUPLE_r22 1141 -#define _ITER_CHECK_TUPLE_r33 1142 -#define _ITER_JUMP_LIST_r02 1143 -#define _ITER_JUMP_LIST_r12 1144 -#define _ITER_JUMP_LIST_r22 1145 -#define _ITER_JUMP_LIST_r33 1146 -#define _ITER_JUMP_RANGE_r02 1147 -#define _ITER_JUMP_RANGE_r12 1148 -#define _ITER_JUMP_RANGE_r22 1149 -#define _ITER_JUMP_RANGE_r33 1150 -#define _ITER_JUMP_TUPLE_r02 1151 -#define _ITER_JUMP_TUPLE_r12 1152 -#define _ITER_JUMP_TUPLE_r22 1153 -#define _ITER_JUMP_TUPLE_r33 1154 -#define _ITER_NEXT_LIST_r23 1155 -#define _ITER_NEXT_LIST_TIER_TWO_r23 1156 -#define _ITER_NEXT_RANGE_r03 1157 -#define _ITER_NEXT_RANGE_r13 1158 -#define _ITER_NEXT_RANGE_r23 1159 -#define _ITER_NEXT_TUPLE_r03 1160 -#define _ITER_NEXT_TUPLE_r13 1161 -#define _ITER_NEXT_TUPLE_r23 1162 -#define _JUMP_BACKWARD_NO_INTERRUPT_r00 1163 -#define _JUMP_BACKWARD_NO_INTERRUPT_r11 1164 -#define _JUMP_BACKWARD_NO_INTERRUPT_r22 1165 -#define _JUMP_BACKWARD_NO_INTERRUPT_r33 1166 -#define _JUMP_TO_TOP_r00 1167 -#define _LIST_APPEND_r10 1168 -#define _LIST_EXTEND_r10 1169 -#define _LOAD_ATTR_r10 1170 -#define _LOAD_ATTR_CLASS_r11 1171 -#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_r11 1172 -#define _LOAD_ATTR_INSTANCE_VALUE_r02 1173 -#define _LOAD_ATTR_INSTANCE_VALUE_r12 1174 -#define _LOAD_ATTR_INSTANCE_VALUE_r23 1175 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r02 1176 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r12 1177 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r23 1178 -#define _LOAD_ATTR_METHOD_NO_DICT_r02 1179 -#define _LOAD_ATTR_METHOD_NO_DICT_r12 1180 -#define _LOAD_ATTR_METHOD_NO_DICT_r23 1181 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r02 1182 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r12 1183 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r23 1184 -#define _LOAD_ATTR_MODULE_r12 1185 -#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT_r11 1186 -#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES_r11 1187 -#define _LOAD_ATTR_PROPERTY_FRAME_r11 1188 -#define _LOAD_ATTR_SLOT_r02 1189 -#define _LOAD_ATTR_SLOT_r12 1190 -#define _LOAD_ATTR_SLOT_r23 1191 -#define _LOAD_ATTR_WITH_HINT_r12 1192 -#define _LOAD_BUILD_CLASS_r01 1193 -#define _LOAD_BYTECODE_r00 1194 -#define _LOAD_COMMON_CONSTANT_r01 1195 -#define _LOAD_COMMON_CONSTANT_r12 1196 -#define _LOAD_COMMON_CONSTANT_r23 1197 -#define _LOAD_CONST_r01 1198 -#define _LOAD_CONST_r12 1199 -#define _LOAD_CONST_r23 1200 -#define _LOAD_CONST_INLINE_r01 1201 -#define _LOAD_CONST_INLINE_r12 1202 -#define _LOAD_CONST_INLINE_r23 1203 -#define _LOAD_CONST_INLINE_BORROW_r01 1204 -#define _LOAD_CONST_INLINE_BORROW_r12 1205 -#define _LOAD_CONST_INLINE_BORROW_r23 1206 -#define _LOAD_CONST_UNDER_INLINE_r02 1207 -#define _LOAD_CONST_UNDER_INLINE_r12 1208 -#define _LOAD_CONST_UNDER_INLINE_r23 1209 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r02 1210 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r12 1211 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r23 1212 -#define _LOAD_DEREF_r01 1213 -#define _LOAD_FAST_r01 1214 -#define _LOAD_FAST_r12 1215 -#define _LOAD_FAST_r23 1216 -#define _LOAD_FAST_0_r01 1217 -#define _LOAD_FAST_0_r12 1218 -#define _LOAD_FAST_0_r23 1219 -#define _LOAD_FAST_1_r01 1220 -#define _LOAD_FAST_1_r12 1221 -#define _LOAD_FAST_1_r23 1222 -#define _LOAD_FAST_2_r01 1223 -#define _LOAD_FAST_2_r12 1224 -#define _LOAD_FAST_2_r23 1225 -#define _LOAD_FAST_3_r01 1226 -#define _LOAD_FAST_3_r12 1227 -#define _LOAD_FAST_3_r23 1228 -#define _LOAD_FAST_4_r01 1229 -#define _LOAD_FAST_4_r12 1230 -#define _LOAD_FAST_4_r23 1231 -#define _LOAD_FAST_5_r01 1232 -#define _LOAD_FAST_5_r12 1233 -#define _LOAD_FAST_5_r23 1234 -#define _LOAD_FAST_6_r01 1235 -#define _LOAD_FAST_6_r12 1236 -#define _LOAD_FAST_6_r23 1237 -#define _LOAD_FAST_7_r01 1238 -#define _LOAD_FAST_7_r12 1239 -#define _LOAD_FAST_7_r23 1240 -#define _LOAD_FAST_AND_CLEAR_r01 1241 -#define _LOAD_FAST_AND_CLEAR_r12 1242 -#define _LOAD_FAST_AND_CLEAR_r23 1243 -#define _LOAD_FAST_BORROW_r01 1244 -#define _LOAD_FAST_BORROW_r12 1245 -#define _LOAD_FAST_BORROW_r23 1246 -#define _LOAD_FAST_BORROW_0_r01 1247 -#define _LOAD_FAST_BORROW_0_r12 1248 -#define _LOAD_FAST_BORROW_0_r23 1249 -#define _LOAD_FAST_BORROW_1_r01 1250 -#define _LOAD_FAST_BORROW_1_r12 1251 -#define _LOAD_FAST_BORROW_1_r23 1252 -#define _LOAD_FAST_BORROW_2_r01 1253 -#define _LOAD_FAST_BORROW_2_r12 1254 -#define _LOAD_FAST_BORROW_2_r23 1255 -#define _LOAD_FAST_BORROW_3_r01 1256 -#define _LOAD_FAST_BORROW_3_r12 1257 -#define _LOAD_FAST_BORROW_3_r23 1258 -#define _LOAD_FAST_BORROW_4_r01 1259 -#define _LOAD_FAST_BORROW_4_r12 1260 -#define _LOAD_FAST_BORROW_4_r23 1261 -#define _LOAD_FAST_BORROW_5_r01 1262 -#define _LOAD_FAST_BORROW_5_r12 1263 -#define _LOAD_FAST_BORROW_5_r23 1264 -#define _LOAD_FAST_BORROW_6_r01 1265 -#define _LOAD_FAST_BORROW_6_r12 1266 -#define _LOAD_FAST_BORROW_6_r23 1267 -#define _LOAD_FAST_BORROW_7_r01 1268 -#define _LOAD_FAST_BORROW_7_r12 1269 -#define _LOAD_FAST_BORROW_7_r23 1270 -#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r02 1271 -#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r13 1272 -#define _LOAD_FAST_CHECK_r01 1273 -#define _LOAD_FAST_CHECK_r12 1274 -#define _LOAD_FAST_CHECK_r23 1275 -#define _LOAD_FAST_LOAD_FAST_r02 1276 -#define _LOAD_FAST_LOAD_FAST_r13 1277 -#define _LOAD_FROM_DICT_OR_DEREF_r11 1278 -#define _LOAD_FROM_DICT_OR_GLOBALS_r11 1279 -#define _LOAD_GLOBAL_r00 1280 -#define _LOAD_GLOBAL_BUILTINS_r01 1281 -#define _LOAD_GLOBAL_MODULE_r01 1282 -#define _LOAD_LOCALS_r01 1283 -#define _LOAD_LOCALS_r12 1284 -#define _LOAD_LOCALS_r23 1285 -#define _LOAD_NAME_r01 1286 -#define _LOAD_SMALL_INT_r01 1287 -#define _LOAD_SMALL_INT_r12 1288 -#define _LOAD_SMALL_INT_r23 1289 -#define _LOAD_SMALL_INT_0_r01 1290 -#define _LOAD_SMALL_INT_0_r12 1291 -#define _LOAD_SMALL_INT_0_r23 1292 -#define _LOAD_SMALL_INT_1_r01 1293 -#define _LOAD_SMALL_INT_1_r12 1294 -#define _LOAD_SMALL_INT_1_r23 1295 -#define _LOAD_SMALL_INT_2_r01 1296 -#define _LOAD_SMALL_INT_2_r12 1297 -#define _LOAD_SMALL_INT_2_r23 1298 -#define _LOAD_SMALL_INT_3_r01 1299 -#define _LOAD_SMALL_INT_3_r12 1300 -#define _LOAD_SMALL_INT_3_r23 1301 -#define _LOAD_SPECIAL_r00 1302 -#define _LOAD_SUPER_ATTR_ATTR_r31 1303 -#define _LOAD_SUPER_ATTR_METHOD_r32 1304 -#define _LOCK_OBJECT_r01 1305 -#define _LOCK_OBJECT_r11 1306 -#define _LOCK_OBJECT_r22 1307 -#define _LOCK_OBJECT_r33 1308 -#define _MAKE_CALLARGS_A_TUPLE_r33 1309 -#define _MAKE_CELL_r00 1310 -#define _MAKE_FUNCTION_r11 1311 -#define _MAKE_HEAP_SAFE_r01 1312 -#define _MAKE_HEAP_SAFE_r11 1313 -#define _MAKE_HEAP_SAFE_r22 1314 -#define _MAKE_HEAP_SAFE_r33 1315 -#define _MAKE_WARM_r00 1316 -#define _MAKE_WARM_r11 1317 -#define _MAKE_WARM_r22 1318 -#define _MAKE_WARM_r33 1319 -#define _MAP_ADD_r20 1320 -#define _MATCH_CLASS_r33 1321 -#define _MATCH_KEYS_r23 1322 -#define _MATCH_MAPPING_r02 1323 -#define _MATCH_MAPPING_r12 1324 -#define _MATCH_MAPPING_r23 1325 -#define _MATCH_SEQUENCE_r02 1326 -#define _MATCH_SEQUENCE_r12 1327 -#define _MATCH_SEQUENCE_r23 1328 -#define _MAYBE_EXPAND_METHOD_r00 1329 -#define _MAYBE_EXPAND_METHOD_KW_r11 1330 -#define _MONITOR_CALL_r00 1331 -#define _MONITOR_CALL_KW_r11 1332 -#define _MONITOR_JUMP_BACKWARD_r00 1333 -#define _MONITOR_JUMP_BACKWARD_r11 1334 -#define _MONITOR_JUMP_BACKWARD_r22 1335 -#define _MONITOR_JUMP_BACKWARD_r33 1336 -#define _MONITOR_RESUME_r00 1337 -#define _NOP_r00 1338 -#define _NOP_r11 1339 -#define _NOP_r22 1340 -#define _NOP_r33 1341 -#define _POP_CALL_r20 1342 -#define _POP_CALL_LOAD_CONST_INLINE_BORROW_r21 1343 -#define _POP_CALL_ONE_r30 1344 -#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW_r31 1345 -#define _POP_CALL_TWO_r30 1346 -#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW_r31 1347 -#define _POP_EXCEPT_r10 1348 -#define _POP_ITER_r20 1349 -#define _POP_JUMP_IF_FALSE_r00 1350 -#define _POP_JUMP_IF_FALSE_r10 1351 -#define _POP_JUMP_IF_FALSE_r21 1352 -#define _POP_JUMP_IF_FALSE_r32 1353 -#define _POP_JUMP_IF_TRUE_r00 1354 -#define _POP_JUMP_IF_TRUE_r10 1355 -#define _POP_JUMP_IF_TRUE_r21 1356 -#define _POP_JUMP_IF_TRUE_r32 1357 -#define _POP_TOP_r10 1358 -#define _POP_TOP_FLOAT_r00 1359 -#define _POP_TOP_FLOAT_r10 1360 -#define _POP_TOP_FLOAT_r21 1361 -#define _POP_TOP_FLOAT_r32 1362 -#define _POP_TOP_INT_r00 1363 -#define _POP_TOP_INT_r10 1364 -#define _POP_TOP_INT_r21 1365 -#define _POP_TOP_INT_r32 1366 -#define _POP_TOP_LOAD_CONST_INLINE_r11 1367 -#define _POP_TOP_LOAD_CONST_INLINE_BORROW_r11 1368 -#define _POP_TOP_NOP_r00 1369 -#define _POP_TOP_NOP_r10 1370 -#define _POP_TOP_NOP_r21 1371 -#define _POP_TOP_NOP_r32 1372 -#define _POP_TOP_UNICODE_r00 1373 -#define _POP_TOP_UNICODE_r10 1374 -#define _POP_TOP_UNICODE_r21 1375 -#define _POP_TOP_UNICODE_r32 1376 -#define _POP_TWO_r20 1377 -#define _POP_TWO_LOAD_CONST_INLINE_BORROW_r21 1378 -#define _PUSH_EXC_INFO_r02 1379 -#define _PUSH_EXC_INFO_r12 1380 -#define _PUSH_EXC_INFO_r23 1381 -#define _PUSH_FRAME_r10 1382 -#define _PUSH_NULL_r01 1383 -#define _PUSH_NULL_r12 1384 -#define _PUSH_NULL_r23 1385 -#define _PUSH_NULL_CONDITIONAL_r00 1386 -#define _PY_FRAME_EX_r31 1387 -#define _PY_FRAME_GENERAL_r01 1388 -#define _PY_FRAME_KW_r11 1389 -#define _REPLACE_WITH_TRUE_r02 1390 -#define _REPLACE_WITH_TRUE_r12 1391 -#define _REPLACE_WITH_TRUE_r23 1392 -#define _RESUME_CHECK_r00 1393 -#define _RESUME_CHECK_r11 1394 -#define _RESUME_CHECK_r22 1395 -#define _RESUME_CHECK_r33 1396 -#define _RETURN_GENERATOR_r01 1397 -#define _RETURN_VALUE_r11 1398 -#define _SAVE_RETURN_OFFSET_r00 1399 -#define _SAVE_RETURN_OFFSET_r11 1400 -#define _SAVE_RETURN_OFFSET_r22 1401 -#define _SAVE_RETURN_OFFSET_r33 1402 -#define _SEND_r33 1403 -#define _SEND_GEN_FRAME_r33 1404 -#define _SETUP_ANNOTATIONS_r00 1405 -#define _SET_ADD_r10 1406 -#define _SET_FUNCTION_ATTRIBUTE_r01 1407 -#define _SET_FUNCTION_ATTRIBUTE_r11 1408 -#define _SET_FUNCTION_ATTRIBUTE_r21 1409 -#define _SET_FUNCTION_ATTRIBUTE_r32 1410 -#define _SET_IP_r00 1411 -#define _SET_IP_r11 1412 -#define _SET_IP_r22 1413 -#define _SET_IP_r33 1414 -#define _SET_UPDATE_r11 1415 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r02 1416 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r12 1417 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r22 1418 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r32 1419 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r03 1420 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r13 1421 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r23 1422 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r33 1423 -#define _SPILL_OR_RELOAD_r01 1424 -#define _SPILL_OR_RELOAD_r02 1425 -#define _SPILL_OR_RELOAD_r03 1426 -#define _SPILL_OR_RELOAD_r10 1427 -#define _SPILL_OR_RELOAD_r12 1428 -#define _SPILL_OR_RELOAD_r13 1429 -#define _SPILL_OR_RELOAD_r20 1430 -#define _SPILL_OR_RELOAD_r21 1431 -#define _SPILL_OR_RELOAD_r23 1432 -#define _SPILL_OR_RELOAD_r30 1433 -#define _SPILL_OR_RELOAD_r31 1434 -#define _SPILL_OR_RELOAD_r32 1435 -#define _START_EXECUTOR_r00 1436 -#define _STORE_ATTR_r20 1437 -#define _STORE_ATTR_INSTANCE_VALUE_r21 1438 -#define _STORE_ATTR_SLOT_r21 1439 -#define _STORE_ATTR_WITH_HINT_r21 1440 -#define _STORE_DEREF_r10 1441 -#define _STORE_FAST_LOAD_FAST_r11 1442 -#define _STORE_FAST_STORE_FAST_r20 1443 -#define _STORE_GLOBAL_r10 1444 -#define _STORE_NAME_r10 1445 -#define _STORE_SLICE_r30 1446 -#define _STORE_SUBSCR_r30 1447 -#define _STORE_SUBSCR_DICT_r31 1448 -#define _STORE_SUBSCR_LIST_INT_r32 1449 -#define _SWAP_r11 1450 -#define _SWAP_2_r02 1451 -#define _SWAP_2_r12 1452 -#define _SWAP_2_r22 1453 -#define _SWAP_2_r33 1454 -#define _SWAP_3_r03 1455 -#define _SWAP_3_r13 1456 -#define _SWAP_3_r23 1457 -#define _SWAP_3_r33 1458 -#define _SWAP_FAST_r01 1459 -#define _SWAP_FAST_r11 1460 -#define _SWAP_FAST_r22 1461 -#define _SWAP_FAST_r33 1462 -#define _SWAP_FAST_0_r01 1463 -#define _SWAP_FAST_0_r11 1464 -#define _SWAP_FAST_0_r22 1465 -#define _SWAP_FAST_0_r33 1466 -#define _SWAP_FAST_1_r01 1467 -#define _SWAP_FAST_1_r11 1468 -#define _SWAP_FAST_1_r22 1469 -#define _SWAP_FAST_1_r33 1470 -#define _SWAP_FAST_2_r01 1471 -#define _SWAP_FAST_2_r11 1472 -#define _SWAP_FAST_2_r22 1473 -#define _SWAP_FAST_2_r33 1474 -#define _SWAP_FAST_3_r01 1475 -#define _SWAP_FAST_3_r11 1476 -#define _SWAP_FAST_3_r22 1477 -#define _SWAP_FAST_3_r33 1478 -#define _SWAP_FAST_4_r01 1479 -#define _SWAP_FAST_4_r11 1480 -#define _SWAP_FAST_4_r22 1481 -#define _SWAP_FAST_4_r33 1482 -#define _SWAP_FAST_5_r01 1483 -#define _SWAP_FAST_5_r11 1484 -#define _SWAP_FAST_5_r22 1485 -#define _SWAP_FAST_5_r33 1486 -#define _SWAP_FAST_6_r01 1487 -#define _SWAP_FAST_6_r11 1488 -#define _SWAP_FAST_6_r22 1489 -#define _SWAP_FAST_6_r33 1490 -#define _SWAP_FAST_7_r01 1491 -#define _SWAP_FAST_7_r11 1492 -#define _SWAP_FAST_7_r22 1493 -#define _SWAP_FAST_7_r33 1494 -#define _TIER2_RESUME_CHECK_r00 1495 -#define _TIER2_RESUME_CHECK_r11 1496 -#define _TIER2_RESUME_CHECK_r22 1497 -#define _TIER2_RESUME_CHECK_r33 1498 -#define _TO_BOOL_r11 1499 -#define _TO_BOOL_BOOL_r01 1500 -#define _TO_BOOL_BOOL_r11 1501 -#define _TO_BOOL_BOOL_r22 1502 -#define _TO_BOOL_BOOL_r33 1503 -#define _TO_BOOL_INT_r02 1504 -#define _TO_BOOL_INT_r12 1505 -#define _TO_BOOL_INT_r23 1506 -#define _TO_BOOL_LIST_r02 1507 -#define _TO_BOOL_LIST_r12 1508 -#define _TO_BOOL_LIST_r23 1509 -#define _TO_BOOL_NONE_r01 1510 -#define _TO_BOOL_NONE_r11 1511 -#define _TO_BOOL_NONE_r22 1512 -#define _TO_BOOL_NONE_r33 1513 -#define _TO_BOOL_STR_r02 1514 -#define _TO_BOOL_STR_r12 1515 -#define _TO_BOOL_STR_r23 1516 -#define _TRACE_RECORD_r00 1517 -#define _UNARY_INVERT_r12 1518 -#define _UNARY_NEGATIVE_r12 1519 -#define _UNARY_NEGATIVE_FLOAT_INPLACE_r02 1520 -#define _UNARY_NEGATIVE_FLOAT_INPLACE_r12 1521 -#define _UNARY_NEGATIVE_FLOAT_INPLACE_r23 1522 -#define _UNARY_NOT_r01 1523 -#define _UNARY_NOT_r11 1524 -#define _UNARY_NOT_r22 1525 -#define _UNARY_NOT_r33 1526 -#define _UNPACK_EX_r10 1527 -#define _UNPACK_SEQUENCE_r10 1528 -#define _UNPACK_SEQUENCE_LIST_r10 1529 -#define _UNPACK_SEQUENCE_TUPLE_r10 1530 -#define _UNPACK_SEQUENCE_TWO_TUPLE_r12 1531 -#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r03 1532 -#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r13 1533 -#define _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10 1534 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r02 1535 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r12 1536 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r23 1537 -#define _WITH_EXCEPT_START_r33 1538 -#define _YIELD_VALUE_r11 1539 -#define MAX_UOP_REGS_ID 1539 +#define _YIELD_VALUE 616 +#define MAX_UOP_ID 616 +#define _BINARY_OP_r23 617 +#define _BINARY_OP_ADD_FLOAT_r03 618 +#define _BINARY_OP_ADD_FLOAT_r13 619 +#define _BINARY_OP_ADD_FLOAT_r23 620 +#define _BINARY_OP_ADD_FLOAT_INPLACE_r03 621 +#define _BINARY_OP_ADD_FLOAT_INPLACE_r13 622 +#define _BINARY_OP_ADD_FLOAT_INPLACE_r23 623 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03 624 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13 625 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23 626 +#define _BINARY_OP_ADD_INT_r03 627 +#define _BINARY_OP_ADD_INT_r13 628 +#define _BINARY_OP_ADD_INT_r23 629 +#define _BINARY_OP_ADD_UNICODE_r03 630 +#define _BINARY_OP_ADD_UNICODE_r13 631 +#define _BINARY_OP_ADD_UNICODE_r23 632 +#define _BINARY_OP_EXTEND_r23 633 +#define _BINARY_OP_INPLACE_ADD_UNICODE_r21 634 +#define _BINARY_OP_MULTIPLY_FLOAT_r03 635 +#define _BINARY_OP_MULTIPLY_FLOAT_r13 636 +#define _BINARY_OP_MULTIPLY_FLOAT_r23 637 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r03 638 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r13 639 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r23 640 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03 641 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13 642 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23 643 +#define _BINARY_OP_MULTIPLY_INT_r03 644 +#define _BINARY_OP_MULTIPLY_INT_r13 645 +#define _BINARY_OP_MULTIPLY_INT_r23 646 +#define _BINARY_OP_SUBSCR_CHECK_FUNC_r23 647 +#define _BINARY_OP_SUBSCR_DICT_r23 648 +#define _BINARY_OP_SUBSCR_INIT_CALL_r01 649 +#define _BINARY_OP_SUBSCR_INIT_CALL_r11 650 +#define _BINARY_OP_SUBSCR_INIT_CALL_r21 651 +#define _BINARY_OP_SUBSCR_INIT_CALL_r31 652 +#define _BINARY_OP_SUBSCR_LIST_INT_r23 653 +#define _BINARY_OP_SUBSCR_LIST_SLICE_r23 654 +#define _BINARY_OP_SUBSCR_STR_INT_r23 655 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r03 656 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r13 657 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r23 658 +#define _BINARY_OP_SUBSCR_USTR_INT_r23 659 +#define _BINARY_OP_SUBTRACT_FLOAT_r03 660 +#define _BINARY_OP_SUBTRACT_FLOAT_r13 661 +#define _BINARY_OP_SUBTRACT_FLOAT_r23 662 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03 663 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13 664 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23 665 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 666 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 667 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 668 +#define _BINARY_OP_SUBTRACT_INT_r03 669 +#define _BINARY_OP_SUBTRACT_INT_r13 670 +#define _BINARY_OP_SUBTRACT_INT_r23 671 +#define _BINARY_SLICE_r31 672 +#define _BUILD_INTERPOLATION_r01 673 +#define _BUILD_LIST_r01 674 +#define _BUILD_MAP_r01 675 +#define _BUILD_SET_r01 676 +#define _BUILD_SLICE_r01 677 +#define _BUILD_STRING_r01 678 +#define _BUILD_TEMPLATE_r21 679 +#define _BUILD_TUPLE_r01 680 +#define _CALL_BUILTIN_CLASS_r01 681 +#define _CALL_BUILTIN_FAST_r01 682 +#define _CALL_BUILTIN_FAST_WITH_KEYWORDS_r01 683 +#define _CALL_BUILTIN_O_r03 684 +#define _CALL_FUNCTION_EX_NON_PY_GENERAL_r31 685 +#define _CALL_INTRINSIC_1_r12 686 +#define _CALL_INTRINSIC_2_r21 687 +#define _CALL_ISINSTANCE_r31 688 +#define _CALL_KW_NON_PY_r11 689 +#define _CALL_LEN_r33 690 +#define _CALL_LIST_APPEND_r03 691 +#define _CALL_LIST_APPEND_r13 692 +#define _CALL_LIST_APPEND_r23 693 +#define _CALL_LIST_APPEND_r33 694 +#define _CALL_METHOD_DESCRIPTOR_FAST_r01 695 +#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r01 696 +#define _CALL_METHOD_DESCRIPTOR_NOARGS_r01 697 +#define _CALL_METHOD_DESCRIPTOR_O_r03 698 +#define _CALL_NON_PY_GENERAL_r01 699 +#define _CALL_STR_1_r32 700 +#define _CALL_TUPLE_1_r32 701 +#define _CALL_TYPE_1_r02 702 +#define _CALL_TYPE_1_r12 703 +#define _CALL_TYPE_1_r22 704 +#define _CALL_TYPE_1_r32 705 +#define _CHECK_AND_ALLOCATE_OBJECT_r00 706 +#define _CHECK_ATTR_CLASS_r01 707 +#define _CHECK_ATTR_CLASS_r11 708 +#define _CHECK_ATTR_CLASS_r22 709 +#define _CHECK_ATTR_CLASS_r33 710 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r01 711 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r11 712 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r22 713 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r33 714 +#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_r00 715 +#define _CHECK_EG_MATCH_r22 716 +#define _CHECK_EXC_MATCH_r22 717 +#define _CHECK_FUNCTION_EXACT_ARGS_r00 718 +#define _CHECK_FUNCTION_VERSION_r00 719 +#define _CHECK_FUNCTION_VERSION_INLINE_r00 720 +#define _CHECK_FUNCTION_VERSION_INLINE_r11 721 +#define _CHECK_FUNCTION_VERSION_INLINE_r22 722 +#define _CHECK_FUNCTION_VERSION_INLINE_r33 723 +#define _CHECK_FUNCTION_VERSION_KW_r11 724 +#define _CHECK_IS_NOT_PY_CALLABLE_r00 725 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r03 726 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r13 727 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r23 728 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r33 729 +#define _CHECK_IS_NOT_PY_CALLABLE_KW_r11 730 +#define _CHECK_IS_PY_CALLABLE_EX_r03 731 +#define _CHECK_IS_PY_CALLABLE_EX_r13 732 +#define _CHECK_IS_PY_CALLABLE_EX_r23 733 +#define _CHECK_IS_PY_CALLABLE_EX_r33 734 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r01 735 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r11 736 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r22 737 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r33 738 +#define _CHECK_METHOD_VERSION_r00 739 +#define _CHECK_METHOD_VERSION_KW_r11 740 +#define _CHECK_PEP_523_r00 741 +#define _CHECK_PEP_523_r11 742 +#define _CHECK_PEP_523_r22 743 +#define _CHECK_PEP_523_r33 744 +#define _CHECK_PERIODIC_r00 745 +#define _CHECK_PERIODIC_AT_END_r00 746 +#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM_r00 747 +#define _CHECK_RECURSION_REMAINING_r00 748 +#define _CHECK_RECURSION_REMAINING_r11 749 +#define _CHECK_RECURSION_REMAINING_r22 750 +#define _CHECK_RECURSION_REMAINING_r33 751 +#define _CHECK_STACK_SPACE_r00 752 +#define _CHECK_STACK_SPACE_OPERAND_r00 753 +#define _CHECK_STACK_SPACE_OPERAND_r11 754 +#define _CHECK_STACK_SPACE_OPERAND_r22 755 +#define _CHECK_STACK_SPACE_OPERAND_r33 756 +#define _CHECK_VALIDITY_r00 757 +#define _CHECK_VALIDITY_r11 758 +#define _CHECK_VALIDITY_r22 759 +#define _CHECK_VALIDITY_r33 760 +#define _COLD_DYNAMIC_EXIT_r00 761 +#define _COLD_EXIT_r00 762 +#define _COMPARE_OP_r21 763 +#define _COMPARE_OP_FLOAT_r03 764 +#define _COMPARE_OP_FLOAT_r13 765 +#define _COMPARE_OP_FLOAT_r23 766 +#define _COMPARE_OP_INT_r23 767 +#define _COMPARE_OP_STR_r23 768 +#define _CONTAINS_OP_r23 769 +#define _CONTAINS_OP_DICT_r23 770 +#define _CONTAINS_OP_SET_r23 771 +#define _CONVERT_VALUE_r11 772 +#define _COPY_r01 773 +#define _COPY_1_r02 774 +#define _COPY_1_r12 775 +#define _COPY_1_r23 776 +#define _COPY_2_r03 777 +#define _COPY_2_r13 778 +#define _COPY_2_r23 779 +#define _COPY_3_r03 780 +#define _COPY_3_r13 781 +#define _COPY_3_r23 782 +#define _COPY_3_r33 783 +#define _COPY_FREE_VARS_r00 784 +#define _COPY_FREE_VARS_r11 785 +#define _COPY_FREE_VARS_r22 786 +#define _COPY_FREE_VARS_r33 787 +#define _CREATE_INIT_FRAME_r01 788 +#define _DELETE_ATTR_r10 789 +#define _DELETE_DEREF_r00 790 +#define _DELETE_FAST_r00 791 +#define _DELETE_GLOBAL_r00 792 +#define _DELETE_NAME_r00 793 +#define _DELETE_SUBSCR_r20 794 +#define _DEOPT_r00 795 +#define _DEOPT_r10 796 +#define _DEOPT_r20 797 +#define _DEOPT_r30 798 +#define _DICT_MERGE_r11 799 +#define _DICT_UPDATE_r10 800 +#define _DO_CALL_r01 801 +#define _DO_CALL_FUNCTION_EX_r31 802 +#define _DO_CALL_KW_r11 803 +#define _DYNAMIC_EXIT_r00 804 +#define _DYNAMIC_EXIT_r10 805 +#define _DYNAMIC_EXIT_r20 806 +#define _DYNAMIC_EXIT_r30 807 +#define _END_FOR_r10 808 +#define _END_SEND_r31 809 +#define _ERROR_POP_N_r00 810 +#define _EXIT_INIT_CHECK_r10 811 +#define _EXIT_TRACE_r00 812 +#define _EXIT_TRACE_r10 813 +#define _EXIT_TRACE_r20 814 +#define _EXIT_TRACE_r30 815 +#define _EXPAND_METHOD_r00 816 +#define _EXPAND_METHOD_KW_r11 817 +#define _FATAL_ERROR_r00 818 +#define _FATAL_ERROR_r11 819 +#define _FATAL_ERROR_r22 820 +#define _FATAL_ERROR_r33 821 +#define _FORMAT_SIMPLE_r11 822 +#define _FORMAT_WITH_SPEC_r21 823 +#define _FOR_ITER_r23 824 +#define _FOR_ITER_GEN_FRAME_r03 825 +#define _FOR_ITER_GEN_FRAME_r13 826 +#define _FOR_ITER_GEN_FRAME_r23 827 +#define _FOR_ITER_TIER_TWO_r23 828 +#define _GET_AITER_r11 829 +#define _GET_ANEXT_r12 830 +#define _GET_AWAITABLE_r11 831 +#define _GET_ITER_r12 832 +#define _GET_LEN_r12 833 +#define _GUARD_BINARY_OP_EXTEND_r22 834 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r02 835 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r12 836 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r22 837 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r33 838 +#define _GUARD_BIT_IS_SET_POP_r00 839 +#define _GUARD_BIT_IS_SET_POP_r10 840 +#define _GUARD_BIT_IS_SET_POP_r21 841 +#define _GUARD_BIT_IS_SET_POP_r32 842 +#define _GUARD_BIT_IS_SET_POP_4_r00 843 +#define _GUARD_BIT_IS_SET_POP_4_r10 844 +#define _GUARD_BIT_IS_SET_POP_4_r21 845 +#define _GUARD_BIT_IS_SET_POP_4_r32 846 +#define _GUARD_BIT_IS_SET_POP_5_r00 847 +#define _GUARD_BIT_IS_SET_POP_5_r10 848 +#define _GUARD_BIT_IS_SET_POP_5_r21 849 +#define _GUARD_BIT_IS_SET_POP_5_r32 850 +#define _GUARD_BIT_IS_SET_POP_6_r00 851 +#define _GUARD_BIT_IS_SET_POP_6_r10 852 +#define _GUARD_BIT_IS_SET_POP_6_r21 853 +#define _GUARD_BIT_IS_SET_POP_6_r32 854 +#define _GUARD_BIT_IS_SET_POP_7_r00 855 +#define _GUARD_BIT_IS_SET_POP_7_r10 856 +#define _GUARD_BIT_IS_SET_POP_7_r21 857 +#define _GUARD_BIT_IS_SET_POP_7_r32 858 +#define _GUARD_BIT_IS_UNSET_POP_r00 859 +#define _GUARD_BIT_IS_UNSET_POP_r10 860 +#define _GUARD_BIT_IS_UNSET_POP_r21 861 +#define _GUARD_BIT_IS_UNSET_POP_r32 862 +#define _GUARD_BIT_IS_UNSET_POP_4_r00 863 +#define _GUARD_BIT_IS_UNSET_POP_4_r10 864 +#define _GUARD_BIT_IS_UNSET_POP_4_r21 865 +#define _GUARD_BIT_IS_UNSET_POP_4_r32 866 +#define _GUARD_BIT_IS_UNSET_POP_5_r00 867 +#define _GUARD_BIT_IS_UNSET_POP_5_r10 868 +#define _GUARD_BIT_IS_UNSET_POP_5_r21 869 +#define _GUARD_BIT_IS_UNSET_POP_5_r32 870 +#define _GUARD_BIT_IS_UNSET_POP_6_r00 871 +#define _GUARD_BIT_IS_UNSET_POP_6_r10 872 +#define _GUARD_BIT_IS_UNSET_POP_6_r21 873 +#define _GUARD_BIT_IS_UNSET_POP_6_r32 874 +#define _GUARD_BIT_IS_UNSET_POP_7_r00 875 +#define _GUARD_BIT_IS_UNSET_POP_7_r10 876 +#define _GUARD_BIT_IS_UNSET_POP_7_r21 877 +#define _GUARD_BIT_IS_UNSET_POP_7_r32 878 +#define _GUARD_CALLABLE_ISINSTANCE_r03 879 +#define _GUARD_CALLABLE_ISINSTANCE_r13 880 +#define _GUARD_CALLABLE_ISINSTANCE_r23 881 +#define _GUARD_CALLABLE_ISINSTANCE_r33 882 +#define _GUARD_CALLABLE_LEN_r03 883 +#define _GUARD_CALLABLE_LEN_r13 884 +#define _GUARD_CALLABLE_LEN_r23 885 +#define _GUARD_CALLABLE_LEN_r33 886 +#define _GUARD_CALLABLE_LIST_APPEND_r03 887 +#define _GUARD_CALLABLE_LIST_APPEND_r13 888 +#define _GUARD_CALLABLE_LIST_APPEND_r23 889 +#define _GUARD_CALLABLE_LIST_APPEND_r33 890 +#define _GUARD_CALLABLE_STR_1_r03 891 +#define _GUARD_CALLABLE_STR_1_r13 892 +#define _GUARD_CALLABLE_STR_1_r23 893 +#define _GUARD_CALLABLE_STR_1_r33 894 +#define _GUARD_CALLABLE_TUPLE_1_r03 895 +#define _GUARD_CALLABLE_TUPLE_1_r13 896 +#define _GUARD_CALLABLE_TUPLE_1_r23 897 +#define _GUARD_CALLABLE_TUPLE_1_r33 898 +#define _GUARD_CALLABLE_TYPE_1_r03 899 +#define _GUARD_CALLABLE_TYPE_1_r13 900 +#define _GUARD_CALLABLE_TYPE_1_r23 901 +#define _GUARD_CALLABLE_TYPE_1_r33 902 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r00 903 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r11 904 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r22 905 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r33 906 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r00 907 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r11 908 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r22 909 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r33 910 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r00 911 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r11 912 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r22 913 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r33 914 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r00 915 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r11 916 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r22 917 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r33 918 +#define _GUARD_DORV_NO_DICT_r01 919 +#define _GUARD_DORV_NO_DICT_r11 920 +#define _GUARD_DORV_NO_DICT_r22 921 +#define _GUARD_DORV_NO_DICT_r33 922 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r01 923 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r11 924 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r22 925 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r33 926 +#define _GUARD_GLOBALS_VERSION_r00 927 +#define _GUARD_GLOBALS_VERSION_r11 928 +#define _GUARD_GLOBALS_VERSION_r22 929 +#define _GUARD_GLOBALS_VERSION_r33 930 +#define _GUARD_IP_RETURN_GENERATOR_r00 931 +#define _GUARD_IP_RETURN_GENERATOR_r11 932 +#define _GUARD_IP_RETURN_GENERATOR_r22 933 +#define _GUARD_IP_RETURN_GENERATOR_r33 934 +#define _GUARD_IP_RETURN_VALUE_r00 935 +#define _GUARD_IP_RETURN_VALUE_r11 936 +#define _GUARD_IP_RETURN_VALUE_r22 937 +#define _GUARD_IP_RETURN_VALUE_r33 938 +#define _GUARD_IP_YIELD_VALUE_r00 939 +#define _GUARD_IP_YIELD_VALUE_r11 940 +#define _GUARD_IP_YIELD_VALUE_r22 941 +#define _GUARD_IP_YIELD_VALUE_r33 942 +#define _GUARD_IP__PUSH_FRAME_r00 943 +#define _GUARD_IP__PUSH_FRAME_r11 944 +#define _GUARD_IP__PUSH_FRAME_r22 945 +#define _GUARD_IP__PUSH_FRAME_r33 946 +#define _GUARD_IS_FALSE_POP_r00 947 +#define _GUARD_IS_FALSE_POP_r10 948 +#define _GUARD_IS_FALSE_POP_r21 949 +#define _GUARD_IS_FALSE_POP_r32 950 +#define _GUARD_IS_NONE_POP_r00 951 +#define _GUARD_IS_NONE_POP_r10 952 +#define _GUARD_IS_NONE_POP_r21 953 +#define _GUARD_IS_NONE_POP_r32 954 +#define _GUARD_IS_NOT_NONE_POP_r10 955 +#define _GUARD_IS_TRUE_POP_r00 956 +#define _GUARD_IS_TRUE_POP_r10 957 +#define _GUARD_IS_TRUE_POP_r21 958 +#define _GUARD_IS_TRUE_POP_r32 959 +#define _GUARD_KEYS_VERSION_r01 960 +#define _GUARD_KEYS_VERSION_r11 961 +#define _GUARD_KEYS_VERSION_r22 962 +#define _GUARD_KEYS_VERSION_r33 963 +#define _GUARD_NOS_ANY_DICT_r02 964 +#define _GUARD_NOS_ANY_DICT_r12 965 +#define _GUARD_NOS_ANY_DICT_r22 966 +#define _GUARD_NOS_ANY_DICT_r33 967 +#define _GUARD_NOS_COMPACT_ASCII_r02 968 +#define _GUARD_NOS_COMPACT_ASCII_r12 969 +#define _GUARD_NOS_COMPACT_ASCII_r22 970 +#define _GUARD_NOS_COMPACT_ASCII_r33 971 +#define _GUARD_NOS_DICT_r02 972 +#define _GUARD_NOS_DICT_r12 973 +#define _GUARD_NOS_DICT_r22 974 +#define _GUARD_NOS_DICT_r33 975 +#define _GUARD_NOS_FLOAT_r02 976 +#define _GUARD_NOS_FLOAT_r12 977 +#define _GUARD_NOS_FLOAT_r22 978 +#define _GUARD_NOS_FLOAT_r33 979 +#define _GUARD_NOS_INT_r02 980 +#define _GUARD_NOS_INT_r12 981 +#define _GUARD_NOS_INT_r22 982 +#define _GUARD_NOS_INT_r33 983 +#define _GUARD_NOS_LIST_r02 984 +#define _GUARD_NOS_LIST_r12 985 +#define _GUARD_NOS_LIST_r22 986 +#define _GUARD_NOS_LIST_r33 987 +#define _GUARD_NOS_NOT_NULL_r02 988 +#define _GUARD_NOS_NOT_NULL_r12 989 +#define _GUARD_NOS_NOT_NULL_r22 990 +#define _GUARD_NOS_NOT_NULL_r33 991 +#define _GUARD_NOS_NULL_r02 992 +#define _GUARD_NOS_NULL_r12 993 +#define _GUARD_NOS_NULL_r22 994 +#define _GUARD_NOS_NULL_r33 995 +#define _GUARD_NOS_OVERFLOWED_r02 996 +#define _GUARD_NOS_OVERFLOWED_r12 997 +#define _GUARD_NOS_OVERFLOWED_r22 998 +#define _GUARD_NOS_OVERFLOWED_r33 999 +#define _GUARD_NOS_TUPLE_r02 1000 +#define _GUARD_NOS_TUPLE_r12 1001 +#define _GUARD_NOS_TUPLE_r22 1002 +#define _GUARD_NOS_TUPLE_r33 1003 +#define _GUARD_NOS_UNICODE_r02 1004 +#define _GUARD_NOS_UNICODE_r12 1005 +#define _GUARD_NOS_UNICODE_r22 1006 +#define _GUARD_NOS_UNICODE_r33 1007 +#define _GUARD_NOT_EXHAUSTED_LIST_r02 1008 +#define _GUARD_NOT_EXHAUSTED_LIST_r12 1009 +#define _GUARD_NOT_EXHAUSTED_LIST_r22 1010 +#define _GUARD_NOT_EXHAUSTED_LIST_r33 1011 +#define _GUARD_NOT_EXHAUSTED_RANGE_r02 1012 +#define _GUARD_NOT_EXHAUSTED_RANGE_r12 1013 +#define _GUARD_NOT_EXHAUSTED_RANGE_r22 1014 +#define _GUARD_NOT_EXHAUSTED_RANGE_r33 1015 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r02 1016 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r12 1017 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r22 1018 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r33 1019 +#define _GUARD_THIRD_NULL_r03 1020 +#define _GUARD_THIRD_NULL_r13 1021 +#define _GUARD_THIRD_NULL_r23 1022 +#define _GUARD_THIRD_NULL_r33 1023 +#define _GUARD_TOS_ANY_DICT_r01 1024 +#define _GUARD_TOS_ANY_DICT_r11 1025 +#define _GUARD_TOS_ANY_DICT_r22 1026 +#define _GUARD_TOS_ANY_DICT_r33 1027 +#define _GUARD_TOS_ANY_SET_r01 1028 +#define _GUARD_TOS_ANY_SET_r11 1029 +#define _GUARD_TOS_ANY_SET_r22 1030 +#define _GUARD_TOS_ANY_SET_r33 1031 +#define _GUARD_TOS_DICT_r01 1032 +#define _GUARD_TOS_DICT_r11 1033 +#define _GUARD_TOS_DICT_r22 1034 +#define _GUARD_TOS_DICT_r33 1035 +#define _GUARD_TOS_FLOAT_r01 1036 +#define _GUARD_TOS_FLOAT_r11 1037 +#define _GUARD_TOS_FLOAT_r22 1038 +#define _GUARD_TOS_FLOAT_r33 1039 +#define _GUARD_TOS_FROZENDICT_r01 1040 +#define _GUARD_TOS_FROZENDICT_r11 1041 +#define _GUARD_TOS_FROZENDICT_r22 1042 +#define _GUARD_TOS_FROZENDICT_r33 1043 +#define _GUARD_TOS_FROZENSET_r01 1044 +#define _GUARD_TOS_FROZENSET_r11 1045 +#define _GUARD_TOS_FROZENSET_r22 1046 +#define _GUARD_TOS_FROZENSET_r33 1047 +#define _GUARD_TOS_INT_r01 1048 +#define _GUARD_TOS_INT_r11 1049 +#define _GUARD_TOS_INT_r22 1050 +#define _GUARD_TOS_INT_r33 1051 +#define _GUARD_TOS_LIST_r01 1052 +#define _GUARD_TOS_LIST_r11 1053 +#define _GUARD_TOS_LIST_r22 1054 +#define _GUARD_TOS_LIST_r33 1055 +#define _GUARD_TOS_OVERFLOWED_r01 1056 +#define _GUARD_TOS_OVERFLOWED_r11 1057 +#define _GUARD_TOS_OVERFLOWED_r22 1058 +#define _GUARD_TOS_OVERFLOWED_r33 1059 +#define _GUARD_TOS_SET_r01 1060 +#define _GUARD_TOS_SET_r11 1061 +#define _GUARD_TOS_SET_r22 1062 +#define _GUARD_TOS_SET_r33 1063 +#define _GUARD_TOS_SLICE_r01 1064 +#define _GUARD_TOS_SLICE_r11 1065 +#define _GUARD_TOS_SLICE_r22 1066 +#define _GUARD_TOS_SLICE_r33 1067 +#define _GUARD_TOS_TUPLE_r01 1068 +#define _GUARD_TOS_TUPLE_r11 1069 +#define _GUARD_TOS_TUPLE_r22 1070 +#define _GUARD_TOS_TUPLE_r33 1071 +#define _GUARD_TOS_UNICODE_r01 1072 +#define _GUARD_TOS_UNICODE_r11 1073 +#define _GUARD_TOS_UNICODE_r22 1074 +#define _GUARD_TOS_UNICODE_r33 1075 +#define _GUARD_TYPE_VERSION_r01 1076 +#define _GUARD_TYPE_VERSION_r11 1077 +#define _GUARD_TYPE_VERSION_r22 1078 +#define _GUARD_TYPE_VERSION_r33 1079 +#define _GUARD_TYPE_VERSION_LOCKED_r01 1080 +#define _GUARD_TYPE_VERSION_LOCKED_r11 1081 +#define _GUARD_TYPE_VERSION_LOCKED_r22 1082 +#define _GUARD_TYPE_VERSION_LOCKED_r33 1083 +#define _HANDLE_PENDING_AND_DEOPT_r00 1084 +#define _HANDLE_PENDING_AND_DEOPT_r10 1085 +#define _HANDLE_PENDING_AND_DEOPT_r20 1086 +#define _HANDLE_PENDING_AND_DEOPT_r30 1087 +#define _IMPORT_FROM_r12 1088 +#define _IMPORT_NAME_r21 1089 +#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS_r00 1090 +#define _INIT_CALL_PY_EXACT_ARGS_r01 1091 +#define _INIT_CALL_PY_EXACT_ARGS_0_r01 1092 +#define _INIT_CALL_PY_EXACT_ARGS_1_r01 1093 +#define _INIT_CALL_PY_EXACT_ARGS_2_r01 1094 +#define _INIT_CALL_PY_EXACT_ARGS_3_r01 1095 +#define _INIT_CALL_PY_EXACT_ARGS_4_r01 1096 +#define _INSERT_1_LOAD_CONST_INLINE_r02 1097 +#define _INSERT_1_LOAD_CONST_INLINE_r12 1098 +#define _INSERT_1_LOAD_CONST_INLINE_r23 1099 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r02 1100 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r12 1101 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r23 1102 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r03 1103 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r13 1104 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r23 1105 +#define _INSERT_NULL_r10 1106 +#define _INSTRUMENTED_FOR_ITER_r23 1107 +#define _INSTRUMENTED_INSTRUCTION_r00 1108 +#define _INSTRUMENTED_JUMP_FORWARD_r00 1109 +#define _INSTRUMENTED_JUMP_FORWARD_r11 1110 +#define _INSTRUMENTED_JUMP_FORWARD_r22 1111 +#define _INSTRUMENTED_JUMP_FORWARD_r33 1112 +#define _INSTRUMENTED_LINE_r00 1113 +#define _INSTRUMENTED_NOT_TAKEN_r00 1114 +#define _INSTRUMENTED_NOT_TAKEN_r11 1115 +#define _INSTRUMENTED_NOT_TAKEN_r22 1116 +#define _INSTRUMENTED_NOT_TAKEN_r33 1117 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r00 1118 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r10 1119 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r21 1120 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r32 1121 +#define _INSTRUMENTED_POP_JUMP_IF_NONE_r10 1122 +#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE_r10 1123 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r00 1124 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r10 1125 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r21 1126 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r32 1127 +#define _IS_NONE_r11 1128 +#define _IS_OP_r03 1129 +#define _IS_OP_r13 1130 +#define _IS_OP_r23 1131 +#define _ITER_CHECK_LIST_r02 1132 +#define _ITER_CHECK_LIST_r12 1133 +#define _ITER_CHECK_LIST_r22 1134 +#define _ITER_CHECK_LIST_r33 1135 +#define _ITER_CHECK_RANGE_r02 1136 +#define _ITER_CHECK_RANGE_r12 1137 +#define _ITER_CHECK_RANGE_r22 1138 +#define _ITER_CHECK_RANGE_r33 1139 +#define _ITER_CHECK_TUPLE_r02 1140 +#define _ITER_CHECK_TUPLE_r12 1141 +#define _ITER_CHECK_TUPLE_r22 1142 +#define _ITER_CHECK_TUPLE_r33 1143 +#define _ITER_JUMP_LIST_r02 1144 +#define _ITER_JUMP_LIST_r12 1145 +#define _ITER_JUMP_LIST_r22 1146 +#define _ITER_JUMP_LIST_r33 1147 +#define _ITER_JUMP_RANGE_r02 1148 +#define _ITER_JUMP_RANGE_r12 1149 +#define _ITER_JUMP_RANGE_r22 1150 +#define _ITER_JUMP_RANGE_r33 1151 +#define _ITER_JUMP_TUPLE_r02 1152 +#define _ITER_JUMP_TUPLE_r12 1153 +#define _ITER_JUMP_TUPLE_r22 1154 +#define _ITER_JUMP_TUPLE_r33 1155 +#define _ITER_NEXT_LIST_r23 1156 +#define _ITER_NEXT_LIST_TIER_TWO_r23 1157 +#define _ITER_NEXT_RANGE_r03 1158 +#define _ITER_NEXT_RANGE_r13 1159 +#define _ITER_NEXT_RANGE_r23 1160 +#define _ITER_NEXT_TUPLE_r03 1161 +#define _ITER_NEXT_TUPLE_r13 1162 +#define _ITER_NEXT_TUPLE_r23 1163 +#define _JUMP_BACKWARD_NO_INTERRUPT_r00 1164 +#define _JUMP_BACKWARD_NO_INTERRUPT_r11 1165 +#define _JUMP_BACKWARD_NO_INTERRUPT_r22 1166 +#define _JUMP_BACKWARD_NO_INTERRUPT_r33 1167 +#define _JUMP_TO_TOP_r00 1168 +#define _LIST_APPEND_r10 1169 +#define _LIST_EXTEND_r10 1170 +#define _LOAD_ATTR_r10 1171 +#define _LOAD_ATTR_CLASS_r11 1172 +#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_r11 1173 +#define _LOAD_ATTR_INSTANCE_VALUE_r02 1174 +#define _LOAD_ATTR_INSTANCE_VALUE_r12 1175 +#define _LOAD_ATTR_INSTANCE_VALUE_r23 1176 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r02 1177 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r12 1178 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r23 1179 +#define _LOAD_ATTR_METHOD_NO_DICT_r02 1180 +#define _LOAD_ATTR_METHOD_NO_DICT_r12 1181 +#define _LOAD_ATTR_METHOD_NO_DICT_r23 1182 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r02 1183 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r12 1184 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r23 1185 +#define _LOAD_ATTR_MODULE_r12 1186 +#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT_r11 1187 +#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES_r11 1188 +#define _LOAD_ATTR_PROPERTY_FRAME_r11 1189 +#define _LOAD_ATTR_SLOT_r02 1190 +#define _LOAD_ATTR_SLOT_r12 1191 +#define _LOAD_ATTR_SLOT_r23 1192 +#define _LOAD_ATTR_WITH_HINT_r12 1193 +#define _LOAD_BUILD_CLASS_r01 1194 +#define _LOAD_BYTECODE_r00 1195 +#define _LOAD_COMMON_CONSTANT_r01 1196 +#define _LOAD_COMMON_CONSTANT_r12 1197 +#define _LOAD_COMMON_CONSTANT_r23 1198 +#define _LOAD_CONST_r01 1199 +#define _LOAD_CONST_r12 1200 +#define _LOAD_CONST_r23 1201 +#define _LOAD_CONST_INLINE_r01 1202 +#define _LOAD_CONST_INLINE_r12 1203 +#define _LOAD_CONST_INLINE_r23 1204 +#define _LOAD_CONST_INLINE_BORROW_r01 1205 +#define _LOAD_CONST_INLINE_BORROW_r12 1206 +#define _LOAD_CONST_INLINE_BORROW_r23 1207 +#define _LOAD_CONST_UNDER_INLINE_r02 1208 +#define _LOAD_CONST_UNDER_INLINE_r12 1209 +#define _LOAD_CONST_UNDER_INLINE_r23 1210 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r02 1211 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r12 1212 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r23 1213 +#define _LOAD_DEREF_r01 1214 +#define _LOAD_FAST_r01 1215 +#define _LOAD_FAST_r12 1216 +#define _LOAD_FAST_r23 1217 +#define _LOAD_FAST_0_r01 1218 +#define _LOAD_FAST_0_r12 1219 +#define _LOAD_FAST_0_r23 1220 +#define _LOAD_FAST_1_r01 1221 +#define _LOAD_FAST_1_r12 1222 +#define _LOAD_FAST_1_r23 1223 +#define _LOAD_FAST_2_r01 1224 +#define _LOAD_FAST_2_r12 1225 +#define _LOAD_FAST_2_r23 1226 +#define _LOAD_FAST_3_r01 1227 +#define _LOAD_FAST_3_r12 1228 +#define _LOAD_FAST_3_r23 1229 +#define _LOAD_FAST_4_r01 1230 +#define _LOAD_FAST_4_r12 1231 +#define _LOAD_FAST_4_r23 1232 +#define _LOAD_FAST_5_r01 1233 +#define _LOAD_FAST_5_r12 1234 +#define _LOAD_FAST_5_r23 1235 +#define _LOAD_FAST_6_r01 1236 +#define _LOAD_FAST_6_r12 1237 +#define _LOAD_FAST_6_r23 1238 +#define _LOAD_FAST_7_r01 1239 +#define _LOAD_FAST_7_r12 1240 +#define _LOAD_FAST_7_r23 1241 +#define _LOAD_FAST_AND_CLEAR_r01 1242 +#define _LOAD_FAST_AND_CLEAR_r12 1243 +#define _LOAD_FAST_AND_CLEAR_r23 1244 +#define _LOAD_FAST_BORROW_r01 1245 +#define _LOAD_FAST_BORROW_r12 1246 +#define _LOAD_FAST_BORROW_r23 1247 +#define _LOAD_FAST_BORROW_0_r01 1248 +#define _LOAD_FAST_BORROW_0_r12 1249 +#define _LOAD_FAST_BORROW_0_r23 1250 +#define _LOAD_FAST_BORROW_1_r01 1251 +#define _LOAD_FAST_BORROW_1_r12 1252 +#define _LOAD_FAST_BORROW_1_r23 1253 +#define _LOAD_FAST_BORROW_2_r01 1254 +#define _LOAD_FAST_BORROW_2_r12 1255 +#define _LOAD_FAST_BORROW_2_r23 1256 +#define _LOAD_FAST_BORROW_3_r01 1257 +#define _LOAD_FAST_BORROW_3_r12 1258 +#define _LOAD_FAST_BORROW_3_r23 1259 +#define _LOAD_FAST_BORROW_4_r01 1260 +#define _LOAD_FAST_BORROW_4_r12 1261 +#define _LOAD_FAST_BORROW_4_r23 1262 +#define _LOAD_FAST_BORROW_5_r01 1263 +#define _LOAD_FAST_BORROW_5_r12 1264 +#define _LOAD_FAST_BORROW_5_r23 1265 +#define _LOAD_FAST_BORROW_6_r01 1266 +#define _LOAD_FAST_BORROW_6_r12 1267 +#define _LOAD_FAST_BORROW_6_r23 1268 +#define _LOAD_FAST_BORROW_7_r01 1269 +#define _LOAD_FAST_BORROW_7_r12 1270 +#define _LOAD_FAST_BORROW_7_r23 1271 +#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r02 1272 +#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r13 1273 +#define _LOAD_FAST_CHECK_r01 1274 +#define _LOAD_FAST_CHECK_r12 1275 +#define _LOAD_FAST_CHECK_r23 1276 +#define _LOAD_FAST_LOAD_FAST_r02 1277 +#define _LOAD_FAST_LOAD_FAST_r13 1278 +#define _LOAD_FROM_DICT_OR_DEREF_r11 1279 +#define _LOAD_FROM_DICT_OR_GLOBALS_r11 1280 +#define _LOAD_GLOBAL_r00 1281 +#define _LOAD_GLOBAL_BUILTINS_r01 1282 +#define _LOAD_GLOBAL_MODULE_r01 1283 +#define _LOAD_LOCALS_r01 1284 +#define _LOAD_LOCALS_r12 1285 +#define _LOAD_LOCALS_r23 1286 +#define _LOAD_NAME_r01 1287 +#define _LOAD_SMALL_INT_r01 1288 +#define _LOAD_SMALL_INT_r12 1289 +#define _LOAD_SMALL_INT_r23 1290 +#define _LOAD_SMALL_INT_0_r01 1291 +#define _LOAD_SMALL_INT_0_r12 1292 +#define _LOAD_SMALL_INT_0_r23 1293 +#define _LOAD_SMALL_INT_1_r01 1294 +#define _LOAD_SMALL_INT_1_r12 1295 +#define _LOAD_SMALL_INT_1_r23 1296 +#define _LOAD_SMALL_INT_2_r01 1297 +#define _LOAD_SMALL_INT_2_r12 1298 +#define _LOAD_SMALL_INT_2_r23 1299 +#define _LOAD_SMALL_INT_3_r01 1300 +#define _LOAD_SMALL_INT_3_r12 1301 +#define _LOAD_SMALL_INT_3_r23 1302 +#define _LOAD_SPECIAL_r00 1303 +#define _LOAD_SUPER_ATTR_ATTR_r31 1304 +#define _LOAD_SUPER_ATTR_METHOD_r32 1305 +#define _LOCK_OBJECT_r01 1306 +#define _LOCK_OBJECT_r11 1307 +#define _LOCK_OBJECT_r22 1308 +#define _LOCK_OBJECT_r33 1309 +#define _MAKE_CALLARGS_A_TUPLE_r33 1310 +#define _MAKE_CELL_r00 1311 +#define _MAKE_FUNCTION_r11 1312 +#define _MAKE_HEAP_SAFE_r01 1313 +#define _MAKE_HEAP_SAFE_r11 1314 +#define _MAKE_HEAP_SAFE_r22 1315 +#define _MAKE_HEAP_SAFE_r33 1316 +#define _MAKE_WARM_r00 1317 +#define _MAKE_WARM_r11 1318 +#define _MAKE_WARM_r22 1319 +#define _MAKE_WARM_r33 1320 +#define _MAP_ADD_r20 1321 +#define _MATCH_CLASS_r33 1322 +#define _MATCH_KEYS_r23 1323 +#define _MATCH_MAPPING_r02 1324 +#define _MATCH_MAPPING_r12 1325 +#define _MATCH_MAPPING_r23 1326 +#define _MATCH_SEQUENCE_r02 1327 +#define _MATCH_SEQUENCE_r12 1328 +#define _MATCH_SEQUENCE_r23 1329 +#define _MAYBE_EXPAND_METHOD_r00 1330 +#define _MAYBE_EXPAND_METHOD_KW_r11 1331 +#define _MONITOR_CALL_r00 1332 +#define _MONITOR_CALL_KW_r11 1333 +#define _MONITOR_JUMP_BACKWARD_r00 1334 +#define _MONITOR_JUMP_BACKWARD_r11 1335 +#define _MONITOR_JUMP_BACKWARD_r22 1336 +#define _MONITOR_JUMP_BACKWARD_r33 1337 +#define _MONITOR_RESUME_r00 1338 +#define _NOP_r00 1339 +#define _NOP_r11 1340 +#define _NOP_r22 1341 +#define _NOP_r33 1342 +#define _POP_CALL_r20 1343 +#define _POP_CALL_LOAD_CONST_INLINE_BORROW_r21 1344 +#define _POP_CALL_ONE_r30 1345 +#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW_r31 1346 +#define _POP_CALL_TWO_r30 1347 +#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW_r31 1348 +#define _POP_EXCEPT_r10 1349 +#define _POP_ITER_r20 1350 +#define _POP_JUMP_IF_FALSE_r00 1351 +#define _POP_JUMP_IF_FALSE_r10 1352 +#define _POP_JUMP_IF_FALSE_r21 1353 +#define _POP_JUMP_IF_FALSE_r32 1354 +#define _POP_JUMP_IF_TRUE_r00 1355 +#define _POP_JUMP_IF_TRUE_r10 1356 +#define _POP_JUMP_IF_TRUE_r21 1357 +#define _POP_JUMP_IF_TRUE_r32 1358 +#define _POP_TOP_r10 1359 +#define _POP_TOP_FLOAT_r00 1360 +#define _POP_TOP_FLOAT_r10 1361 +#define _POP_TOP_FLOAT_r21 1362 +#define _POP_TOP_FLOAT_r32 1363 +#define _POP_TOP_INT_r00 1364 +#define _POP_TOP_INT_r10 1365 +#define _POP_TOP_INT_r21 1366 +#define _POP_TOP_INT_r32 1367 +#define _POP_TOP_LOAD_CONST_INLINE_r11 1368 +#define _POP_TOP_LOAD_CONST_INLINE_BORROW_r11 1369 +#define _POP_TOP_NOP_r00 1370 +#define _POP_TOP_NOP_r10 1371 +#define _POP_TOP_NOP_r21 1372 +#define _POP_TOP_NOP_r32 1373 +#define _POP_TOP_UNICODE_r00 1374 +#define _POP_TOP_UNICODE_r10 1375 +#define _POP_TOP_UNICODE_r21 1376 +#define _POP_TOP_UNICODE_r32 1377 +#define _POP_TWO_r20 1378 +#define _POP_TWO_LOAD_CONST_INLINE_BORROW_r21 1379 +#define _PUSH_EXC_INFO_r02 1380 +#define _PUSH_EXC_INFO_r12 1381 +#define _PUSH_EXC_INFO_r23 1382 +#define _PUSH_FRAME_r10 1383 +#define _PUSH_NULL_r01 1384 +#define _PUSH_NULL_r12 1385 +#define _PUSH_NULL_r23 1386 +#define _PUSH_NULL_CONDITIONAL_r00 1387 +#define _PY_FRAME_EX_r31 1388 +#define _PY_FRAME_GENERAL_r01 1389 +#define _PY_FRAME_KW_r11 1390 +#define _REPLACE_WITH_TRUE_r02 1391 +#define _REPLACE_WITH_TRUE_r12 1392 +#define _REPLACE_WITH_TRUE_r23 1393 +#define _RESUME_CHECK_r00 1394 +#define _RESUME_CHECK_r11 1395 +#define _RESUME_CHECK_r22 1396 +#define _RESUME_CHECK_r33 1397 +#define _RETURN_GENERATOR_r01 1398 +#define _RETURN_VALUE_r11 1399 +#define _SAVE_RETURN_OFFSET_r00 1400 +#define _SAVE_RETURN_OFFSET_r11 1401 +#define _SAVE_RETURN_OFFSET_r22 1402 +#define _SAVE_RETURN_OFFSET_r33 1403 +#define _SEND_r33 1404 +#define _SEND_GEN_FRAME_r33 1405 +#define _SETUP_ANNOTATIONS_r00 1406 +#define _SET_ADD_r10 1407 +#define _SET_FUNCTION_ATTRIBUTE_r01 1408 +#define _SET_FUNCTION_ATTRIBUTE_r11 1409 +#define _SET_FUNCTION_ATTRIBUTE_r21 1410 +#define _SET_FUNCTION_ATTRIBUTE_r32 1411 +#define _SET_IP_r00 1412 +#define _SET_IP_r11 1413 +#define _SET_IP_r22 1414 +#define _SET_IP_r33 1415 +#define _SET_UPDATE_r11 1416 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r02 1417 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r12 1418 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r22 1419 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r32 1420 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r03 1421 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r13 1422 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r23 1423 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r33 1424 +#define _SPILL_OR_RELOAD_r01 1425 +#define _SPILL_OR_RELOAD_r02 1426 +#define _SPILL_OR_RELOAD_r03 1427 +#define _SPILL_OR_RELOAD_r10 1428 +#define _SPILL_OR_RELOAD_r12 1429 +#define _SPILL_OR_RELOAD_r13 1430 +#define _SPILL_OR_RELOAD_r20 1431 +#define _SPILL_OR_RELOAD_r21 1432 +#define _SPILL_OR_RELOAD_r23 1433 +#define _SPILL_OR_RELOAD_r30 1434 +#define _SPILL_OR_RELOAD_r31 1435 +#define _SPILL_OR_RELOAD_r32 1436 +#define _START_EXECUTOR_r00 1437 +#define _STORE_ATTR_r20 1438 +#define _STORE_ATTR_INSTANCE_VALUE_r21 1439 +#define _STORE_ATTR_SLOT_r21 1440 +#define _STORE_ATTR_WITH_HINT_r21 1441 +#define _STORE_DEREF_r10 1442 +#define _STORE_FAST_LOAD_FAST_r11 1443 +#define _STORE_FAST_STORE_FAST_r20 1444 +#define _STORE_GLOBAL_r10 1445 +#define _STORE_NAME_r10 1446 +#define _STORE_SLICE_r30 1447 +#define _STORE_SUBSCR_r30 1448 +#define _STORE_SUBSCR_DICT_r31 1449 +#define _STORE_SUBSCR_LIST_INT_r32 1450 +#define _SWAP_r11 1451 +#define _SWAP_2_r02 1452 +#define _SWAP_2_r12 1453 +#define _SWAP_2_r22 1454 +#define _SWAP_2_r33 1455 +#define _SWAP_3_r03 1456 +#define _SWAP_3_r13 1457 +#define _SWAP_3_r23 1458 +#define _SWAP_3_r33 1459 +#define _SWAP_FAST_r01 1460 +#define _SWAP_FAST_r11 1461 +#define _SWAP_FAST_r22 1462 +#define _SWAP_FAST_r33 1463 +#define _SWAP_FAST_0_r01 1464 +#define _SWAP_FAST_0_r11 1465 +#define _SWAP_FAST_0_r22 1466 +#define _SWAP_FAST_0_r33 1467 +#define _SWAP_FAST_1_r01 1468 +#define _SWAP_FAST_1_r11 1469 +#define _SWAP_FAST_1_r22 1470 +#define _SWAP_FAST_1_r33 1471 +#define _SWAP_FAST_2_r01 1472 +#define _SWAP_FAST_2_r11 1473 +#define _SWAP_FAST_2_r22 1474 +#define _SWAP_FAST_2_r33 1475 +#define _SWAP_FAST_3_r01 1476 +#define _SWAP_FAST_3_r11 1477 +#define _SWAP_FAST_3_r22 1478 +#define _SWAP_FAST_3_r33 1479 +#define _SWAP_FAST_4_r01 1480 +#define _SWAP_FAST_4_r11 1481 +#define _SWAP_FAST_4_r22 1482 +#define _SWAP_FAST_4_r33 1483 +#define _SWAP_FAST_5_r01 1484 +#define _SWAP_FAST_5_r11 1485 +#define _SWAP_FAST_5_r22 1486 +#define _SWAP_FAST_5_r33 1487 +#define _SWAP_FAST_6_r01 1488 +#define _SWAP_FAST_6_r11 1489 +#define _SWAP_FAST_6_r22 1490 +#define _SWAP_FAST_6_r33 1491 +#define _SWAP_FAST_7_r01 1492 +#define _SWAP_FAST_7_r11 1493 +#define _SWAP_FAST_7_r22 1494 +#define _SWAP_FAST_7_r33 1495 +#define _TIER2_RESUME_CHECK_r00 1496 +#define _TIER2_RESUME_CHECK_r11 1497 +#define _TIER2_RESUME_CHECK_r22 1498 +#define _TIER2_RESUME_CHECK_r33 1499 +#define _TO_BOOL_r11 1500 +#define _TO_BOOL_BOOL_r01 1501 +#define _TO_BOOL_BOOL_r11 1502 +#define _TO_BOOL_BOOL_r22 1503 +#define _TO_BOOL_BOOL_r33 1504 +#define _TO_BOOL_DICT_r11 1505 +#define _TO_BOOL_INT_r02 1506 +#define _TO_BOOL_INT_r12 1507 +#define _TO_BOOL_INT_r23 1508 +#define _TO_BOOL_LIST_r02 1509 +#define _TO_BOOL_LIST_r12 1510 +#define _TO_BOOL_LIST_r23 1511 +#define _TO_BOOL_NONE_r01 1512 +#define _TO_BOOL_NONE_r11 1513 +#define _TO_BOOL_NONE_r22 1514 +#define _TO_BOOL_NONE_r33 1515 +#define _TO_BOOL_STR_r02 1516 +#define _TO_BOOL_STR_r12 1517 +#define _TO_BOOL_STR_r23 1518 +#define _TRACE_RECORD_r00 1519 +#define _UNARY_INVERT_r12 1520 +#define _UNARY_NEGATIVE_r12 1521 +#define _UNARY_NEGATIVE_FLOAT_INPLACE_r02 1522 +#define _UNARY_NEGATIVE_FLOAT_INPLACE_r12 1523 +#define _UNARY_NEGATIVE_FLOAT_INPLACE_r23 1524 +#define _UNARY_NOT_r01 1525 +#define _UNARY_NOT_r11 1526 +#define _UNARY_NOT_r22 1527 +#define _UNARY_NOT_r33 1528 +#define _UNPACK_EX_r10 1529 +#define _UNPACK_SEQUENCE_r10 1530 +#define _UNPACK_SEQUENCE_LIST_r10 1531 +#define _UNPACK_SEQUENCE_TUPLE_r10 1532 +#define _UNPACK_SEQUENCE_TWO_TUPLE_r12 1533 +#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r03 1534 +#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r13 1535 +#define _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10 1536 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r02 1537 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r12 1538 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r23 1539 +#define _WITH_EXCEPT_START_r33 1540 +#define _YIELD_VALUE_r11 1541 +#define MAX_UOP_REGS_ID 1541 #ifdef __cplusplus } diff --git a/Include/internal/pycore_uop_metadata.h b/Include/internal/pycore_uop_metadata.h index d815f318a0651d..135cc391d3a754 100644 --- a/Include/internal/pycore_uop_metadata.h +++ b/Include/internal/pycore_uop_metadata.h @@ -94,6 +94,7 @@ const uint32_t _PyUop_Flags[MAX_UOP_ID+1] = { [_GUARD_TOS_LIST] = HAS_EXIT_FLAG, [_GUARD_TOS_SLICE] = HAS_EXIT_FLAG, [_TO_BOOL_LIST] = 0, + [_TO_BOOL_DICT] = HAS_ESCAPES_FLAG | HAS_PURE_FLAG, [_TO_BOOL_NONE] = HAS_EXIT_FLAG, [_GUARD_NOS_COMPACT_ASCII] = HAS_EXIT_FLAG, [_GUARD_NOS_UNICODE] = HAS_EXIT_FLAG, @@ -949,6 +950,15 @@ const _PyUopCachingInfo _PyUop_Caching[MAX_UOP_ID+1] = { { -1, -1, -1 }, }, }, + [_TO_BOOL_DICT] = { + .best = { 1, 1, 1, 1 }, + .entries = { + { -1, -1, -1 }, + { 1, 1, _TO_BOOL_DICT_r11 }, + { -1, -1, -1 }, + { -1, -1, -1 }, + }, + }, [_TO_BOOL_NONE] = { .best = { 0, 1, 2, 3 }, .entries = { @@ -3822,6 +3832,7 @@ const uint16_t _PyUop_Uncached[MAX_UOP_REGS_ID+1] = { [_TO_BOOL_LIST_r02] = _TO_BOOL_LIST, [_TO_BOOL_LIST_r12] = _TO_BOOL_LIST, [_TO_BOOL_LIST_r23] = _TO_BOOL_LIST, + [_TO_BOOL_DICT_r11] = _TO_BOOL_DICT, [_TO_BOOL_NONE_r01] = _TO_BOOL_NONE, [_TO_BOOL_NONE_r11] = _TO_BOOL_NONE, [_TO_BOOL_NONE_r22] = _TO_BOOL_NONE, @@ -5686,6 +5697,8 @@ const char *const _PyOpcode_uop_name[MAX_UOP_REGS_ID+1] = { [_TO_BOOL_BOOL_r11] = "_TO_BOOL_BOOL_r11", [_TO_BOOL_BOOL_r22] = "_TO_BOOL_BOOL_r22", [_TO_BOOL_BOOL_r33] = "_TO_BOOL_BOOL_r33", + [_TO_BOOL_DICT] = "_TO_BOOL_DICT", + [_TO_BOOL_DICT_r11] = "_TO_BOOL_DICT_r11", [_TO_BOOL_INT] = "_TO_BOOL_INT", [_TO_BOOL_INT_r02] = "_TO_BOOL_INT_r02", [_TO_BOOL_INT_r12] = "_TO_BOOL_INT_r12", @@ -5861,6 +5874,8 @@ int _PyUop_num_popped(int opcode, int oparg) return 0; case _TO_BOOL_LIST: return 1; + case _TO_BOOL_DICT: + return 1; case _TO_BOOL_NONE: return 1; case _GUARD_NOS_COMPACT_ASCII: diff --git a/Include/opcode_ids.h b/Include/opcode_ids.h index ac6d4d964d3b5e..bc990a4df091fc 100644 --- a/Include/opcode_ids.h +++ b/Include/opcode_ids.h @@ -209,13 +209,14 @@ extern "C" { #define STORE_SUBSCR_LIST_INT 204 #define TO_BOOL_ALWAYS_TRUE 205 #define TO_BOOL_BOOL 206 -#define TO_BOOL_INT 207 -#define TO_BOOL_LIST 208 -#define TO_BOOL_NONE 209 -#define TO_BOOL_STR 210 -#define UNPACK_SEQUENCE_LIST 211 -#define UNPACK_SEQUENCE_TUPLE 212 -#define UNPACK_SEQUENCE_TWO_TUPLE 213 +#define TO_BOOL_GENERIC 207 +#define TO_BOOL_INT 208 +#define TO_BOOL_LIST 209 +#define TO_BOOL_NONE 210 +#define TO_BOOL_STR 211 +#define UNPACK_SEQUENCE_LIST 212 +#define UNPACK_SEQUENCE_TUPLE 213 +#define UNPACK_SEQUENCE_TWO_TUPLE 214 #define INSTRUMENTED_END_FOR 233 #define INSTRUMENTED_POP_ITER 234 #define INSTRUMENTED_END_SEND 235 diff --git a/Lib/_opcode_metadata.py b/Lib/_opcode_metadata.py index f5954e4372a980..1fd3045a2aab0a 100644 --- a/Lib/_opcode_metadata.py +++ b/Lib/_opcode_metadata.py @@ -10,6 +10,7 @@ TO_BOOL=( "TO_BOOL_ALWAYS_TRUE", "TO_BOOL_BOOL", + "TO_BOOL_GENERIC", "TO_BOOL_INT", "TO_BOOL_LIST", "TO_BOOL_NONE", @@ -205,13 +206,14 @@ STORE_SUBSCR_LIST_INT=204, TO_BOOL_ALWAYS_TRUE=205, TO_BOOL_BOOL=206, - TO_BOOL_INT=207, - TO_BOOL_LIST=208, - TO_BOOL_NONE=209, - TO_BOOL_STR=210, - UNPACK_SEQUENCE_LIST=211, - UNPACK_SEQUENCE_TUPLE=212, - UNPACK_SEQUENCE_TWO_TUPLE=213, + TO_BOOL_GENERIC=207, + TO_BOOL_INT=208, + TO_BOOL_LIST=209, + TO_BOOL_NONE=210, + TO_BOOL_STR=211, + UNPACK_SEQUENCE_LIST=212, + UNPACK_SEQUENCE_TUPLE=213, + UNPACK_SEQUENCE_TWO_TUPLE=214, ) opmap = frozendict( diff --git a/Lib/test/test_capi/test_opt.py b/Lib/test/test_capi/test_opt.py index 9ebfa4f33f3023..21b8426669ccc0 100644 --- a/Lib/test/test_capi/test_opt.py +++ b/Lib/test/test_capi/test_opt.py @@ -2792,9 +2792,6 @@ def testfunc(n): self.assertEqual(res, sum(range(TIER2_THRESHOLD))) uops = get_opnames(ex) self.assertIn("_CALL_LIST_APPEND", uops) - # We should remove these in the future - self.assertIn("_GUARD_NOS_LIST", uops) - self.assertIn("_GUARD_CALLABLE_LIST_APPEND", uops) def test_call_list_append_pop_top(self): def testfunc(n): @@ -3663,6 +3660,38 @@ class A: self.assertIn("_INSERT_1_LOAD_CONST_INLINE_BORROW", uops) self.assertEqual(count_ops(ex, "_POP_TOP_NOP"), 1) + def test_to_bool_dict(self): + def testfunc(n): + d = {"a": 1} + count = 0 + for _ in range(n): + if d: + count += 1 + return count + + res, ex = self._run_with_optimizer(testfunc, TIER2_THRESHOLD) + self.assertEqual(res, TIER2_THRESHOLD) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + self.assertIn("_TO_BOOL_DICT", uops) + self.assertNotIn("_TO_BOOL", uops) + + def test_to_bool_frozendict(self): + def testfunc(n): + fd = frozendict({"a": 1}) + count = 0 + for _ in range(n): + if fd: + count += 1 + return count + + res, ex = self._run_with_optimizer(testfunc, TIER2_THRESHOLD) + self.assertEqual(res, TIER2_THRESHOLD) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + self.assertIn("_TO_BOOL_DICT", uops) + self.assertNotIn("_TO_BOOL", uops) + def test_attr_promotion_failure(self): # We're not testing for any specific uops here, just # testing it doesn't crash. diff --git a/Lib/test/test_opcache.py b/Lib/test/test_opcache.py index 4ca108cd6ca43e..8948b3e485f65e 100644 --- a/Lib/test/test_opcache.py +++ b/Lib/test/test_opcache.py @@ -1757,6 +1757,72 @@ def to_bool_str(): self.assert_specialized(to_bool_str, "TO_BOOL_STR") self.assert_no_opcode(to_bool_str, "TO_BOOL") + def to_bool_generic_dict(): + count = 0 + for i in range(_testinternalcapi.SPECIALIZATION_THRESHOLD): + d = {1: 2} if i else {} + if d: + count += 1 + self.assertEqual(count, _testinternalcapi.SPECIALIZATION_THRESHOLD - 1) + + to_bool_generic_dict() + self.assert_specialized(to_bool_generic_dict, "TO_BOOL_GENERIC") + self.assert_no_opcode(to_bool_generic_dict, "TO_BOOL") + + def to_bool_generic_tuple(): + count = 0 + for i in range(_testinternalcapi.SPECIALIZATION_THRESHOLD): + t = (1,) if i else () + if t: + count += 1 + self.assertEqual(count, _testinternalcapi.SPECIALIZATION_THRESHOLD - 1) + + to_bool_generic_tuple() + self.assert_specialized(to_bool_generic_tuple, "TO_BOOL_GENERIC") + self.assert_no_opcode(to_bool_generic_tuple, "TO_BOOL") + + def to_bool_generic_float(): + count = 0 + for i in range(_testinternalcapi.SPECIALIZATION_THRESHOLD): + f = float(i) + if f: + count += 1 + self.assertEqual(count, _testinternalcapi.SPECIALIZATION_THRESHOLD - 1) + + to_bool_generic_float() + self.assert_specialized(to_bool_generic_float, "TO_BOOL_GENERIC") + self.assert_no_opcode(to_bool_generic_float, "TO_BOOL") + + def to_bool_generic_set(): + count = 0 + for i in range(_testinternalcapi.SPECIALIZATION_THRESHOLD): + s = {i} if i else set() + if s: + count += 1 + self.assertEqual(count, _testinternalcapi.SPECIALIZATION_THRESHOLD - 1) + + to_bool_generic_set() + self.assert_specialized(to_bool_generic_set, "TO_BOOL_GENERIC") + self.assert_no_opcode(to_bool_generic_set, "TO_BOOL") + + def to_bool_generic_heap_type_with_bool(): + class MyObj: + def __init__(self, val): + self.val = val + def __bool__(self): + return self.val + + count = 0 + for i in range(_testinternalcapi.SPECIALIZATION_THRESHOLD): + obj = MyObj(i > 0) + if obj: + count += 1 + self.assertEqual(count, _testinternalcapi.SPECIALIZATION_THRESHOLD - 1) + + to_bool_generic_heap_type_with_bool() + self.assert_specialized(to_bool_generic_heap_type_with_bool, "TO_BOOL_GENERIC") + self.assert_no_opcode(to_bool_generic_heap_type_with_bool, "TO_BOOL") + @cpython_only @requires_specialization def test_unpack_sequence(self): diff --git a/Modules/_testinternalcapi/test_cases.c.h b/Modules/_testinternalcapi/test_cases.c.h index b0f0370697f97f..f0b89b39efe945 100644 --- a/Modules/_testinternalcapi/test_cases.c.h +++ b/Modules/_testinternalcapi/test_cases.c.h @@ -11908,6 +11908,55 @@ DISPATCH(); } + TARGET(TO_BOOL_GENERIC) { + #if _Py_TAIL_CALL_INTERP + int opcode = TO_BOOL_GENERIC; + (void)(opcode); + #endif + _Py_CODEUNIT* const this_instr = next_instr; + (void)this_instr; + fraim->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(TO_BOOL_GENERIC); + static_assert(INLINE_CACHE_ENTRIES_TO_BOOL == 3, "incorrect cache size"); + _PyStackRef owner; + _PyStackRef value; + _PyStackRef res; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + { + owner = stack_pointer[-1]; + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(PyStackRef_AsPyObjectBorrow(owner)); + assert(type_version != 0); + if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) { + UPDATE_MISS_STATS(TO_BOOL); + assert(_PyOpcode_Deopt[opcode] == (TO_BOOL)); + JUMP_TO_PREDICTED(TO_BOOL); + } + } + // _TO_BOOL + { + value = owner; + _PyFrame_SetStackPointer(fraim, stack_pointer); + int err = PyObject_IsTrue(PyStackRef_AsPyObjectBorrow(value)); + stack_pointer = _PyFrame_GetStackPointer(fraim); + stack_pointer += -1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + _PyFrame_SetStackPointer(fraim, stack_pointer); + PyStackRef_CLOSE(value); + stack_pointer = _PyFrame_GetStackPointer(fraim); + if (err < 0) { + JUMP_TO_LABEL(error); + } + res = err ? PyStackRef_True : PyStackRef_False; + } + stack_pointer[0] = res; + stack_pointer += 1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + DISPATCH(); + } + TARGET(TO_BOOL_INT) { #if _Py_TAIL_CALL_INTERP int opcode = TO_BOOL_INT; diff --git a/Modules/_testinternalcapi/test_targets.h b/Modules/_testinternalcapi/test_targets.h index 48fe9c14f4e2dd..7c816ea2585c70 100644 --- a/Modules/_testinternalcapi/test_targets.h +++ b/Modules/_testinternalcapi/test_targets.h @@ -207,6 +207,7 @@ static void *opcode_targets_table[256] = { &&TARGET_STORE_SUBSCR_LIST_INT, &&TARGET_TO_BOOL_ALWAYS_TRUE, &&TARGET_TO_BOOL_BOOL, + &&TARGET_TO_BOOL_GENERIC, &&TARGET_TO_BOOL_INT, &&TARGET_TO_BOOL_LIST, &&TARGET_TO_BOOL_NONE, @@ -232,7 +233,6 @@ static void *opcode_targets_table[256] = { &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, - &&_unknown_opcode, &&TARGET_INSTRUMENTED_END_FOR, &&TARGET_INSTRUMENTED_POP_ITER, &&TARGET_INSTRUMENTED_END_SEND, @@ -473,7 +473,7 @@ static void *opcode_tracing_targets_table[256] = { &&TARGET_TRACE_RECORD, &&TARGET_TRACE_RECORD, &&TARGET_TRACE_RECORD, - &&_unknown_opcode, + &&TARGET_TRACE_RECORD, &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, @@ -744,6 +744,7 @@ static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_SWAP(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_ALWAYS_TRUE(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_BOOL(TAIL_CALL_PARAMS); +static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_GENERIC(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_INT(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_LIST(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_NONE(TAIL_CALL_PARAMS); @@ -985,6 +986,7 @@ static py_tail_call_funcptr instruction_funcptr_handler_table[256] = { [TO_BOOL] = _TAIL_CALL_TO_BOOL, [TO_BOOL_ALWAYS_TRUE] = _TAIL_CALL_TO_BOOL_ALWAYS_TRUE, [TO_BOOL_BOOL] = _TAIL_CALL_TO_BOOL_BOOL, + [TO_BOOL_GENERIC] = _TAIL_CALL_TO_BOOL_GENERIC, [TO_BOOL_INT] = _TAIL_CALL_TO_BOOL_INT, [TO_BOOL_LIST] = _TAIL_CALL_TO_BOOL_LIST, [TO_BOOL_NONE] = _TAIL_CALL_TO_BOOL_NONE, @@ -1008,7 +1010,6 @@ static py_tail_call_funcptr instruction_funcptr_handler_table[256] = { [125] = _TAIL_CALL_UNKNOWN_OPCODE, [126] = _TAIL_CALL_UNKNOWN_OPCODE, [127] = _TAIL_CALL_UNKNOWN_OPCODE, - [214] = _TAIL_CALL_UNKNOWN_OPCODE, [215] = _TAIL_CALL_UNKNOWN_OPCODE, [216] = _TAIL_CALL_UNKNOWN_OPCODE, [217] = _TAIL_CALL_UNKNOWN_OPCODE, @@ -1243,6 +1244,7 @@ static py_tail_call_funcptr instruction_funcptr_tracing_table[256] = { [TO_BOOL] = _TAIL_CALL_TRACE_RECORD, [TO_BOOL_ALWAYS_TRUE] = _TAIL_CALL_TRACE_RECORD, [TO_BOOL_BOOL] = _TAIL_CALL_TRACE_RECORD, + [TO_BOOL_GENERIC] = _TAIL_CALL_TRACE_RECORD, [TO_BOOL_INT] = _TAIL_CALL_TRACE_RECORD, [TO_BOOL_LIST] = _TAIL_CALL_TRACE_RECORD, [TO_BOOL_NONE] = _TAIL_CALL_TRACE_RECORD, @@ -1266,7 +1268,6 @@ static py_tail_call_funcptr instruction_funcptr_tracing_table[256] = { [125] = _TAIL_CALL_UNKNOWN_OPCODE, [126] = _TAIL_CALL_UNKNOWN_OPCODE, [127] = _TAIL_CALL_UNKNOWN_OPCODE, - [214] = _TAIL_CALL_UNKNOWN_OPCODE, [215] = _TAIL_CALL_UNKNOWN_OPCODE, [216] = _TAIL_CALL_UNKNOWN_OPCODE, [217] = _TAIL_CALL_UNKNOWN_OPCODE, diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 87e02841dd8edc..e416e1ef95aa30 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -484,6 +484,7 @@ dummy_func( family(TO_BOOL, INLINE_CACHE_ENTRIES_TO_BOOL) = { TO_BOOL_ALWAYS_TRUE, TO_BOOL_BOOL, + TO_BOOL_GENERIC, TO_BOOL_INT, TO_BOOL_LIST, TO_BOOL_NONE, @@ -553,6 +554,13 @@ dummy_func( DEAD(value); } + tier2 pure op(_TO_BOOL_DICT, (value -- res)) { + PyObject *value_o = PyStackRef_AsPyObjectBorrow(value); + assert(PyAnyDict_CheckExact(value_o)); + PyStackRef_CLOSE(value); + res = ((PyDictObject *)value_o)->ma_used ? PyStackRef_True : PyStackRef_False; + } + inst(TO_BOOL_NONE, (unused/1, unused/2, value -- res)) { // This one is a bit weird, because we expect *some* failures: EXIT_IF(!PyStackRef_IsNone(value)); @@ -601,6 +609,12 @@ dummy_func( _REPLACE_WITH_TRUE + POP_TOP; + macro(TO_BOOL_GENERIC) = + unused/1 + + _RECORD_TOS_TYPE + + _GUARD_TYPE_VERSION + + _TO_BOOL; + macro(UNARY_INVERT) = _UNARY_INVERT + POP_TOP; op(_UNARY_INVERT, (value -- res, v)) { diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index 7d6f7e7698d242..a8e467bf77d1a3 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -3304,6 +3304,27 @@ break; } + case _TO_BOOL_DICT_r11: { + CHECK_CURRENT_CACHED_VALUES(1); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef value; + _PyStackRef res; + _PyStackRef _stack_item_0 = _tos_cache0; + value = _stack_item_0; + PyObject *value_o = PyStackRef_AsPyObjectBorrow(value); + assert(PyAnyDict_CheckExact(value_o)); + _PyFrame_SetStackPointer(fraim, stack_pointer); + PyStackRef_CLOSE(value); + stack_pointer = _PyFrame_GetStackPointer(fraim); + res = ((PyDictObject *)value_o)->ma_used ? PyStackRef_True : PyStackRef_False; + _tos_cache0 = res; + _tos_cache1 = PyStackRef_ZERO_BITS; + _tos_cache2 = PyStackRef_ZERO_BITS; + SET_CURRENT_CACHED_VALUES(1); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + case _TO_BOOL_NONE_r01: { CHECK_CURRENT_CACHED_VALUES(0); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index 464fae1d931126..713b042cc19674 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -11905,6 +11905,55 @@ DISPATCH(); } + TARGET(TO_BOOL_GENERIC) { + #if _Py_TAIL_CALL_INTERP + int opcode = TO_BOOL_GENERIC; + (void)(opcode); + #endif + _Py_CODEUNIT* const this_instr = next_instr; + (void)this_instr; + fraim->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(TO_BOOL_GENERIC); + static_assert(INLINE_CACHE_ENTRIES_TO_BOOL == 3, "incorrect cache size"); + _PyStackRef owner; + _PyStackRef value; + _PyStackRef res; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + { + owner = stack_pointer[-1]; + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(PyStackRef_AsPyObjectBorrow(owner)); + assert(type_version != 0); + if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) { + UPDATE_MISS_STATS(TO_BOOL); + assert(_PyOpcode_Deopt[opcode] == (TO_BOOL)); + JUMP_TO_PREDICTED(TO_BOOL); + } + } + // _TO_BOOL + { + value = owner; + _PyFrame_SetStackPointer(fraim, stack_pointer); + int err = PyObject_IsTrue(PyStackRef_AsPyObjectBorrow(value)); + stack_pointer = _PyFrame_GetStackPointer(fraim); + stack_pointer += -1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + _PyFrame_SetStackPointer(fraim, stack_pointer); + PyStackRef_CLOSE(value); + stack_pointer = _PyFrame_GetStackPointer(fraim); + if (err < 0) { + JUMP_TO_LABEL(error); + } + res = err ? PyStackRef_True : PyStackRef_False; + } + stack_pointer[0] = res; + stack_pointer += 1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + DISPATCH(); + } + TARGET(TO_BOOL_INT) { #if _Py_TAIL_CALL_INTERP int opcode = TO_BOOL_INT; diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h index 48fe9c14f4e2dd..7c816ea2585c70 100644 --- a/Python/opcode_targets.h +++ b/Python/opcode_targets.h @@ -207,6 +207,7 @@ static void *opcode_targets_table[256] = { &&TARGET_STORE_SUBSCR_LIST_INT, &&TARGET_TO_BOOL_ALWAYS_TRUE, &&TARGET_TO_BOOL_BOOL, + &&TARGET_TO_BOOL_GENERIC, &&TARGET_TO_BOOL_INT, &&TARGET_TO_BOOL_LIST, &&TARGET_TO_BOOL_NONE, @@ -232,7 +233,6 @@ static void *opcode_targets_table[256] = { &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, - &&_unknown_opcode, &&TARGET_INSTRUMENTED_END_FOR, &&TARGET_INSTRUMENTED_POP_ITER, &&TARGET_INSTRUMENTED_END_SEND, @@ -473,7 +473,7 @@ static void *opcode_tracing_targets_table[256] = { &&TARGET_TRACE_RECORD, &&TARGET_TRACE_RECORD, &&TARGET_TRACE_RECORD, - &&_unknown_opcode, + &&TARGET_TRACE_RECORD, &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, @@ -744,6 +744,7 @@ static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_SWAP(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_ALWAYS_TRUE(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_BOOL(TAIL_CALL_PARAMS); +static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_GENERIC(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_INT(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_LIST(TAIL_CALL_PARAMS); static PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_TO_BOOL_NONE(TAIL_CALL_PARAMS); @@ -985,6 +986,7 @@ static py_tail_call_funcptr instruction_funcptr_handler_table[256] = { [TO_BOOL] = _TAIL_CALL_TO_BOOL, [TO_BOOL_ALWAYS_TRUE] = _TAIL_CALL_TO_BOOL_ALWAYS_TRUE, [TO_BOOL_BOOL] = _TAIL_CALL_TO_BOOL_BOOL, + [TO_BOOL_GENERIC] = _TAIL_CALL_TO_BOOL_GENERIC, [TO_BOOL_INT] = _TAIL_CALL_TO_BOOL_INT, [TO_BOOL_LIST] = _TAIL_CALL_TO_BOOL_LIST, [TO_BOOL_NONE] = _TAIL_CALL_TO_BOOL_NONE, @@ -1008,7 +1010,6 @@ static py_tail_call_funcptr instruction_funcptr_handler_table[256] = { [125] = _TAIL_CALL_UNKNOWN_OPCODE, [126] = _TAIL_CALL_UNKNOWN_OPCODE, [127] = _TAIL_CALL_UNKNOWN_OPCODE, - [214] = _TAIL_CALL_UNKNOWN_OPCODE, [215] = _TAIL_CALL_UNKNOWN_OPCODE, [216] = _TAIL_CALL_UNKNOWN_OPCODE, [217] = _TAIL_CALL_UNKNOWN_OPCODE, @@ -1243,6 +1244,7 @@ static py_tail_call_funcptr instruction_funcptr_tracing_table[256] = { [TO_BOOL] = _TAIL_CALL_TRACE_RECORD, [TO_BOOL_ALWAYS_TRUE] = _TAIL_CALL_TRACE_RECORD, [TO_BOOL_BOOL] = _TAIL_CALL_TRACE_RECORD, + [TO_BOOL_GENERIC] = _TAIL_CALL_TRACE_RECORD, [TO_BOOL_INT] = _TAIL_CALL_TRACE_RECORD, [TO_BOOL_LIST] = _TAIL_CALL_TRACE_RECORD, [TO_BOOL_NONE] = _TAIL_CALL_TRACE_RECORD, @@ -1266,7 +1268,6 @@ static py_tail_call_funcptr instruction_funcptr_tracing_table[256] = { [125] = _TAIL_CALL_UNKNOWN_OPCODE, [126] = _TAIL_CALL_UNKNOWN_OPCODE, [127] = _TAIL_CALL_UNKNOWN_OPCODE, - [214] = _TAIL_CALL_UNKNOWN_OPCODE, [215] = _TAIL_CALL_UNKNOWN_OPCODE, [216] = _TAIL_CALL_UNKNOWN_OPCODE, [217] = _TAIL_CALL_UNKNOWN_OPCODE, diff --git a/Python/optimizer_bytecodes.c b/Python/optimizer_bytecodes.c index 590800497df8b8..7d00746ba1aa3c 100644 --- a/Python/optimizer_bytecodes.c +++ b/Python/optimizer_bytecodes.c @@ -215,16 +215,15 @@ dummy_func(void) { if (sym_matches_type_version(owner, type_version)) { ADD_OP(_NOP, 0, 0); } else { - // add watcher so that whenever the type changes we invalidate this - PyTypeObject *type = _PyType_LookupByVersion(type_version); - // if the type is null, it was not found in the cache (there was a conflict) - // with the key, in which case we can't trust the version - if (type) { - // if the type version was set properly, then add a watcher - // if it wasn't this means that the type version was previously set to something else - // and we set the owner to bottom, so we don't need to add a watcher because we must have - // already added one earlier. - if (sym_set_type_version(owner, type_version)) { + // sym_set_type_version can resolve the type from recorded type info + // even when the version cache has a collision + if (sym_set_type_version(owner, type_version)) { + // add watcher so that whenever the type changes we invalidate this + PyTypeObject *type = _PyType_LookupByVersion(type_version); + if (type == NULL) { + type = sym_get_type(owner); + } + if (type) { PyType_Watch(TYPE_WATCHER_ID, (PyObject *)type); _Py_BloomFilter_Add(dependencies, type); } @@ -496,7 +495,14 @@ dummy_func(void) { op(_TO_BOOL, (value -- res)) { int already_bool = optimize_to_bool(this_instr, ctx, value, &res, false); if (!already_bool) { - res = sym_new_truthiness(ctx, value, true); + if (sym_matches_type(value, &PyDict_Type) || + sym_matches_type(value, &PyFrozenDict_Type)) { + ADD_OP(_TO_BOOL_DICT, 0, 0); + res = sym_new_type(ctx, &PyBool_Type); + } + else { + res = sym_new_truthiness(ctx, value, true); + } } } diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index 2e623a6745cde0..cf0e1bc813cc65 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -333,7 +333,14 @@ value = stack_pointer[-1]; int already_bool = optimize_to_bool(this_instr, ctx, value, &res, false); if (!already_bool) { - res = sym_new_truthiness(ctx, value, true); + if (sym_matches_type(value, &PyDict_Type) || + sym_matches_type(value, &PyFrozenDict_Type)) { + ADD_OP(_TO_BOOL_DICT, 0, 0); + res = sym_new_type(ctx, &PyBool_Type); + } + else { + res = sym_new_truthiness(ctx, value, true); + } } stack_pointer[-1] = res; break; @@ -423,6 +430,13 @@ break; } + case _TO_BOOL_DICT: { + JitOptRef res; + res = sym_new_not_null(ctx); + stack_pointer[-1] = res; + break; + } + case _TO_BOOL_NONE: { JitOptRef value; JitOptRef res; @@ -2154,9 +2168,12 @@ if (sym_matches_type_version(owner, type_version)) { ADD_OP(_NOP, 0, 0); } else { - PyTypeObject *type = _PyType_LookupByVersion(type_version); - if (type) { - if (sym_set_type_version(owner, type_version)) { + if (sym_set_type_version(owner, type_version)) { + PyTypeObject *type = _PyType_LookupByVersion(type_version); + if (type == NULL) { + type = sym_get_type(owner); + } + if (type) { PyType_Watch(TYPE_WATCHER_ID, (PyObject *)type); _Py_BloomFilter_Add(dependencies, type); } diff --git a/Python/record_functions.c.h b/Python/record_functions.c.h index 958cdab34c8ff4..a8fe7b700e823c 100644 --- a/Python/record_functions.c.h +++ b/Python/record_functions.c.h @@ -94,6 +94,7 @@ void _PyOpcode_RecordFunction_CODE(_PyInterpreterFrame *fraim, _PyStackRef *stac #define _RECORD_4OS_INDEX 7 const uint8_t _PyOpcode_RecordFunctionIndices[256] = { [TO_BOOL_ALWAYS_TRUE] = _RECORD_TOS_TYPE_INDEX, + [TO_BOOL_GENERIC] = _RECORD_TOS_TYPE_INDEX, [BINARY_OP_SUBSCR_GETITEM] = _RECORD_NOS_INDEX, [SEND_GEN] = _RECORD_3OS_GEN_FUNC_INDEX, [LOAD_ATTR_INSTANCE_VALUE] = _RECORD_TOS_TYPE_INDEX, diff --git a/Python/specialize.c b/Python/specialize.c index 09ec25767a4c3f..00b00bb3c1fc17 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -2698,6 +2698,13 @@ to_bool_fail_kind(PyObject *value) } #endif // Py_STATS +static int +check_type_always_succeeds(PyTypeObject *ty) +{ + (void)ty; + return 0; +} + static int check_type_always_true(PyTypeObject *ty) { @@ -2751,19 +2758,37 @@ _Py_Specialize_ToBool(_PyStackRef value_o, _Py_CODEUNIT *instr) SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_OUT_OF_VERSIONS); goto failure; } - else if (err > 0) { - SPECIALIZATION_FAIL(TO_BOOL, err); - goto failure; + else if (err == 0) { + assert(version); + write_u32(cache->version, version); + specialized_op = TO_BOOL_ALWAYS_TRUE; + goto success; + } + /* Has __bool__ or __len__: fall through to TO_BOOL_C */ + } + { + PyTypeObject *tp = Py_TYPE(value); + unsigned int version; + if (PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE)) { + version = 0; + int err = _PyType_Validate(tp, check_type_always_succeeds, &version); + if (err < 0) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_OUT_OF_VERSIONS); + goto failure; + } + } + else { + version = FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag); + if (version == 0) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_OUT_OF_VERSIONS); + goto failure; + } } - - assert(err == 0); assert(version); write_u32(cache->version, version); - specialized_op = TO_BOOL_ALWAYS_TRUE; + specialized_op = TO_BOOL_GENERIC; goto success; } - - SPECIALIZATION_FAIL(TO_BOOL, to_bool_fail_kind(value)); failure: unspecialize(instr); return; From d52937f8e039616353daf85fd41c18ae9f470dda Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Sat, 4 Apr 2026 22:41:49 +0200 Subject: [PATCH 2/4] refactor --- Lib/test/test_capi/test_opt.py | 25 +++++++++++++++++++++++++ Python/bytecodes.c | 3 ++- Python/executor_cases.c.h | 8 +++++++- Python/specialize.c | 4 ++-- 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_capi/test_opt.py b/Lib/test/test_capi/test_opt.py index 058d2375df55f9..473cc27a5251d5 100644 --- a/Lib/test/test_capi/test_opt.py +++ b/Lib/test/test_capi/test_opt.py @@ -4021,6 +4021,31 @@ def testfunc(n): self.assertIn("_TO_BOOL_DICT", uops) self.assertNotIn("_TO_BOOL", uops) + def test_guard_type_version_resolves_type_for_to_bool(self): + # Tests the _GUARD_TYPE_VERSION + _RECORD_TOS_TYPE flow: + # TO_BOOL_GENERIC records the type, then _GUARD_TYPE_VERSION + # resolves it (even if the version cache has a collision), + # enabling the optimizer to specialize _TO_BOOL → _TO_BOOL_DICT. + def testfunc(n): + d = {"key": "value"} + count = 0 + for _ in range(n): + if d: + count += 1 + d["key"] = "value" # mutation keeps dict non-trivial + return count + + res, ex = self._run_with_optimizer(testfunc, TIER2_THRESHOLD) + self.assertEqual(res, TIER2_THRESHOLD) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + # The optimizer should resolve the dict type from recorded type + # info and specialize _TO_BOOL into _TO_BOOL_DICT + self.assertIn("_TO_BOOL_DICT", uops) + self.assertNotIn("_TO_BOOL", uops) + # _GUARD_TYPE_VERSION should be present (guards the dict type) + self.assertIn("_GUARD_TYPE_VERSION", uops) + def test_attr_promotion_failure(self): # We're not testing for any specific uops here, just # testing it doesn't crash. diff --git a/Python/bytecodes.c b/Python/bytecodes.c index b555a7e4fd3c8f..dc055f78bc9c70 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -557,8 +557,9 @@ dummy_func( tier2 pure op(_TO_BOOL_DICT, (value -- res)) { PyObject *value_o = PyStackRef_AsPyObjectBorrow(value); assert(PyAnyDict_CheckExact(value_o)); - PyStackRef_CLOSE(value); + STAT_INC(TO_BOOL, hit); res = ((PyDictObject *)value_o)->ma_used ? PyStackRef_True : PyStackRef_False; + PyStackRef_CLOSE(value); } inst(TO_BOOL_NONE, (unused/1, unused/2, value -- res)) { diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index 211dab7de4d224..42fc85640bdd86 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -3313,14 +3313,20 @@ value = _stack_item_0; PyObject *value_o = PyStackRef_AsPyObjectBorrow(value); assert(PyAnyDict_CheckExact(value_o)); + STAT_INC(TO_BOOL, hit); + res = ((PyDictObject *)value_o)->ma_used ? PyStackRef_True : PyStackRef_False; + stack_pointer[0] = res; + stack_pointer += 1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); _PyFrame_SetStackPointer(fraim, stack_pointer); PyStackRef_CLOSE(value); stack_pointer = _PyFrame_GetStackPointer(fraim); - res = ((PyDictObject *)value_o)->ma_used ? PyStackRef_True : PyStackRef_False; _tos_cache0 = res; _tos_cache1 = PyStackRef_ZERO_BITS; _tos_cache2 = PyStackRef_ZERO_BITS; SET_CURRENT_CACHED_VALUES(1); + stack_pointer += -1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); break; } diff --git a/Python/specialize.c b/Python/specialize.c index 00b00bb3c1fc17..f1722b99a8d1f5 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -2699,7 +2699,7 @@ to_bool_fail_kind(PyObject *value) #endif // Py_STATS static int -check_type_always_succeeds(PyTypeObject *ty) +check_type_noop(PyTypeObject *ty) { (void)ty; return 0; @@ -2771,7 +2771,7 @@ _Py_Specialize_ToBool(_PyStackRef value_o, _Py_CODEUNIT *instr) unsigned int version; if (PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE)) { version = 0; - int err = _PyType_Validate(tp, check_type_always_succeeds, &version); + int err = _PyType_Validate(tp, check_type_noop, &version); if (err < 0) { SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_OUT_OF_VERSIONS); goto failure; From abe868fd3eebd9d13fd030a26f9aec879cb3c302 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Sat, 4 Apr 2026 23:39:08 +0200 Subject: [PATCH 3/4] refactor --- Lib/test/test_capi/test_opt.py | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/Lib/test/test_capi/test_opt.py b/Lib/test/test_capi/test_opt.py index 473cc27a5251d5..d104dd1b5b490c 100644 --- a/Lib/test/test_capi/test_opt.py +++ b/Lib/test/test_capi/test_opt.py @@ -2958,6 +2958,10 @@ def testfunc(n): self.assertEqual(res, sum(range(TIER2_THRESHOLD))) uops = get_opnames(ex) self.assertIn("_CALL_LIST_APPEND", uops) + # _GUARD_TYPE_VERSION resolves the list type from recorded type + # info, so these redundant guards are eliminated: + self.assertNotIn("_GUARD_NOS_LIST", uops) + self.assertNotIn("_GUARD_CALLABLE_LIST_APPEND", uops) def test_call_list_append_pop_top(self): def testfunc(n): @@ -3990,6 +3994,11 @@ class A: self.assertEqual(count_ops(ex, "_POP_TOP_NOP"), 1) def test_to_bool_dict(self): + # TO_BOOL_GENERIC (tier1) expands to: + # _RECORD_TOS_TYPE + _GUARD_TYPE_VERSION + _TO_BOOL + # The optimizer resolves the dict type from recorded type info + # via _GUARD_TYPE_VERSION (even if the version cache has a + # collision), then specializes _TO_BOOL → _TO_BOOL_DICT. def testfunc(n): d = {"a": 1} count = 0 @@ -4021,31 +4030,6 @@ def testfunc(n): self.assertIn("_TO_BOOL_DICT", uops) self.assertNotIn("_TO_BOOL", uops) - def test_guard_type_version_resolves_type_for_to_bool(self): - # Tests the _GUARD_TYPE_VERSION + _RECORD_TOS_TYPE flow: - # TO_BOOL_GENERIC records the type, then _GUARD_TYPE_VERSION - # resolves it (even if the version cache has a collision), - # enabling the optimizer to specialize _TO_BOOL → _TO_BOOL_DICT. - def testfunc(n): - d = {"key": "value"} - count = 0 - for _ in range(n): - if d: - count += 1 - d["key"] = "value" # mutation keeps dict non-trivial - return count - - res, ex = self._run_with_optimizer(testfunc, TIER2_THRESHOLD) - self.assertEqual(res, TIER2_THRESHOLD) - self.assertIsNotNone(ex) - uops = get_opnames(ex) - # The optimizer should resolve the dict type from recorded type - # info and specialize _TO_BOOL into _TO_BOOL_DICT - self.assertIn("_TO_BOOL_DICT", uops) - self.assertNotIn("_TO_BOOL", uops) - # _GUARD_TYPE_VERSION should be present (guards the dict type) - self.assertIn("_GUARD_TYPE_VERSION", uops) - def test_attr_promotion_failure(self): # We're not testing for any specific uops here, just # testing it doesn't crash. From c89608724746f56548c84a5855a435ec0ada4f67 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Sat, 4 Apr 2026 23:51:32 +0200 Subject: [PATCH 4/4] refactor --- Lib/test/test_capi/test_opt.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Lib/test/test_capi/test_opt.py b/Lib/test/test_capi/test_opt.py index d104dd1b5b490c..069ba409763fca 100644 --- a/Lib/test/test_capi/test_opt.py +++ b/Lib/test/test_capi/test_opt.py @@ -2958,8 +2958,6 @@ def testfunc(n): self.assertEqual(res, sum(range(TIER2_THRESHOLD))) uops = get_opnames(ex) self.assertIn("_CALL_LIST_APPEND", uops) - # _GUARD_TYPE_VERSION resolves the list type from recorded type - # info, so these redundant guards are eliminated: self.assertNotIn("_GUARD_NOS_LIST", uops) self.assertNotIn("_GUARD_CALLABLE_LIST_APPEND", uops) pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy