§
    1@ÄjÉ9  ã                   ó‚  — d dl Z d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZmZ d dlmZmZ d dlmZ d d	lmZ d dlZd d
lmZm Z m!Z! d dl"m#Z#  G d„ dej$        ¦  «        Z% G d„ dej$        ¦  «        Z& G d„ de¦  «        Z' eddddddddddddddd d!d"¦  «        Z( G d#„ d$e(e¦  «        Z)dS )%é    N)Úir)Ú_dynfunc)ÚPyCallWrapper)ÚBaseContext)	ÚutilsÚtypesÚconfigÚcgutilsÚcallconvÚcodegenÚ	externalsÚfastmathpassÚ
intrinsics)ÚTargetOptionsÚinclude_default_options)Úrtsys)Úglobal_compiler_lock)ÚParallelOptionsÚFastMathOptionsÚInlineOptions)Úufunc_dbc                   ó"   — e Zd Zdej        fgZdS )ÚClosureBodyÚenvN©Ú__name__Ú
__module__Ú__qualname__r   ÚpyobjectÚ_fields© ó    ú?C:\Projects\Historical\venv\Lib\site-packages\numba/core/cpu.pyr   r      s   € € € € € Ø�u”~Ð&Ð'€G€G€Gr"   r   c                   ó2   — e Zd Zdej        fdej        fgZdS )ÚEnvBodyÚglobalsÚconstsNr   r!   r"   r#   r%   r%      s)   € € € € € à	�E”NÐ#Ø	�5”>Ð"ð€G€G€Gr"   r%   c                   óÞ   ‡ — e Zd ZdZdZdˆ fd„	Zd„ Zd„ Zed„ ¦   «         Z	dd	„Z
d
„ Zed„ ¦   «         Zd„ Zd„ Zed„ ¦   «         Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	 dd„Zd„ Zd„ Zd„ Zd„ Zˆ xZS )Ú
CPUContextz0
    Changes BaseContext calling convention
    TÚcpuc                 óL   •— t          ¦   «                              ||¦  «         d S ©N)ÚsuperÚ__init__)ÚselfÚ	typingctxÚtargetÚ	__class__s      €r#   r.   zCPUContext.__init__)   s#   ø€ Ý‰Œ×Ò˜ FÑ+Ô+Ð+Ð+Ð+r"   c                 ó\   — dt          | ¦  «        j        › dt          | ¦  «        j        › d�S )Nú<ú.ú>)Útyper   r   ©r/   s    r#   Ú__repr__zCPUContext.__repr__,   s0   € ð B•4˜‘:”:Ô(ÐAÐA­4°©:¬:Ô+>ÐAÐAÐAÐAr"   c                 ó6   — | j                              |¦  «        S r,   )Ú_internal_codegenÚ_create_empty_module)r/   Únames     r#   Úcreate_modulezCPUContext.create_module2   s   € ØÔ%×:Ò:¸4Ñ@Ô@Ð@r"   c                 óö   — t           j        dk    | _        t          j        d¦  «        | _        t          j        ¦   «         dk    rt          j	        d¦  «         t          j                             | ¦  «         d S )Né    z
numba.execÚs390xzlibgcc_s.so.1)r   ÚMACHINE_BITSÚis32bitr   ÚJITCPUCodegenr;   ÚplatformÚmachineÚllÚload_library_permanentlyr   Úc_math_functionsÚinstallr8   s    r#   ÚinitzCPUContext.init5   sj   € åÔ*¨bÒ0ˆŒÝ!(Ô!6°|Ñ!DÔ!DˆÔõ ÔÑÔ Ò(Ð(ÝÔ'¨Ñ8Ô8Ð8õ 	Ô"×*Ò*¨4Ñ0Ô0Ð0Ð0Ð0r"   Nc                 ó  — | j         dk    röt          j        ¦   «         dk    rád„ }t          |j        ¦  «        D ]q\  }}t          |j        t          j        ¦  «        rM|j        j	        dk     r=d}|r|t          |¦  «        k     r||         }|                      ||¦  «        ¦  «         Œr|j        j        }t          |t          j        ¦  «        r4|j	        dk     r+|j                              ||¦  «        ¦  «         dS dS dS dS dS )aw  
        Implementation of caller Type Promotions for s390x ABI requirement.
        See https://github.com/numba/numba/issues/9640

        On s390x, the ABI requires that any integer argument or return
        value smaller than 64 bits must be promoted to 64 bits by the caller.
        The callee can then safely assume the high-order bits of the register
        are correctly filled (sign-extended or zero-extended).
        Without these attributes, LLVM may leave garbage in the high bits,
        leading to undefined behavior (e.g., segfaults) when the callee
        performs 64-bit operations on 32-bit values.
        é@   rA   c                 óP   — t          | t          j        ¦  «        r| j        rdndS dS )zÉ
                Map Numba types to LLVM extension attributes.
                Signed integers -> signext (sign extension)
                Unsigned/Booleans -> zeroext (zero extension)
                ÚsignextÚzeroext)Ú
