Ë
    èÿæi•5  ã                   ó®  — d dl Z d dlZ d dl mZmZ d dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZ d d	lmZ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%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m*Z* d dl-Z.d dl/m0Z0m1Z1m2Z2 d dl3Z3d„ Z4d„ Z5e j                  d„ «       Z6d„ Z7d„ Z8 G d„ de2«      Z9 G d„ de2«      Z:e;dk(  r e3jx                  «        yy)é    N)ÚnjitÚjit)Úir_utils)ÚtypesÚirÚcompiler)Ú
cpu_target)Úcopy_propagateÚapply_copy_propagateÚget_name_var_tableÚremove_delsÚremove_deadÚremove_call_handlersÚalias_func_extensions)Útype_inference_stage)ÚFunctionPassÚregister_passÚPassManager)
ÚExtractByteCodeÚTranslateByteCodeÚ	FixupArgsÚIRProcessingÚDeadBranchPruneÚRewriteSemanticConstantsÚGenericRewritesÚWithLiftingÚ
PreserveIRÚInlineClosureLikes)
ÚNopythonTypeInferenceÚAnnotateTypesÚNopythonRewritesÚPreParforPassÚ
ParforPassÚDumpParforDiagnosticsÚNativeLoweringÚIRLegalizationÚNoPythonBackendr%   )Úskip_parfors_unsupportedÚ
needs_blasÚTestCasec                 ó8   — d}|}| dkD  r||z   }nd}d|z  }|| k  S )Né   r   é   © )ÚbÚzÚwÚx1ÚxÚyÚas          úq/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_remove_dead.pyÚtest_will_propagater7      s3   € Ø	
€BØ
€AØˆ1‚uØ�‰E‰àˆØ	ˆA‰€AØˆq‰5€Ló    c                  ó   — y ©Nr.   )r5   r/   ÚcÚds       r6   Ú	null_funcr=   )   s   € Ø	r8   c                 ó   — | S r:   r.   )ÚAs    r6   Údummy_aliased_funcr@   ,   s   € à€Hr8   c                 óN   — t        j                  | |d   j                  ||«       y ©Nr   )r   Ú
_add_aliasÚname)Úlhs_nameÚargsÚ	alias_mapÚarg_aliasess       r6   Úalias_ext_dummy_funcrI   0   s   € Ü×Ñ˜ $ q¡'§,¡,°	¸;ÕGr8   c                 óð   — | j                   j                  «       D ]Y  \  }}t        |j                  «      D ]<  \  }}t	        |t
        j                  «      sŒ!|j                  j                  |k(  sŒ;  y Œ[ y)NTF)	ÚblocksÚitemsÚ	enumerateÚbodyÚ
isinstancer   ÚAssignÚtargetrD   )Úfunc_irÚvarÚlabelÚblockÚiÚinsts         r6   ÚfindLhsAssignrX   3   s[   € ØŸ™×,Ñ,Ö.‰ˆˆuÜ  §¡Ö,‰GˆAˆtÜ˜$¤§	¡	Õ*¨t¯{©{×/?Ñ/?ÀÓ/DÚñ -ð /ð
 r8   c                   óˆ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zeed„ «       «       Zd„ Zd„ Zd„ Zd„ Zed„ «       Zy)ÚTestRemoveDeadFc                 ó*   —  t        |dd¬«      |«      S )NT)ÚparallelÚfastmath)r   )ÚselfÚfuncÚ	arg_typess      r6   Úcompile_parallelzTestRemoveDead.compile_parallel?   s   € Ø<Œt�I¨°tÔ<¸TÓBÐBr8   c                 óh  — t         j                  }t         j                  }t        j                  t
        «      }|j                  «        |j                  «        t        j                  t        j                  t        j                  f}t        ||||d «      \  }}}}t        |j                  «       t        |j                  |«      \  }}	t        |j                  |t        |j                  «      ||«       t        |j                  |j                   |«       | j#                  t%        |d«      «       y )Nr3   )r	   Útyping_contextÚtarget_contextr   Úrun_frontendr7   Úrefreshr   Úint64r   r   rK   r
   r   r   r   Ú	arg_namesÚassertFalserX   )
r^   Ú	typingctxÚ	targetctxÚtest_irrF   ÚtypemapÚ_Ú	calltypesÚin_cpsÚout_cpss
             r6   Útest1zTestRemoveDead.test1B   sá   € Ü×-Ñ-ˆ	Ü×-Ñ-ˆ	Ü×'Ñ'Ô(;Ó<ˆà×ÑÔØ×ÑÔÜ—‘œUŸ[™[¬%¯+©+Ð6ˆÜ#7¸	À9ÈgÐW[Ð]aÓ#bÑ ˆ��I˜qÜ�G—N‘NÔ#Ü(¨¯©¸ÓA‰ˆ�Ü˜WŸ^™^¨VÔ5GÈÏÉÓ5WÐY`ÐbkÔlä�G—N‘N G×$5Ñ$5°wÔ?Ø×Ñœ w°Ó4Õ5r8   c                 óª   — d„ }d„ }t        j                  |«      }t        |j                  |j                  |«       | j                   ||«      «       y )Nc                  óB   — t         j                  j                  d«       y ©Nr-   )ÚnpÚrandomÚseedr.   r8   r6   Úcall_np_random_seedz1TestRemoveDead.test2.<locals>.call_np_random_seedS   s   € Ü�I‰I�N‰N˜1Õr8   c                 ó\  — | j                   d   j                  D ]�  }t        |t        j                  «      sŒt        |j
                  t        j                  «      sŒC|j
                  j                  dk(  sŒ]| j                  |j
                  j                  «      j                  dk(  sŒ� y y)Nr   Úcallrx   TF)rK   rN   rO   r   rP   ÚvalueÚExprÚopÚget_definitionr_   Úattr)rR   rW   s     r6   Úseed_call_existsz.TestRemoveDead.test2.<locals>.seed_call_existsV   st   € ØŸ™ qÑ)×.Ô.�Ü˜t¤R§Y¡YÕ/Ü˜tŸz™z¬2¯7©7Õ3Ø—J‘J—M‘M VÓ+Ø×*Ñ*¨4¯:©:¯?©?Ó;×@Ñ@ÀFÓJÙð /ð r8   )r   re   r   rK   rh   Ú