isinstancer   ÚIntegerÚsigned)Únumba_tys    r#   Úget_ext_attrz8CPUContext.apply_target_attributes.<locals>.get_ext_attrO   s/   € õ ˜h­¬Ñ6Ô6ð GØ(0¬ÐF˜9˜9¸YÐFØ �yr"   N)Úaddress_sizerE   rF   Ú	enumerateÚargsrQ   r7   r   ÚIntTypeÚwidthÚlenÚadd_attributeÚreturn_value)	r/   Ú	llvm_funcÚargtypesÚrestyperU   ÚiÚargÚn_tyÚrettys	            r#   Úapply_target_attributesz"CPUContext.apply_target_attributesA   s1  € ð Ô Ò"Ð"¥xÔ'7Ñ'9Ô'9¸WÒ'DÐ'Dð!ð !ð !õ $ I¤NÑ3Ô3ð :ð :‘��3Ý˜cœh­¬
Ñ3Ô3ð :¸¼¼ÈÒ8KÐ8KØ�DØð + A­¨H©¬Ò$5Ð$5Ø'¨œ{˜Ø×%Ò% l l°4Ñ&8Ô&8Ñ9Ô9Ð9øð Ô*Ô/ˆEÝ˜%¥¤Ñ,Ô,ð L°´¸rÒ1AÐ1AØÔ&×4Ò4°\°\À'Ñ5JÔ5JÑKÔKÐKÐKÐKð- #Ð"Ð'DÐ'Dð*Lð LÐ1AÐ1Ar"   c                 ó  — t          j        | ¦  «         ddlm}m}m}m}m}m}m	}m
}m}	m}
m}m}m} ddlm}m} ddlm}m} ddlm}m}m} ddlm}m}m} ddlm}m } ddl!m"}m#} dd	l!m$}m%} dd
l!m&}m'} ddl(m)} m*}! ddl+m,}" ddlm-}# ddlm.}$ ddlm/}%m0}&m1}'m2}( ddlm3}) ddl4m5}* |  6                    |%j7        ¦  «         |  6                    |)j7        ¦  «         |  6                    |&j7        ¦  «         |  6                    |$j7        ¦  «         |  6                    |'j7        ¦  «         |  6                    |(j7        ¦  «         |  6                    |*j8        ¦  «         tr          j:        j;         <                    ¦   «          ddl=m>}+ d S )Nr   )ÚbuiltinsÚcharseqÚenumimplÚhashingÚheapqÚ	iteratorsÚlistobjÚnumbersÚrangeobjÚsetobjÚslicingÚtupleobjÚunicode)ÚoptionalÚinline_closurecall)Úgdb_hookÚliteral)ÚlinalgÚ	arraymathÚarrayobj)Úgenerator_coreÚgenerator_methodsÚlegacy)Úpolynomial_coreÚpolynomial_functions)Ú	typeddictÚdictimpl)Ú	typedlistÚ
listobject)ÚtypedsetÚ	setobject)ÚjitclassÚfunction_type)Údatetime_registry)Ú
npdatetime)Únpyimpl)Ú	cmathimplÚmathimplÚ	printimplÚ
randomimpl)Úcffiimpl)ÚClassBuilder)Úndarray)?r   Ú
initializeÚnumba.cpythonrg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   Ú
numba.corert   ru   Ú
numba.miscrv   rw   Únumba.nprx   ry   rz   Únumba.np.randomr{   r|   r}   Únumba.np.polynomialr~   r   Únumba.typedr€   r�   r‚   rƒ   r„   r…   Únumba.experimentalr†   r‡   Únumba.np.typesrˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   Ú numba.experimental.jitclass.baser�   Úinstall_registryÚregistryÚclass_impl_registryÚnumbaÚcoreÚentrypointsÚinit_allÚnumba.np.unsafer‘   ),r/   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   Újitclassimplr‘   s,                                               r#   Úload_additional_registriesz%CPUContext.load_additional_registriesf   sñ  € õ 	Ô˜ÑÔÐð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð
 	<Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ø0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ø8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ØMÐMÐMÐMÐMÐMÐMÐMÐMÐMØMÐMÐMÐMÐMÐMÐMÐMØ3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ø5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ø>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ø4Ð4Ð4Ð4Ð4Ð4Ø'Ð'Ð'Ð'Ð'Ð'ð 	%Ð$Ð$Ð$Ð$Ð$ØLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLØ'Ð'Ð'Ð'Ð'Ð'ð	ð 	ð 	ð 	ð 	ð 	à×Ò˜iÔ0Ñ1Ô1Ð1Ø×Ò˜hÔ/Ñ0Ô0Ð0Ø×Ò˜hÔ/Ñ0Ô0Ð0Ø×Ò˜gÔ.Ñ/Ô/Ð/Ø×Ò˜iÔ0Ñ1Ô1Ð1Ø×Ò˜jÔ1Ñ2Ô2Ð2Ø×Ò˜lÔ>Ñ?Ô?Ð?õ 	Œ