assertTrue)r^   ry   r�   rl   s       r6   Útest2zTestRemoveDead.test2R   sG   € ò	ò	ô ×'Ñ'Ð(;Ó<ˆÜ�G—N‘N G×$5Ñ$5°wÔ?Ø�‰Ñ(¨Ó1Õ2r8   c                 óJ  — t        j                  d«      j                  dd«      }|j                  «       }d}| j	                  |t        j                  |«      t        j                  |«      f«      } |||«        |||«       t         j                  j                  ||«       y )Né   r-   r,   r   )	rv   ÚarangeÚreshapeÚcopyra   ÚnumbaÚtypeofÚtestingÚassert_array_equal)r^   r_   ÚA1ÚA2rV   Úpfuncs         r6   Úrun_array_index_testz#TestRemoveDead.run_array_index_testc   sz   € Ü�Y‰Y�q‹\×!Ñ! ! AÓ&ˆØ�W‰W‹YˆØˆØ×%Ñ% d¬U¯\©\¸"Ó-=¼u¿|¹|ÈA»Ð,OÓPˆáˆR�ŒÙˆb�!ŒÜ
�
‰
×%Ñ% b¨"Õ-r8   c                 ó,   — d„ }| j                  |«       y )Nc                 ó.   — | j                  «       }d||<   y ©Nr,   )Úravel©r?   rV   ÚBs      r6   r_   z-TestRemoveDead.test_alias_ravel.<locals>.funcn   s   € Ø—‘“	ˆAØˆAˆaŠDr8   ©r�   ©r^   r_   s     r6   Útest_alias_ravelzTestRemoveDead.test_alias_ravelm   ó   € ò	ð 	×!Ñ! $Õ'r8   c                 ó,   — d„ }| j                  |«       y )Nc                 ó&   — | j                   }d||<   y r“   )Úflatr•   s      r6   r_   z,TestRemoveDead.test_alias_flat.<locals>.funcu   s   € Ø—‘ˆAØˆAˆaŠDr8   r—   r˜   s     r6   Útest_alias_flatzTestRemoveDead.test_alias_flatt   rš   r8   c                 ó,   — d„ }| j                  |«       y )Nc                 ó*   — | j                   }d||df<   y ©Nr,   r   )ÚTr•   s      r6   r_   z2TestRemoveDead.test_alias_transpose1.<locals>.func|   s   € Ø—‘ˆAØˆAˆa�ˆcŠFr8   r—   r˜   s     r6   Útest_alias_transpose1z$TestRemoveDead.test_alias_transpose1{   ó   € ò	ð 	×!Ñ! $Õ'r8   c                 ó,   — d„ }| j                  |«       y )Nc                 ó2   — | j                  «       }d||df<   y r¡   )Ú	transposer•   s      r6   r_   z2TestRemoveDead.test_alias_transpose2.<locals>.funcƒ   s   € Ø—‘“ˆAØˆAˆa�ˆcŠFr8   r—   r˜   s     r6   Útest_alias_transpose2z$TestRemoveDead.test_alias_transpose2‚   r¤   r8   c                 ó,   — d„ }| j                  |«       y )Nc                 ó<   — t        j                  | «      }d||df<   y r¡   )rv   r§   r•   s      r6   r_   z2TestRemoveDead.test_alias_transpose3.<locals>.funcŠ   s   € Ü—‘˜Q“ˆAØˆAˆa�ˆcŠFr8   r—   r˜   s     r6   Útest_alias_transpose3z$TestRemoveDead.test_alias_transpose3‰   r¤   r8   c                 óæ  ‡— ddl m}  |«       j                  t        j                  «      Šˆfd„}t
        d d  }t        j                  |«       ˆfd„}t        j                  d«      }|j                  «       }	 | j                  |t        j                  |«      f«      } t        j                  |«      |«        ||«       |t
        d d  | j                  |d   |d   «       y # |t
        d d  w xY w)Nr   )Ú_BLASc                 óH   •— |‰gk(  r| j                   d   j                  |vS y)Né   F)rF   rD   )ÚrhsÚlivesÚ	call_listÚxxnrm2s      €r6   Úremove_dead_xxnrm2z<TestRemoveDead.test_alias_ctypes.<locals>.remove_dead_xxnrm2—   s)   ø€ Ø˜V˜HÒ$Ø—x‘x ‘{×'Ñ'¨uÐ4Ð4Ør8   c                 óp   •— t        j                  d«      } ‰dd|j                  d| j                  «       y )Nr¯   éd   é   )rv   ÚonesÚctypes)Úretr5   r³   s     €r6   r_   z.TestRemoveDead.test_alias_ctypes.<locals>.func¡   s(   ø€ Ü—‘˜“
ˆAÙ�3˜˜1Ÿ8™8 Q¨¯
©
Õ3r8   r·   )Únumba.np.linalgr­   Únumba_xxnrm2r   Úfloat64r   Úappendrv   Úzerosrˆ   ra   r‰   rŠ   r   ÚassertEqual)	r^   r­   r´   Úold_remove_handlersr_   r�   rŽ   r�   r³   s	           @r6   Útest_alias_ctypesz TestRemoveDead.test_alias_ctypes�   sÏ   ø€ õ 	*Ù“×%Ñ%¤e§m¡mÓ4ˆô	ô 3±1Ð5ÐÜ×#Ñ#Ð$6Ô7ô	4ô �X‰X�a‹[ˆØ�W‰W‹Yˆð	:Ø×)Ñ)¨$´·±¸bÓ1AÐ0CÓDˆEØŒE�J‰J�tÓ˜RÔ Ù�"ŒIð ':Ô ¡Ð#à×Ñ˜˜A™  1¡Õ&øð ':Ô ¡Ñ#ús   Á:A	C% Ã%C0c                 ó,   — d„ }| j                  |«       y )Nc                 ó>   — t        j                  | d«      }d||df<   y )N)r,   r-   r,   r   )rv   r‡   r•   s      r6   r_   z0TestRemoveDead.test_alias_reshape1.<locals>.func³   s   € Ü—
‘
˜1˜eÓ$ˆAØˆAˆa�ˆcŠFr8   r—   r˜   s     r6   Útest_alias_reshape1z"TestRemoveDead.test_alias_reshape1²   r¤   r8   c                 ó,   — d„ }| j                  |«       y )Nc                 ó6   — | j                  dd«      }d||df<   y )Nr,   r-   r   )r‡   r•   s      r6   r_   z0TestRemoveDead.test_alias_reshape2.<locals>.funcº   s   € Ø—	‘	˜!˜A“ˆAØˆAˆa�ˆcŠFr8   r—   r˜   s     r6   Útest_alias_reshape2z"TestRemoveDead.test_alias_reshape2¹   r¤   r8   c                 ó¦   — d„ }t        j                  «       }	 t        t         d<   | j                  |«       |t        _         y # |t        _         w xY w)Nc                 ó(   — t        | «      }d||df<   y r¡   )r@   r•   s      r6   r_   z0TestRemoveDead.test_alias_func_ext.<locals>.funcÁ   s   € Ü" 1Ó%ˆAØˆAˆa�ˆdŠGr8   )r@   znumba.tests.test_remove_dead)r   rˆ   rI   r�   r   )r^   r_   Úold_ext_handlerss      r6   Útest_alias_func_extz"TestRemoveDead.test_alias_func_extÀ   sQ   € ò	ô
 1×5Ñ5Ó7Ðð	>ä3Gô "ð #0ñ 1à×%Ñ% dÔ+ð .>ŒHÕ*øÐ-=ŒHÕ*ús   ™A ÁAc                 óh   — d„ }| j                   |«        t        j                  |«      «       «       y)zimake sure lhs variable of assignment is considered live if used in
        rhs (test for #6715).
        c                  ób   — t        d«      D ]   }  d„ | «      }t        j                  |«      }Œ" S )Nr,   c                 ó   — | S r:   r.   )Újs    r6   Ú<lambda>zDTestRemoveDead.test_rm_dead_rhs_vars.<locals>.func.<locals>.<lambda>Õ   s   € ™qr8   )Úrangerv   Úarray)rV   r5   s     r6   r_   z2TestRemoveDead.test_rm_dead_rhs_vars.<locals>.funcÓ   s.   € Ü˜1–X�Ú  !Ó$�Ü—H‘H˜Q“K‘ð ð ˆHr8   N)rÀ   r‰   r   r˜   s     r6   Útest_rm_dead_rhs_varsz$TestRemoveDead.test_rm_dead_rhs_varsÏ   s*   € ò	ð 	×Ñ™›Ð!1¤§¡¨DÓ!1Ó!3Õ4r8   c                 ó
  — d„ }t        dd¬«       G d„ dt        «      «       } G d„ dt        j                  «      }  t	        j
                  |¬	«      |«      «       } |«       }t        j                  j                  ||«       y
)zWMake sure aliases are considered in remove dead extension for
        parfors.
        c                  óÆ   — d} t         j                  j                  j                  «        t	        j
                  | «      }|}t        j                  | «      D ]  }|||<   Œ	 |S )Né   )r‰   ÚparforsÚparforÚinit_prangerv   ÚemptyÚprange)Únr?   r–   rV   s       r6   r_   z8TestRemoveDead.test_alias_parfor_extension.<locals>.funcà   sQ   € ØˆAÜ�M‰M× Ñ ×,Ñ,Ô.Ü—‘˜“ˆAØˆAÜ—\‘\ !–_�Ø��!’ð %ð ˆHr8   FT)Úanalysis_onlyÚmutates_CFGc                   ó   — e Zd ZdZd„ Zd„ Zy)úATestRemoveDead.test_alias_parfor_extension.<locals>.LimitedParforÚlimited_parforc                 ó.   — t        j                  | «       y r:   )r   Ú__init__)r^   s    r6   rä   zJTestRemoveDead.test_alias_parfor_extension.<locals>.LimitedParfor.__init__î   s   € Ü×%Ñ% dÕ+r8   c                 ób  — t         j                  j                  j                  |j                  |j
                  |j                  |j                  |j                  |j                  j                  |j                  |j                  |j                  «	      }t        |j                  j                  «       |j                  j!                  |j                  j                  «       |j#                  |j                  j                  «       t%        |j                  j                  |j                  j&                  |j                  |j
                  «       t         j                  j                  j)                  |j                  j                  |j*                  j,                  |j.                  «       y)NT)r‰   rØ   rÙ   r#   rR   rm   ro   Úreturn_typerj   ÚflagsÚauto_parallelÚmetadataÚparfor_diagnosticsr   rK   Úarray_analysisÚrunÚ_convert_loopr   rh   Úget_parfor_paramsÚoptionsÚfusionÚnested_fusion_info)r^   ÚstateÚparfor_passs      r6   Úrun_passzJTestRemoveDead.test_alias_parfor_extension.<locals>.LimitedParfor.run_passñ   s"  € Ü#Ÿm™m×2Ñ2×=Ñ=Ø—M‘MØ—M‘MØ—O‘OØ×%Ñ%Ø—O‘OØ—K‘K×-Ñ-Ø—K‘KØ—N‘NØ×,Ñ,ó