Ô×'Ò'Ñ)Ô)Ð)ð 	,Ð+Ð+Ð+Ð+Ð+Ð+Ð+r"   c                 ó   — | j         j        S r,   )r;   Útarget_datar8   s    r#   r¨   zCPUContext.target_data”   s   € àÔ%Ô1Ð1r"   c                 óT   — t          j        |fi |¤Ž}|                      |d¬¦  «        S )NT)r;   Úaot_mode)r   ÚAOTCPUCodegenÚ	subtarget)r/   r=   Úaot_optionsÚaot_codegens       r#   Úwith_aot_codegenzCPUContext.with_aot_codegen˜   s:   € ÝÔ+¨DÐ@Ð@°KÐ@Ð@ˆØ�~Š~°Ø'+ð ñ -ô -ð 	-r"   c                 ó   — | j         S r,   )r;   r8   s    r#   r   zCPUContext.codegen�   s   € ØÔ%Ð%r"   c                 ó*   — t          j        | ¦  «        S r,   )r   ÚCPUCallConvr8   s    r#   Ú	call_convzCPUContext.call_conv    s   € åÔ# DÑ)Ô)Ð)r"   c                 ót   — t          j        ||t          j        d         ¦  «        }t	          | ||d¬¦  «        S )zŸ
        From the given *envptr* (a pointer to a _dynfunc.Environment object),
        get a EnvBody allowing structured access to environment fields.
        Úoffsetof_env_bodyT)ÚrefÚcast_ref)r
   Úpointer_addr   Ú
_impl_infor%   )r/   ÚbuilderÚenvptrÚbody_ptrs       r#   Úget_env_bodyzCPUContext.get_env_body¤   s?   € õ
 Ô&Ø�V�XÔ0Ð1DÔEñGô Gˆå�t˜W¨(¸TÐBÑBÔBÐBr"   Fc                 ód  — |                       |j        |                      | j        ¦  «        ¦  «        }|                     |¦  «        }|                      |¦  «        }|                     ||| j        j        ¬¦  «         |                      ||¦  «        }| 	                    | j
        ||¦  «        S )N)Úreturn_pyobjectÚ	debug_msg)Údeclare_env_globalÚmoduleÚget_env_nameÚfndescÚloadÚget_python_apiÚemit_environment_sentryÚenv_namer½   Úget_env_managerÚenvironment)r/   rº   r¿   ÚenvgvÚenvargÚpyapiÚenv_bodys          r#   rÉ   zCPUContext.get_env_manager­   s±   € Ø×'Ò'¨¬Ø(,×(9Ò(9¸$¼+Ñ(FÔ(FñHô Hˆà—’˜eÑ$Ô$ˆØ×#Ò# GÑ,Ô,ˆØ×%Ò%ØØ+Ø”kÔ*ð 	&ñ 	
ô 	
ð 	
ð
 ×$Ò$ W¨fÑ5Ô5ˆØ×$Ò$ TÔ%5°xÀÑHÔHÐHr"   c                 óR   — t          j        ||t          j        d         |¬¦  «        S )z~
        From the given *genptr* (a pointer to a _dynfunc.Generator object),
        get a pointer to its state area.
        Úoffsetof_generator_state)Úreturn_type)r
   r¸   r   r¹   )r/   rº   ÚgenptrrÑ   s       r#   Úget_generator_statezCPUContext.get_generator_stateº   s1   € õ
 Ô"Ø�V�XÔ0Ð1KÔLØ#ð%ñ %ô %ð 	%r"   c                 ó>   — ddl m} |                     | |||¦  «        S )zR
        Build a list from the Numba *list_type* and its initial *items*.
        r   )rm   )r“   rm   Ú