�ô ˜EŸM™M×0Ñ0Ô1Ø×*Ñ*×.Ñ.¨u¯}©}×/CÑ/CÔDØ×)Ñ)¨%¯-©-×*>Ñ*>Ô?Ü˜EŸM™M×0Ñ0Ø!ŸM™M×3Ñ3Ø!ŸM™MØ!ŸM™Mô+ô —‘×$Ñ$×6Ñ6°u·}±}×7KÑ7KØ0;×0CÑ0C×0JÑ0JØ0;×0NÑ0NôPð r8   N)Ú__name__Ú
__module__Ú__qualname__Ú_namerä   rô   r.   r8   r6   ÚLimitedParforrá   ê   s   „ à$ˆEò,ór8   rù   c                   ó   — e Zd ZdZd„ Zy)ú@TestRemoveDead.test_alias_parfor_extension.<locals>.TestPipelinezÀTest pipeline that just converts prange() to parfor and calls
            remove_dead(). Copy propagation can replace B in the example code
            which this pipeline avoids.
            c                 óf  — d}t        |«      }|j                  t        d«       |j                  t        d«       |j                  t        d«       |j                  t
        d«       | j                  j                  j                  sB|j                  t        d«       |j                  t        d«       |j                  t        d«       |j                  t        d	«       |j                  t        d
«       |j                  t        d«       |j                  t        d«       |j!                  «        |gS )Nztest parfor aliasingzanalyzing bytecodezfix up argszprocessing IRzHandle with contextsznopython rewriteszrewrite semantic constantszdead branch pruningz(inline calls to locally defined closuresznopython frontendznative loweringznopython mode backend)r   Úadd_passr   r   r   r   rò   rç   Úno_rewritesr   r   r   r   r   r%   r'   Úfinalize)r^   rD   Úpms      r6   Údefine_pipelineszQTestRemoveDead.test_alias_parfor_extension.<locals>.TestPipeline.define_pipelines  sâ   € Ø-�Ü  Ó&�Ø—‘Ô-Ð/CÔDØ—‘œI }Ô5Ø—‘œL¨/Ô:Ø—‘œKÐ)?Ô@à—z‘z×'Ñ'×3Ò3Ø—K‘K¤Ð1DÔEØ—K‘KÔ 8Ð:VÔWØ—K‘K¤Ð1FÔGØ—‘Ô.ØFôHð —‘Ô1Ð3FÔGð —‘œNÐ,=Ô>Ø—‘œOÐ-DÔEØ—‘”Ø�t�r8   N)rõ   rö   r÷   Ú__doc__r  r.   r8   r6   ÚTestPipelinerû   	  s   „ ñór8   r  )Úpipeline_classN)	r   r   r   ÚCompilerr‰   r   rv   r‹   rŒ   )r^   r_   rù   r  Útest_resÚpy_ress         r6   Útest_alias_parfor_extensionz*TestRemoveDead.test_alias_parfor_extensionÛ   st   € ò
	ô 
 U¸Ô	=ô	œLó 	ó 