build_list)r/   rº   Ú	list_typeÚitemsrm   s        r#   rÕ   zCPUContext.build_listÃ   s0   € ð 	*Ð)Ð)Ð)Ð)Ð)Ø×!Ò! $¨°¸EÑBÔBÐBr"   c                 ó>   — ddl m} |                     | |||¦  «        S )zP
        Build a set from the Numba *set_type* and its initial *items*.
        r   )rp   )r“   rp   Ú	build_set)r/   rº   Úset_typer×   rp   s        r#   rÙ   zCPUContext.build_setÊ   s0   € ð 	)Ð(Ð(Ð(Ð(Ð(Ø×Ò  g¨x¸Ñ?Ô?Ð?r"   c                 ó@   — ddl m} |                     | ||||¦  «        S )Nr   )Ú
dictobject)r™   rÜ   Ú	build_map)r/   rº   Ú	dict_typeÚ
item_typesr×   rÜ   s         r#   rÝ   zCPUContext.build_mapÑ   s0   € Ø*Ð*Ð*Ð*Ð*Ð*à×#Ò# D¨'°9¸jÈ%ÑPÔPÐPr"   c                 ó¼   — | j         rt          j        || j         ¦  «         | j        rt	          j        |¦  «         |                     t          j        ¦  «         d S r,   )	Úfastmathr   Úrewrite_modulerC   r   Ú
fix_divmodÚadd_linking_libraryr   Úlibrary)r/   Úmodrå   s      r#   Úpost_loweringzCPUContext.post_loweringÖ   sZ   € ØŒ=ð 	<ÝÔ'¨¨T¬]Ñ;Ô;Ð;àŒ<ð 	'õ Ô! #Ñ&Ô&Ð&à×#Ò#¥E¤MÑ2Ô2Ð2Ð2Ð2r"   c           	      ó.  — |                       d¦  «        }| j                             |j        |j        ¦  «        }t          j        |||j        ¦  «        }t          | ||||||¬¦  «        }	|	 	                    ¦   «          | 
                    |¦  «         d S )NÚwrapper)Úcall_helperÚrelease_gil)r>   r³   Úget_function_typer`   r_   r   ÚFunctionÚllvm_func_namer   ÚbuildÚadd_ir_module)
r/   rå   rÄ   r   rê   rë   Úwrapper_moduleÚfntyÚwrapper_calleerº   s
             r#   Úcreate_cpython_wrapperz!CPUContext.create_cpython_wrapperá   s˜   € à×+Ò+¨IÑ6Ô6ˆØŒ~×/Ò/°´ÀÄÑPÔPˆÝœ ^°TØ%+Ô%:ñ<ô <ˆå  n°nØ &¨¸Ø,7ð9ñ 9ô 9ˆð 	�Š‰ŒˆØ×Ò˜nÑ-Ô-Ð-Ð-Ð-r"   c                 ó\  ‡ — ‰                       d¦  «        }‰ j                             |j        |j        ¦  «        }t          j        |||j        ¦  «        }ˆ fd„|j        D ¦   «         }‰                      |j        ¦  «        }	t          j	        |	|¦  «        }
t          j        ||
|j
        ¦  «        }t          j        |                     d¦  «        ¦  «        }‰ j                             |||j        |j        |j        d¬¦  «        \  }}|                     |j        d¬¦  «        5  ‰                      |¦  «        }|                     ¦   «         }‰ j                             |||¦  «         ‰                      |j        t-          ‰ ¦  «        ¦  «        }|                     |¦  «        }|                     |¦  «         |                     |¦  «         |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         |                     |¦  «         d S )NÚcfunc_wrapperc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r!   )Úget_value_type)Ú.0Útyr/   s     €r#   ú
<listcomp>z3CPUContext.create_cfunc_wrapper.<locals>.<listcomp>ó   s'   ø€ ÐIÐIÐI°2�t×*Ò*¨2Ñ.Ô.ÐIÐIÐIr"   Úentry)Únoinline)ÚattrsF)Úlikely)r>   r³   rì   r`   r_   r   rí   rî   rø   ÚFunctionTypeÚllvm_cfunc_wrapper_nameÚ	IRBuilderÚappend_basic_blockÚcall_functionrX   Úif_thenÚis_errorrÆ   Ú
gil_ensureÚraise_errorÚinsert_const_stringrÂ   ÚreprÚstring_from_stringÚerr_write_unraisableÚdecrefÚgil_releaseÚretrð   )r/   rå   rÄ   r   rê   rñ   rò   ró   Úll_argtypesÚll_return_typeÚwraptyÚwrapfnrº   ÚstatusÚoutrÍ   Ú	gil_stateÚcstrÚstrobjs   `                  r#   Úcreate_cfunc_wrapperzCPUContext.create_cfunc_wrapperí   sC  ø€ Ø×+Ò+¨OÑ<Ô<ˆØŒ~×/Ò/°´ÀÄÑPÔPˆÝœ ^°TØ%+Ô%:ñ<ô <ˆð JÐIÐIÐI¸¼ÐIÑIÔIˆØ×,Ò,¨V¬^Ñ<Ô<ˆÝ” °Ñ=Ô=ˆÝ”˜^¨VØ#Ô;ñ=ô =ˆå”,˜v×8Ò8¸ÑAÔAÑBÔBˆà”n×2Ò2Ø�^ V¤^°V´_ØŒK˜}ð 3ñ .ô .‰ˆ�ð �_Š_˜Vœ_°Uˆ_Ñ;Ô;ð 
	)ð 
	)ð ×'Ò'¨Ñ0Ô0ˆEØ×(Ò(Ñ*Ô*ˆIØŒN×&Ò& w°°vÑ>Ô>Ð>Ø×+Ò+¨G¬N½DÀ¹J¼JÑGÔGˆDØ×-Ò-¨dÑ3Ô3ˆFØ×&Ò& vÑ.Ô.Ð.Ø�LŠL˜Ñ Ô Ð Ø×Ò˜iÑ(Ô(Ð(ð
	)ð 
	)ð 
	)ñ 
	)ô 
	)ð 
	)ð 
	)ð 
	)ð 
	)ð 
	)ð 
	)øøøð 
	)ð 
	)ð 
	)ð 
	)ð 	�Š�CÑÔÐØ×Ò˜nÑ-Ô-Ð-Ð-Ð-s   Ä)CG7Ç7G;Ç>G;c                 ó>  — |                      |j        ¦  «        }d|j        ›�}t          j        |                     ¦   «         |j                             d¦  «        d         ||||f¦  «        }|j                             |  	                    |¦  «        |¦  «         |S )zö
        Returns
        -------
        (cfunc, fnptr)

        - cfunc
            callable function (Can be None)
        - fnptr
            callable function address
        - env
            an execution environment (from _dynfunc)
        zcompiled wrapper for r5   éÿÿÿÿ)
Úget_pointer_to_functionÚllvm_cpython_wrapper_nameÚqualnamer   Úmake_functionÚlookup_moduleÚsplitr   Úset_envrÃ   )r/   rå   rÄ   r   ÚfnptrÚdocÚcfuncs          r#   Úget_executablezCPUContext.get_executable  s    € ð ×/Ò/ØÔ,ñ.ô .ˆˆð
 ,2¬?¨?Ð<ˆÝÔ& v×';Ò';Ñ'=Ô'=Ø'-¤×'<Ò'<¸SÑ'AÔ'AÀ"Ô'EØ'*¨E°3à(/ zñ	)ô )ˆð 	Œ×Ò × 1Ò 1°&Ñ 9Ô 9¸3Ñ?Ô?Ð?Øˆr"   c                 ó’   — t          j        t           j        |d¦  «        }|                      |                      |¦  «        ¦  «        S )zI
        Calculate the size of an array struct on the CPU target
        ÚA)r   ÚArrayÚint32Úget_abi_sizeofrø   )r/   ÚndimÚarytys      r#   Úcalc_array_sizeofzCPUContext.calc_array_sizeof*  s;   € õ ”�EœK¨¨sÑ3Ô3ˆØ×"Ò" 4×#6Ò#6°uÑ#=Ô#=Ñ>Ô>Ð>r"   c                 ó*   — t          j        |¦  «        S r,   )r   Úget_ufunc_info)r/   Ú	ufunc_keys     r#   r0  zCPUContext.get_ufunc_info2  s   € ÝÔ& yÑ1Ô1Ð1r"   )r*   )NN)F)r   r   r   Ú__doc__Úallow_dynamic_globalsr.   r9   r>   r   rK   re   r¦   Úpropertyr¨   r¯   r   r³   r½   rÉ   rÓ   rÕ   rÙ   rÝ   rç   rô   r  r&  r.  r0  Ú__classcell__)r2   s   @r#   r)   r)   #   sà  ø€ € € € € ðð ð !Ðð,ð ,ð ,ð ,ð ,ð ,ðBð Bð BðAð Að Að ð	1ð 	1ñ Ôð	1ð#Lð #Lð #Lð #LðJ,,ð ,,ð ,,ð\ ð2ð 2ñ „Xð2ð-ð -ð -ð
&ð &ð &ð ð*ð *ñ „Xð*ðCð Cð CðIð Ið Ið Ið%ð %ð %ðCð Cð Cð@ð @ð @ðQð Qð Qð
	3ð 	3ð 	3ð ,1ð
.ð 
.ð 
.ð 
.ð.ð .ð .ð@ð ð ð:?ð ?ð ?ð2ð 2ð 2ð 2ð 2ð 2ð 2r"   r)   ÚnopythonÚforceobjÚloopliftÚ_nrtÚdebugÚboundscheckÚnogilÚno_rewritesÚno_cpython_wrapperÚno_cfunc_wrapperÚparallelrá   Úerror_modelÚinlineÚforceinlineÚ_dbg_extend_lifetimesÚ_dbg_optnonec                   ó   — e Zd Zd„ ZdS )ÚCPUTargetOptionsc                 óL  — |                      d¦  «        sd|_        |                      d¦  «        sd|_        |                     dd¬¦  «         |                      d¦  «        st          j        |_        |                      d¦  «        s |j        rd|_        nt          j        |_        |                      d¦  «        s|j        |_	        d|_
        |                     d	¦  «         |                     d
d¬¦  «         |                     d¦  «         |j        r	d|_        d S d S )NÚenable_pyobjectTÚenable_loopliftÚnrt)ÚdefaultÚ	debuginfoÚdbg_extend_lifetimesr;  rá   rA  ÚpythonrC  F)Úis_setrI  rJ  Úinherit_if_not_setr	   ÚDEBUGINFO_DEFAULTrM  rN  ÚEXTEND_VARIABLE_LIFETIMESr;  Úenable_pyobject_loopliftrC  Údbg_optnone)r/   ÚflagsÚoptionss      r#   ÚfinalizezCPUTargetOptions.finalizeO  s8  € Ø�|Š|Ð-Ñ.Ô.ð 	)Ø$(ˆEÔ!à�|Š|Ð-Ñ.Ô.ð 	)Ø$(ˆEÔ!à× Ò  °Ð Ñ5Ô5Ð5à�|Š|˜KÑ(Ô(ð 	7Ý$Ô6ˆEŒOà�|Š|Ð2Ñ3Ô3ð 	NØŒð Nð .2�Ô*Ð*õ .4Ô-M�Ô*à�|Š|˜MÑ*Ô*ð 	0Ø %¤ˆEÔà)-ˆÔ&à× Ò  Ñ,Ô,Ð,à× Ò  ¸Ð ÑAÔAÐAà× Ò  Ñ/Ô/Ð/àÔð 	&à %ˆEÔÐÐð	&ð 	&r"   N)r   r   r   rX  r!   r"   r#   rG  rG  N  s#   € € € € € ð"&ð "&ð "&ð "&ð "&r"   rG  )*rE   Úllvmlite.bindingÚbindingrG   Úllvmliter   r    r   Únumba.core.callwrapperr   Únumba.core.baser   r”   r   r   r	   r
   r   r   r   r   r   Únumba.core.optionsr   r   Únumba.core.runtimer   Únumba.core.compiler_lockr   Únumba.core.entrypointsÚnumba.core.cpu_optionsr   r   r   r–   r   Ú	Structurer   r%   r)   Ú_options_mixinrG  r!   r"   r#   ú<module>re     sv  ðØ €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð=ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =à EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ $Ð $Ð $Ð $Ð $Ð $Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø Ð Ð Ð ðDð Dð Dð Dð Dð Dð Dð Dð Dð Dà Ð Ð Ð Ð Ð ð
(ð (ð (ð (ð (�'Ô#ñ (ô (ð (ðð ð ð ð ˆgÔñ ô ð ðP2ð P2ð P2ð P2ð P2�ñ P2ô P2ð P2ðl )Ð(ØØØØ
ØØØØØØØØØØØØØñ#ô €ð*#&ð #&ð #&ð #&ð #&�~ }ñ #&ô #&ð #&ð #&ð #&r"   