>ð	ô<	œ8×,Ñ,ô 	ð8 @Ð9”5—9‘9¨LÔ9¸$Ó?ÓAˆÙ“ˆÜ
�
‰
×%Ñ% h°Õ7r8   N)rõ   rö   r÷   Ú_numba_parallel_test_ra   rr   rƒ   r�   r™   rž   r£   r¨   r«   r(   r)   rÂ   rÅ   rÈ   rÌ   rÔ   r  r.   r8   r6   rZ   rZ   ;   s}   „ à!ÐòCò6ò 3ò".ò(ò(ò(ò(ò(ð Øñ'ó ó ð'ò@(ò(ò>ò
5ð ñK8ó ñK8r8   rZ   c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestSSADeadBranchPrunez?
    Test issues that required dead-branch-prune on SSA IR
    c                 ó¸   — t         dd„«       }t         dd„«       }| j                   |dd «       |dd «      «       | j                   |dd«       |dd«      «       y )Nc                 ó   — |�| |z   S | }| |z   S r:   r.   )r3   r4   s     r6   Úfooz3TestSSADeadBranchPrune.test_issue_9706.<locals>.foo/  s   € àˆ}Ø˜1‘u�à�Ø˜1‘u�r8   c                 ó   — |�| |z   S | }| |z   S r:   r.   )r3   r4   Úy_s      r6   Úfoo_manual_ssaz>TestSSADeadBranchPrune.test_issue_9706.<locals>.foo_manual_ssa7  s    € àˆ}Ø˜1‘u�ð �Ø˜2‘v�r8   r,   é
   r:   )r   rÀ   )r^   r  r  s      r6   Útest_issue_9706z&TestSSADeadBranchPrune.test_issue_9706.  sd   € Ü	ò	ó 
ð	ô 
ò	ó 
ð	ð 	×Ñ™˜Q ›¡~°a¸Ó'>Ô?Ø×Ñ™˜Q ›¡^°A°rÓ%:Õ;r8   c                 ór  — t         dd„«       } |t        j                  g d¢«      «      }t        j                  dd¬«      } |t        j                  g d¢«      |¬«      }| j	                  ||«       | j                  ||«       d } |t        j                  g d¢«      |¬«      }| j                  ||«       y )Nc                 óœ   — | j                   \  }|€t        j                  |«      }n t        j                  d|k  ||k  z  «      sJ ‚||d d  |S rB   )Úshaperv   r†   Úall)ÚxsÚoutÚNs      r6   Úfz1TestSSADeadBranchPrune.test_issue_6541.<locals>.fD  sL   € à—‘‰BˆAØˆ{Ü—i‘i “l‘ä—v‘v˜q C™x¨C°!©GÑ4Ô5Ð5Ð5ØˆC‘ˆFØˆJr8   )r,   r·   r-   r,   Úi8)Údtype)r  r:   )r   rv   rÓ   r†   ÚassertIsÚassertPreciseEqual)r^   r  Úexpectedr  Úgots        r6   Útest_issue_6541z&TestSSADeadBranchPrune.test_issue_6541C  s–   € Ü	ò	ó 
ð	ñ ”R—X‘XšiÓ(Ó)ˆÜ�i‰i˜ Ô&ˆÙ”—‘šÓ#¨Ô-ˆØ�‰�c˜3ÔØ×Ñ  XÔ.ØˆÙ”—‘šÓ#¨Ô-ˆØ×Ñ  XÕ.r8   c                 ó  — t         dd„«       }| j                   |dd ¬«      «       t        dt        j                  d«      t        j
                  d«      ¬«      }| j                   |di |¤Ž |j                  di |¤Ž«       y )Nc                 óF   — |€y t        |«      dk(  r|S | |kD  }||   }||z  S rB   )Úlen)ÚsmthÚweightsÚdefaultÚidxs       r6   Úcomputez7TestSSADeadBranchPrune.test_issue_7482.<locals>.computeX  s8   € àˆØä�7‹|˜qÒ Ø�à˜‘.ˆCØ˜c‘lˆGà˜WÑ$Ð$r8   r·   )r&  r'  é   )r&  r'  r(  )g        r.   )r   ÚassertIsNoneÚdictrv   r†   r¿   rÀ   Úpy_func)r^   r*  Úkwargss      r6   Útest_issue_7482z&TestSSADeadBranchPrune.test_issue_7482W  sr   € Ü	ò
	%ó 
ð
	%ð 	×Ñ™' q°$Ô7Ô8Ü˜1¤b§i¡i°£l¼B¿H¹HÀQ»KÔHˆØ×Ñ™Ñ* 6Ñ*Ø(˜Ÿ™Ñ2¨6Ñ2õ	4r8   c                 óÆ   — t         dd„«       }g d¢}|D ]$  }| j                   ||Ž  |j                  |Ž «       Œ& t         fd„}| j                   |«        |d„ «      «       y )Nc                 ó2   — |€d}| |z   S || k  r|dz  }| |z   S ©Nr·   r.   )r5   r/   s     r6   r  z3TestSSADeadBranchPrune.test_issue_5661.<locals>.fook  s2   € àˆyØ�ð �q‘5ˆLð �Q’Ø�Q‘�à�q‘5ˆLr8   ))r·   r-   )r-   r·   )r·   c                 ó6   ‡— | d„ «       Š| ˆfd„«       } |«       S )Nc                 ó   — | €d} | S | dz  } | S )Nr   r·   r.   )rò   s    r6   ÚinnerzCTestSSADeadBranchPrune.test_issue_5661.<locals>.make.<locals>.inner  s#   € à�=Ø�Eð �ð ˜Q‘J�EØ�r8   c                  ó<   •— d } t        d«      D ]
  } ‰| «      } Œ | S )Nr  )rÒ   )rò   rV   r6  s     €r6   Úfnz@TestSSADeadBranchPrune.test_issue_5661.<locals>.make.<locals>.fn‡  s$   ø€ à�Ü˜rž�AÙ! %›L‘Eð #à�r8   r.   )Údecorr8  r6  s     @r6   Úmakez4TestSSADeadBranchPrune.test_issue_5661.<locals>.make~  s2   ø€ Øñó ðð óó ðñ “4ˆKr8   c                 ó   — | S r:   r.   )r3   s    r6   rÑ   z8TestSSADeadBranchPrune.test_issue_5661.<locals>.<lambda>�  s   € ±r8   r:   )r   rÀ   r.  )r^   r  Ú	args_listrF   r:  s        r6   Útest_issue_5661z&TestSSADeadBranchPrune.test_issue_5661j  si   € Ü	ò	ó 
ð	ò
ˆ	ó
 ˆDØ×Ñ™S $˜Z¨¨¯©°dÐ);Õ<ð ô
 ó 	ð$ 	×Ñ™›¡¡kÓ!2Õ3r8   c                 óp   ‡— dŠt         ˆfd„«       }| j                   |«       |j                  «       «       y )Né    c                  óL   •— ‰dz  } g }| r|j                  | «       | dz  } | rŒ|S ru   ©r¾   )ÚconditionalÚcollectÚCONSTs     €r6   r  z3TestSSADeadBranchPrune.test_issue_9742.<locals>.foo•  s8   ø€ ð   1™*ˆKØˆGÙØ—‘˜{Ô+Ø Ñ!�ò ð ˆNr8   ©r   rÀ   r.  ©r^   r  rD  s     @r6   Útest_issue_9742z&TestSSADeadBranchPrune.test_issue_9742’  s4   ø€ Øˆä	ó		ó 
ð		ð 	×Ñ™› §¡£Õ.r8   c                 óp   ‡— dŠt         ˆfd„«       }| j                   |«       |j                  «       «       y )Nr?  c                  ó<   •— g } ‰dz   }|r| j                  |«       | S r3  rA  )rC  r3   rD  s     €r6   r  z;TestSSADeadBranchPrune.test_issue_9742_variant.<locals>.foo¦  s'   ø€ àˆGð ˜‘	ˆAÙØ—‘˜qÔ!ØˆNr8   rE  rF  s     @r6   Útest_issue_9742_variantz.TestSSADeadBranchPrune.test_issue_9742_variant£  s4   ø€ Øˆä	ó	ó 
ð	ð 	×Ñ™› §¡£Õ.r8   N)
rõ   rö   r÷   r  r  r"  r0  r=  rG  rJ  r.   r8   r6   r  r  *  s&   „ ñò<ò*/ò(4ò&&4òP/ó"/r8   r  Ú__main__)=r‰   Únumba.parfors.parforr   r   Ú
numba.corer   r   r   r   Únumba.core.registryr	   Únumba.core.ir_utilsr
   r   r   r   r   r   r   Únumba.core.typed_passesr   Únumba.core.compiler_machineryr   r   r   Únumba.core.untyped_passesr   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   Únumpyrv   Únumba.tests.supportr(   r)   r*   Úunittestr7   r=   r@   rI   rX   rZ   r  rõ   Úmainr.   r8   r6   Ú<module>rW     sÐ   ðó Û ß Ý ß +Ñ +Ý *÷I÷ Iñ Iõ 9ß RÑ R÷J÷ J÷ J÷
L÷ L÷ Ló ß NÑ NÛ òò
ð ‡�ñó ðòHòôl8�Xô l8ô^F/˜Xô F/ðR ˆzÒØ€H‡M�M…Oð r8   