ó
    „ñ:in‘  ã                   ó|  • S SK r S SKrS SKrS SKJrJrJr  S SK	J
r
JrJr  S SKJrJrJrJrJrJr  S SKJr  S SKJr  S SKJrJrJrJr  S SKJrJr  S S	KJrJ r J!r!J"r"J#r#  S S
KJ$r$J%r%J&r&  S SK'J(r(  Sq)\" 5       r*S\*l+        S r, " S S\\5      r- " S S\-\5      r. " S S\-\5      r/ " S S\\5      r0 " S S\-5      r1g)é    N)Úrun_frontendÚFlagsÚ	StateDict)ÚjitÚnjitÚliteral_unroll)ÚtypesÚerrorsÚirÚrewritesÚir_utilsÚcpu)Úpostproc)ÚInlineClosureCallPass)ÚTestCaseÚMemoryLeakMixinÚSerialMixinÚIRPreservingTestPipeline)Údead_branch_pruneÚrewrite_semantic_constants)ÚReconstructSSAÚTranslateByteCodeÚIRProcessingÚDeadBranchPruneÚ
PreserveIR)ÚDefaultPassBuilderÚCompilerBaseÚPassManager)Ú	PYVERSIONé{   Tc                 óÊ   • [        U 5      n[        5       nXl        S Ul        S Ul        [        5       R                  U5        [        R                  R                  SU5        U$ )Nzbefore-inference)
r   r   Úfunc_irÚtypemapÚ	calltypesr   Úrun_passr   Úrewrite_registryÚapply)Úfuncr"   Ústates      Ú\/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_analysis.pyÚcompile_to_irr+      sS   € Ü˜4Ó €GÜ‹K€EØ„MØ€E„MØ€E„OäÓ×Ñ˜eÔ$ä×Ñ×#Ñ#Ð$6¸Ô>Ø€Nó    c                   ó(   • \ rS rSrSrSrS rS rSrg)ÚTestBranchPruneBaseé(   z
Tests branch pruning
Fc                 óÐ   • / nUR                   R                  5        H@  nUR                  [        R                  S9 Vs/ s H  oDPM     nnUR                  U5        MB     U$ s  snf )N)Úcls)ÚblocksÚvaluesÚ
find_instsr   ÚBranchÚextend)ÚselfÚthe_irÚbranchesÚblkÚ_Útmps         r*   Úfind_branchesÚ!TestBranchPruneBase.find_branches/   s[   € ØˆØ—=‘=×'Ñ'Ö)ˆCØ!Ÿn™n´·±˜nÑ;Ó<Ò;˜’1Ñ;ˆCÐ<Ø�O‰O˜CÖ ñ *ð ˆùò =s   ¿A#c                 ó¬  • [        U5      nUR                  5       nU R                  (       a&  [        S5        [        S5        UR	                  5         [        U[        R                  " S5      5      nUR                  5         [        R                  " U5      n	U	R                  5         [        Xb5        U R                  (       a&  [        S5        [        S5        UR	                  5         [        Xb5        Un
U R                  (       a  [        S5        UR	                  5         U R                  U5      nU R                  [        U5      [        U5      5        / n[!        U5       H•  u  pÓX½   nUSL a  UR#                  UR$                  5        M+  USL a  UR#                  UR&                  5        MM  Uc  MR  US:X  a8  UR#                  UR&                  5        UR#                  UR$                  5        M�   S5       e   [)        UR*                  R-                  5        Vs/ s H  oÿPM     sn5      n[)        U
R*                  R-                  5        Vs/ s H  oÿPM     sn5      n U R                  UU[)        U5      -
  5        UR3                  SSS05      n[5        U40 UD6" U5      R6                  U   nUc  UR9                  5       nU" 5       nOUR8                  " U6 nU" U6 nU R                  UU5        g s  snf s  snf ! [.         aF  n[        S	[1        U5      5        [        S
[1        U5      5        [        S[1        U5      5        UeS nAff = f)NúP================================================================================zbefore inlineFúbefore pruneúafter pruneTÚbothÚunreachableÚ
new_labelsÚoriginal_labelsÚexpect_removedÚflagsÚnopython)r+   ÚcopyÚ_DEBUGÚprintÚdumpr   r   ÚParallelOptionsÚrunr   ÚPostProcessorr   r   r=   ÚassertEqualÚlenÚ	enumerateÚappendÚtruebrÚfalsebrÚsetr2   ÚkeysÚAssertionErrorÚsortedÚpopr   Ú	overloadsÚentry_point)r7   r(   Úargs_tysÚpruneÚargsÚkwargsr"   ÚbeforeÚinline_passÚ	post_procÚafterÚbefore_branchesrG   ÚidxÚbranchr;   rF   rE   ÚeÚsupplied_flagsÚcresÚresÚexpecteds                          r*   Úassert_pruneÚ TestBranchPruneBase.assert_prune6   s·  € ô   Ó%ˆØ—‘“ˆØ�;�;Ü�(ŒOÜ�/Ô"Ø�L‰LŒNô ,¨GÜ,/×,?Ò,?ÀÓ,FóIˆà�‰Ôô ×*Ò*¨7Ó3ˆ	Ø�‰Œä" 7Ô5Ø�;�;Ü�(ŒOÜ�.Ô!Ø�L‰LŒNä˜'Ô,àˆØ�;�;Ü�-Ô Ø�L‰LŒNà×,Ñ,¨VÓ4ˆØ×Ñœ˜_Ó-¬s°5«zÔ:ð ˆÜ# EÖ*‰JˆCØ$Ñ)ˆFØ˜Š}Ø×%Ñ% f§m¡mÖ4Ø˜%’Ø×%Ñ% f§n¡nÖ5Ø‘ÙØ˜&“Ø×%Ñ% f§n¡nÔ5Ø×%Ñ% f§m¡mÖ4à'˜-Ó'�qñ +ô ¨&¯-©-×*<Ñ*<Ô*>Ó?Ò*> QšqÑ*>Ñ?Ó@ˆÜ U§\¡\×%6Ñ%6Ô%8Ó9Ò%8 š!Ñ%8Ñ9Ó:ˆ
ð	Ø×Ñ˜Z¨¼3¸~Ó;NÑ)NÔOð  Ÿ™ G¨j¸$Ð-?Ó@ˆä�8Ñ.˜~Ò.¨tÓ4×>Ñ>¸xÑHˆØ‰<Ø×"Ñ"Ó$ˆCÙ“v‰Hà×"Ò" DÐ)ˆCÙ˜T�{ˆHØ×Ñ˜˜hÕ'ùò+ @ùÚ9øô
 ó 	Ü�,¤ zÓ 2Ô3ÜÐ#¤V¨OÓ%<Ô=ÜÐ"¤F¨>Ó$:Ô;ØˆGûð		ús%   È K9ÉK>É&L Ì
MÌAMÍM© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rK   r=   rn   Ú__static_attributes__rp   r,   r*   r.   r.   (   s   † ñð €FòõU(r,   r.   c                   óŒ   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rSrg)ÚTestBranchPruneéŽ   c                 óp  • S nU R                  U[        R                  " S5      4S/S 5        S nU R                  U[        R                  " S5      4S/S 5        S nU R                  U[        R                  " S5      4S/S 5        U R                  U[        R                  " S5      4S/S5        S nU R                  U[        R                  " S5      4S/S 5        U R                  U[        R                  " S5      4S /S5        S	 nU R                  U[        R                  " S5      4S/S 5        U R                  U[        R                  " S5      4S /S5        S
 nU R                  U[        R                  " S5      4S/S 5        U R                  U[        R                  " S5      4S/S5        g )Nc                 ó   • SS:X  a  gg )Né   r   çn†ðù!	@rp   ©Úxs    r*   ÚimplÚ,TestBranchPrune.test_single_if.<locals>.impl’   ó   € Ø�A‹vØð r,   ÚnoneTc                 ó   • SS:X  a  gg )Nr|   r}   rp   r~   s    r*   r€   r�   ˜   r‚   r,   Fc                 ó   • U c  gg ©Nr}   rp   r~   s    r*   r€   r�   ž   s   € Ø‰yØð r,   é
   c                 ó   • U S:X  a  gg ©Nr‡   r}   rp   r~   s    r*   r€   r�   ¥   s   € Ø�B‹wØð r,   c                 ó   • U S:X  a  Sng g r‰   rp   )r   Úzs     r*   r€   r�   ¬   s   € Ø�B‹wØ‘ð r,   c                 ó   • S nUnX:X  a  gg )Néd   rp   )r   r‹   Úys      r*   r€   r�   ³   s   € ØˆAØˆAØ‹vØð r,   ©rn   r	   ÚNoneTypeÚIntegerLiteral©r7   r€   s     r*   Útest_single_ifÚTestBranchPrune.test_single_if�   sˆ  € ò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸D¸6À4ÔHò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸E¸7ÀDÔIò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸E¸7ÀDÔIØ×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸d¸VÀRÔHò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸D¸6À4ÔHØ×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸d¸VÀRÔHò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸D¸6À4ÔHØ×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸d¸VÀRÔHò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸E¸7ÀDÔIØ×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸d¸VÀRÕHr,   c                 ó²   • S nU R                  U[        R                  " S5      4S/S 5        U R                  U[        R                  " S5      4S/S5        g )Nc                 ó   • U c  gg©Nr}   çl&ßlsãù?rp   r~   s    r*   r€   Ú1TestBranchPrune.test_single_if_else.<locals>.impl¾   s   € Ø‰yØàr,   rƒ   Fr‡   Tr�   r’   s     r*   Útest_single_if_elseÚ#TestBranchPrune.test_single_if_else¼   sO   € ò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸E¸7ÀDÔIØ×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸d¸VÀRÕHr,   c                 ó`  • S nU R                  U[        R                  " S5      4S/S 5        U R                  U[        R                  " S5      4S /S5        S nU R                  U[        R                  " S5      4S/S 5        U R                  U[        R                  " S5      4S /S5        g )Nc                 ó   • U S:X  a  gg ©Nr�   r}   rp   r~   s    r*   r€   Ú6TestBranchPrune.test_single_if_const_val.<locals>.implÉ   s   € Ø�C‹xØð r,   rƒ   Tr�   c                 ó   • SU :X  a  gg rž   rp   r~   s    r*   r€   rŸ   Ð   s   € à�a‹xØð r,   r�   r’   s     r*   Útest_single_if_const_valÚ(TestBranchPrune.test_single_if_const_valÇ   sœ   € ò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸D¸6À4ÔHØ×Ñ˜$¤×!5Ò!5°cÓ!:Ð <¸t¸fÀcÔJò	ð
 	×Ñ˜$¤§¢°Ó!7Ð 9¸D¸6À4ÔHØ×Ñ˜$¤×!5Ò!5°cÓ!:Ð <¸t¸fÀcÕJr,   c                 óÂ  • S nU R                  U[        R                  " S5      4S-  S /SS5        U R                  U[        R                  " S5      4S-  S/S S 5        U R                  U[        R                  " S5      [        R                  " S5      4S/SS 5        U R                  U[        R                  " S5      [        R                  " S5      4S /SS5        g )Nc                 ó   • X:X  a  ggr—   rp   )r   rŽ   s     r*   r€   Ú?TestBranchPrune.test_single_if_else_two_const_val.<locals>.implÚ   s   € Ø‹vØàr,   r�   é   rƒ   FTéè  )rn   r	   r‘   r�   r’   s     r*   Ú!test_single_if_else_two_const_valÚ1TestBranchPrune.test_single_if_else_two_const_valØ   sÕ   € ò	ð 	×Ñ˜$¤×!5Ò!5°cÓ!:Ð <¸qÑ @À4À&È#Øô	à×Ñ˜$¤§¢°Ó!7Ð 9¸AÑ =À¸wÈØô	 à×Ñ˜$¤×!5Ò!5°cÓ!:Ü!&§¢°Ó!7ð!:Ø<@¸6À3Èô	Nà×Ñ˜$¤×!5Ò!5°cÓ!:Ü!&×!5Ò!5°dÓ!;ð!=Ø?C¸fÀcÈ4õ	Qr,   c                 óh  • S nU R                  U[        R                  " S5      4SS /S 5        U R                  U[        R                  " S5      4SS /S5        S nU R                  U[        R                  " S5      4SS /S 5        U R                  U[        R                  " S5      4SS /S5        g )Nc                 ó4   • SnU c  SnOSnU(       a  SnU$ SnU$ )NFTé   r‡   éýÿÿÿrp   )r   Úx_is_none_workÚdeadrŽ   s       r*   r€   ÚJTestBranchPrune.test_single_if_else_w_following_undetermined.<locals>.implë   s1   € Ø"ˆNØ‰yØ!%‘à�æØ�ð ˆHð �ØˆHr,   rƒ   Fr‡   Tc                 ó2   • SnU c  SnO U(       a  SnU$ SnU$ )NFTr‡   r­   rp   )r   r®   rŽ   s      r*   r€   r°   û   s/   € Ø"ˆNØ‰yØ!%‘àæØ�ð ˆHð �ØˆHr,   r�   r’   s     r*   Ú,test_single_if_else_w_following_undeterminedÚ<TestBranchPrune.test_single_if_else_w_following_undeterminedé   s©   € ò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸EÀ4¸=È$ÔOØ×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸dÀD¸\È2ÔNò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸EÀ4¸=Øô	 ð 	×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸dÀD¸\È2ÕNr,   c                 ó¶   • S nU R                  U[        R                  " S5      4SS /S 5        U R                  U[        R                  " S5      4SS /S5        g )Nc                 ó8   • SnSnU c  SnOSnX!:X  a  SnXB4$ SnXB4$ )Nr�   é   r¬   r‡   r­   rp   )r   Úone_hundredr®   r¯   rŽ   s        r*   r€   Ú:TestBranchPrune.test_double_if_else_rt_const.<locals>.impl  sA   € ØˆKØˆNØ‰yØ!$‘à�àÓ,Ø�ð Ð$Ð$ð �àÐ$Ð$r,   rƒ   Fr‡   Tr�   r’   s     r*   Útest_double_if_else_rt_constÚ,TestBranchPrune.test_double_if_else_rt_const  sS   € ò	%ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸EÀ4¸=È$ÔOØ×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸dÀD¸\È2ÕNr,   c                 ó²   • S nU R                  U[        R                  " S5      4S /S5        U R                  U[        R                  " S5      4S /S5        g )Nc                 ó    • SnX:X  a  SnU$ SnU$ )Nr�   r}   r˜   rp   )r   r·   rŽ   s      r*   r€   ÚCTestBranchPrune.test_double_if_else_non_literal_const.<locals>.impl%  s%   € ØˆKØÓØ�ð ˆHð �ØˆHr,   r‡   r�   ©rn   r	   r‘   r’   s     r*   Ú%test_double_if_else_non_literal_constÚ5TestBranchPrune.test_double_if_else_non_literal_const#  sQ   € ò	ð 	×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸d¸VÀRÔHØ×Ñ˜$¤×!5Ò!5°cÓ!:Ð <¸t¸fÀcÕJr,   c                 ó¶   • S nU R                  U[        R                  " S5      4SS/S 5        U R                  U[        R                  " S5      4SS/S5        g )Nc                 ó,   • U c  SnOSnU b  SnX!4$ SnX!4$ ©Nr‡   r/   r�   é�  rp   ©r   rŽ   r‹   s      r*   r€   Ú@TestBranchPrune.test_single_two_branches_same_cond.<locals>.impl3  ó2   € Ø‰yØ‘à�à‰}Ø�ð �4ˆKð �à�4ˆKr,   rƒ   FTr‡   r�   r’   s     r*   Ú"test_single_two_branches_same_condÚ2TestBranchPrune.test_single_two_branches_same_cond1  sS   € ò	ð 	×Ñ˜$¤§¢°Ó!7Ð 9¸EÀ4¸=È$ÔOØ×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸dÀE¸]ÈBÕOr,   c                 ó  • SS jnU R                  U[        R                  " S 5      4SS/S 5        U R                  U[        R                  " S5      4SS/S 5        U R                  U[        R                  " S5      4SS/S5        g )Nc                 ó,   • U c  SnOSnU b  SnX!4$ SnX!4$ rÃ   rp   rÅ   s      r*   r€   Ú5TestBranchPrune.test_cond_is_kwarg_none.<locals>.implE  rÇ   r,   FTrƒ   r‡   ©N)rn   r	   ÚOmittedr�   r‘   r’   s     r*   Útest_cond_is_kwarg_noneÚ'TestBranchPrune.test_cond_is_kwarg_noneC  sz   € ô	ð 	×Ñ˜$¤§¢¨tÓ!4Ð 6Ø  $˜-¨ô	/à×Ñ˜$¤§¢°Ó!7Ð 9¸EÀ4¸=È$ÔOØ×Ñ˜$¤×!5Ò!5°bÓ!9Ð ;¸dÀE¸]ÈBÕOr,   c                 óf  • SS jnU R                  U[        R                  " S5      4S S /S5        U R                  U[        R                  " S5      4S S /S5        U R                  U[        R                  " S5      4S S /S5        U R                  U[        R                  " S5      4SS/S 5        g )Nr§   c                 ó8   • U S:X  a  SnOSnU S:w  a  SnX!4$ SnX!4$ )Nr§   r‡   r/   r�   rÄ   rp   rÅ   s      r*   r€   Ú6TestBranchPrune.test_cond_is_kwarg_value.<locals>.implY  s6   € Ø�D‹yØ‘à�à�D‹yØ�ð �4ˆKð �à�4ˆKr,   r   rƒ   TF)r§   )rn   r	   rÎ   r‘   r�   r’   s     r*   Útest_cond_is_kwarg_valueÚ(TestBranchPrune.test_cond_is_kwarg_valueW  s    € ô	ð 	×Ñ˜$¤§¢¨tÓ!4Ð 6¸¸t¸ÀdÔKØ×Ñ˜$¤×!5Ò!5°dÓ!;Ð =ÀÀd¸|Øô	 à×Ñ˜$¤×!5Ò!5°aÓ!8Ð :¸TÀ4¸LÈ!ÔLØ×Ñ˜$¤§¢°Ó!7Ð 9¸DÀ%¸=È$ÕOr,   c                 ó”   ^ • S nU 4S jnU" U[         R                  " S5      4S5        U" U[         R                  " S5      4S5        g )Nc                 ó   • U c  gg)Nr‡   é   rp   r~   s    r*   ÚfnÚ8TestBranchPrune.test_cond_rewrite_is_correct.<locals>.fno  s   € Ø‰yØØr,   c                 ó   >• [        U 5      nT
R                  U5      nT
R                  [        U5      S5        US   R                  n[
        R                  " X55      nT
R                  UR                  S5        UR                  S   n[
        R                  " X75      nT
R                  UR                  S5        T
R                  (       a&  [        S5        [        S5        UR                  5         [        X15        T
R                  (       a&  [        S5        [        S5        UR                  5         [
        R                  " X75      n	T
R                  [        U	[        R                   5      5        T
R                  U	R"                  U5        g )Nr|   r   ÚcallÚbinopr@   rA   rB   )r+   r=   rQ   rR   Úcondr   Úget_definitionÚopr`   rK   rL   rM   r   Ú
assertTrueÚ
isinstancer   ÚConstÚvalue)r(   Úarg_tysÚbit_valr"   rf   Úpred_varÚ	pred_defnÚcondition_varÚcondition_opÚnew_condition_defnr7   s             €r*   ÚcheckÚ;TestBranchPrune.test_cond_rewrite_is_correct.<locals>.checkt  s&  ø€ Ü# DÓ)ˆGð #×0Ñ0°Ó9ˆOØ×ÑœS Ó1°1Ô5ð ' qÑ)×.Ñ.ˆHÜ ×/Ò/°ÓBˆIØ×Ñ˜YŸ\™\¨6Ô2Ø%ŸN™N¨1Ñ-ˆMÜ#×2Ò2°7ÓJˆLØ×Ñ˜\Ÿ_™_¨gÔ6ð �{�{Ü�h”Ü�nÔ%Ø—‘”Ü˜gÔ/Ø�{�{Ü�h”Ü�mÔ$Ø—‘”ô "*×!8Ò!8¸Ó!PÐØ�O‰OœJÐ'9¼2¿8¹8ÓDÔEØ×ÑÐ/×5Ñ5°wÕ?r,   rƒ   r|   r‡   r   )r	   r�   r‘   )r7   rÙ   rì   s   `  r*   Útest_cond_rewrite_is_correctÚ,TestBranchPrune.test_cond_rewrite_is_correctl  sC   ø€ ò	õ
	@ñ@ 	ˆb”5—>’> &Ó)Ð+¨QÔ/Ùˆb”5×'Ò'¨Ó+Ð-¨qÕ1r,   c                 óÜ   • S nU R                  U[        R                  " S5      4S/S5        [        n SqS nU R                  U[        R                  " S5      4S/S5        Uqg ! Uqf = f)Nc                 ó$   • [         S:X  a  U $ U S-   $ ©Nr    r‡   ©Ú_GLOBALr~   s    r*   r€   Ú1TestBranchPrune.test_global_bake_in.<locals>.impl™  s   € Ü˜#‹~Ø�à˜2‘v�r,   r|   Fé   c                 ó$   • [         S:X  a  U $ U S-   $ rò   ró   r~   s    r*   r€   rõ   §  s   € Ü˜c“>Ø�Hà˜r™6�Mr,   T)rn   r	   r‘   rô   )r7   r€   r<   s      r*   Útest_global_bake_inÚ#TestBranchPrune.test_global_bake_in—  st   € ò	ð 	×Ñ˜$¤×!5Ò!5°aÓ!8Ð :¸U¸GÀQÔGô ˆð	ØˆGò"ð ×Ñ˜d¤U×%9Ò%9¸!Ó%<Ð$>ÀÀÈÔJà‰Gø�c‰Gús   µ/A' Á'A+c                 óÎ   ^• SmU4S jnU R                  U[        R                  " S5      4S/S5        SmU4S jnU R                  U[        R                  " S5      4S/S5        g )Nr    c                 ó   >• TS:X  a  U $ U S-   $ rò   rp   ©r   Ú_FREEVARs    €r*   r€   Ú2TestBranchPrune.test_freevar_bake_in.<locals>.implµ  ó   ø€ Ø˜3‹Ø�à˜2‘v�r,   r|   FrØ   c                 ó   >• TS:X  a  U $ U S-   $ rò   rp   rü   s    €r*   r€   rþ   ¿  rÿ   r,   Tr¾   )r7   r€   rý   s     @r*   Útest_freevar_bake_inÚ$TestBranchPrune.test_freevar_bake_in±  sc   ø€ àˆõ	ð 	×Ñ˜$¤×!5Ò!5°aÓ!8Ð :¸U¸GÀQÔGàˆõ	ð 	×Ñ˜$¤×!5Ò!5°aÓ!8Ð :¸T¸FÀAÕFr,   c                 óØ   • SS jnU R                  U[        R                  " [        R                  SS5      [        R                  " S5      4S S /[
        R                  " S5      S 5        g )Nc                 ó   • Uc  SnUS:  a  gg)Nr   r‡   é   rp   )ÚarrayÚas     r*   r€   ÚRTestBranchPrune.test_redefined_variables_are_not_considered_in_prune.<locals>.implË  s   € Ø‰yØ�Ø�1‹uØØr,   r¦   ÚCrƒ   ©r¦   é   rÍ   ©rn   r	   ÚArrayÚfloat64r�   ÚnpÚzerosr’   s     r*   Ú4test_redefined_variables_are_not_considered_in_pruneÚDTestBranchPrune.test_redefined_variables_are_not_considered_in_pruneÇ  sS   € ô	ð 	×Ñ˜$Ü Ÿ;š;¤u§}¡}°a¸Ó=Ü Ÿ>š>¨&Ó1ð4à ˜,ÜŸ(š( 6Ó*¨Dõ		2r,   c                 ó–  • S	S jnU R                  U[        R                  " [        R                  SS5      [        R                  " S5      4SS/[
        R                  " S5      S 5        U R                  U[        R                  " [        R                  SS5      [        R                  4S S /[
        R                  " S5      S5        g )
Nc                 ó    • SnUc  gUS:  a  gU$ ©Nr   r‡   é   rp   )r  r  r   s      r*   r€   Ú7TestBranchPrune.test_comparison_operators.<locals>.implÝ  s    € ØˆAØ‰yØð �1‹uØØˆHr,   r¦   r	  rƒ   FrC   r
  g      (@rÍ   r  r’   s     r*   Útest_comparison_operatorsÚ)TestBranchPrune.test_comparison_operatorsØ  sš   € ô
	ð 	×Ñ˜$Ü Ÿ;š;¤u§}¡}°a¸Ó=Ü Ÿ>š>¨&Ó1ð4à  &˜/ÜŸ(š( 6Ó*¨Dô		2ð 	×Ñ˜$Ü Ÿ;š;¤u§}¡}°a¸Ó=Ü Ÿ=™=ð+à ˜,ÜŸ(š( 6Ó*¨Cõ		1r,   c                 óø   • SS jnU R                  U[        R                  " [        R                  SS5      [        R                  [        R                  " S5      4/ SQ[
        R                  " S5      SS 5        g )	Nc                 óD   • SnUS:  a  SnUc  SnOSnUS:  a  gSU-   U-   $ )	Nr¦   r¶   rØ   r¬   é   r   r‡   r  rp   ©r  r   r  Úbs       r*   r€   ÚCTestBranchPrune.test_redefinition_analysis_same_block.<locals>.impl÷  s:   € ØˆAØ�1‹uØ�Ø‰yØ‘à�Ø�1‹uØØ˜‘6˜A‘:Ðr,   r¦   r	  rƒ   )NFNr
  ç      ð?rÍ   r  r’   s     r*   Ú%test_redefinition_analysis_same_blockÚ5TestBranchPrune.test_redefinition_analysis_same_blockó  sX   € ô
	ð 	×Ñ˜$Ü Ÿ;š;¤u§}¡}°a¸Ó=Ü Ÿ=™=¬%¯.ª.¸Ó*@ðCâ-ÜŸ(š( 6Ó*¨B°õ		6r,   c                 óø   • SS jnU R                  U[        R                  " [        R                  SS5      [        R                  [        R                  " S5      4/ SQ[
        R                  " S5      SS 5        g )	Nc                 ób   • SnUS:”  a  SnUS:  a  SnUc
  US-  nSU-   $ US-  nUS:  a  gSU-   $ )	Nr   rö   é   r¶   rØ   r¬   r‡   r  rp   r  s       r*   r€   ÚQTestBranchPrune.test_redefinition_analysis_different_block_can_exec.<locals>.impl  sV   € ØˆAØ�1‹uØ�Ø�1‹uØ�Ø‰yØ�Q‘�ð
 ˜‘6ˆMð �Q‘�Ø�q“5ØØ˜‘6ˆMr,   r¦   r	  rƒ   )NNNNr
  r   rÍ   r  r’   s     r*   Ú3test_redefinition_analysis_different_block_can_execÚCTestBranchPrune.test_redefinition_analysis_different_block_can_exec	  sX   € ô	ð 	×Ñ˜$Ü Ÿ;š;¤u§}¡}°a¸Ó=Ü Ÿ=™=¬%¯.ª.¸Ó*@ðCâ2ÜŸ(š( 6Ó*¨B°õ		6r,   c                 óØ  • SS jnU R                  U[        R                  " [        R                  SS5      [        R                  " S5      [        R                  " S5      4SS /[
        R                  " S5      S S 5        U R                  U[        R                  " [        R                  SS5      [        R                  " S5      [        R                  4SS /[
        R                  " S5      S S5        U R                  U[        R                  " [        R                  SS5      [        R                  [        R                  " S5      4S S /[
        R                  " S5      SS 5        g )	Nc                 ó>   • SnUb  SnUc
  US-  nSU-   $ US-  nSU-   $ )Nr   r%  rö   r¬   r  rp   r  s       r*   r€   ÚTTestBranchPrune.test_redefinition_analysis_different_block_cannot_exec.<locals>.impl%  s>   € ØˆAØ‰}Ø�Ø‰yØ�Q‘�ð ˜‘6ˆMð �Q‘�Ø˜‘6ˆMr,   r¦   r	  rƒ   Tr
  g333333ó?©NNr  r’   s     r*   Ú6test_redefinition_analysis_different_block_cannot_execÚFTestBranchPrune.test_redefinition_analysis_different_block_cannot_exec!  s  € ô	ð 	×Ñ˜$Ü Ÿ;š;¤u§}¡}°a¸Ó=Ü Ÿ>š>¨&Ó1´5·>²>À&Ó3IðKà ˜,ÜŸ(š( 6Ó*¨D°$ô		8ð 	×Ñ˜$Ü Ÿ;š;¤u§}¡}°a¸Ó=Ü Ÿ>š>¨&Ó1´5·=±=ðBà ˜,ÜŸ(š( 6Ó*¨D°#ô		7ð 	×Ñ˜$Ü Ÿ;š;¤u§}¡}°a¸Ó=Ü Ÿ=™=¬%¯.ª.¸Ó*@ðBà ˜,ÜŸ(š( 6Ó*¨C°õ		7r,   c                 ó2   • S nU R                  USS/5        g )Nc                  ó2   ^• SmU4S jn U " 5         TS:X  a  gg)Nr§   c                  ó
   >• Sm g ©Nr   rp   r~   s   €r*   ÚclosureÚRTestBranchPrune.test_closure_and_nonlocal_can_prune.<locals>.impl.<locals>.closureG  ó   ø€ à‘r,   r   TFrp   )r3  r   s    @r*   r€   ÚATestBranchPrune.test_closure_and_nonlocal_can_prune.<locals>.implD  s!   ø€ ØˆAõñ ŒIà�A‹vØàr,   rp   F)rn   r’   s     r*   Ú#test_closure_and_nonlocal_can_pruneÚ3TestBranchPrune.test_closure_and_nonlocal_can_pruneA  s   € ò	ð 	×Ñ˜$  U HÕ.r,   c                 óR   • S nU R                  U[        R                  4S /S5        g )Nc                 ó4   ^• SmU4S jnU" U 5        TS:X  a  gg)Nr§   c                 ó
   >• U mg rÍ   rp   )Útr   s    €r*   r3  ÚUTestBranchPrune.test_closure_and_nonlocal_cannot_prune.<locals>.impl.<locals>.closureZ  r5  r,   r   TFrp   )Únr3  r   s     @r*   r€   ÚDTestBranchPrune.test_closure_and_nonlocal_cannot_prune.<locals>.implW  s#   ø€ ØˆAõñ �AŒJà�A‹vØàr,   r|   )rn   r	   Úint64r’   s     r*   Ú&test_closure_and_nonlocal_cannot_pruneÚ6TestBranchPrune.test_closure_and_nonlocal_cannot_pruneT  s%   € ò	ð 	×Ñ˜$¤§¡ °°¸Õ;r,   rp   N)rq   rr   rs   rt   r“   rš   r¡   r¨   r²   r¹   r¿   rÈ   rÏ   rÔ   rî   rø   r  r  r  r!  r'  r-  r7  rA  rv   rp   r,   r*   rx   rx   Ž   su   † ò*IòX	IòKò"Qò"$OòLOò(KòPò$Pò(Pò*)2òVò4Gò,2ò"1ò66ò,6ò07ò@/õ&<r,   rx   c                   óv   • \ rS rSrSrSrS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rSrg)ÚTestBranchPrunePredicatesih  )r|   ÚStringTgš™™™™™@y              @)r   Ú Fg        y                Nc                 óˆ  • UR                   n[        UR                  5       VVs0 s H  u  pEXE_M	     nnnUR                  5        H	  u  pEXVU'   M     [	        [        UR                  5       5       VVs/ s H  u  puUPM	     snn5      nUR                  US9n	[        R                  " U	[        5       5      $ s  snnf s  snnf )a  
This takes a python function, pyfunc, and manipulates its co_const
__code__ member to create a new function with different co_consts as
supplied in argument consts.

consts is a dict {index: value} of co_const tuple index to constant
value used to update a pyfunc clone's co_const.
)Ú	co_consts)
Ú__code__rS   rH  ÚitemsÚtuplerZ   ÚreplaceÚpytypesÚFunctionTypeÚglobals)
r7   ÚpyfuncÚconstsÚpyfunc_codeÚkÚvrH  r;   Ú
new_constsÚnew_codes
             r*   Ú_literal_const_sample_generatorÚ9TestBranchPrunePredicates._literal_const_sample_generatorq  s®   € ð —o‘oˆô '0°×0EÑ0EÔ&FÔGÒ&F™d˜a�Q’TÑ&Fˆ	ÑGØ—L‘L–N‰DˆAØ�a‹Lñ #ä¬&°·±Ó1BÔ*CÔDÒ*C¡$ !›AÑ*CÒDÓEˆ
ð ×&Ñ&°Ð&Ð<ˆô ×#Ò# H¬g«iÓ8Ð8ùó Hùó Es   ¥B8Á4B>
c                 ó:  • S n[         S;   a  U R                  USSS.5      nO/[         S;   a  U R                  USSS.5      nO[        [         5      eUR                  R                  nUR                  R                  n[         S;   a%  U R                  US5        U R                  US	5        O>[         S;   a%  U R                  US
5        U R                  US5        O[        [         5      eU R                  U" S 5      S5        U R                  U" S 5      S5        g )Nc                 ó$   • SnU(       a  gSnUS-   $ ©NÚPLACEHOLDER1r}   ÚPLACEHOLDER2r¶   rp   )r   Ú_CONST1Ú_CONST2s      r*   r€   ÚCTestBranchPrunePredicates.test_literal_const_code_gen.<locals>.impl‰  s   € Ø$ˆGÞØà(�Ø˜Q‘;Ðr,   ©)r  é   r   r  )r   r¦   ©)r  r‡   )r  r%  )r  rØ   )r  é   )r|   r  )r\  r}   r]  )r   r}   r  r[  )Nr   r}   r  r¶   r}   é   )r   rW  ÚNotImplementedErrorrI  rH  rQ   )r7   r€   ÚnewÚiconstÚnconsts        r*   Útest_literal_const_code_genÚ5TestBranchPrunePredicates.test_literal_const_code_genˆ  sÿ   € ò	ô ˜Ó#à×6Ñ6°tÀÀR¹[ÓI‰CÜÐ>Ó>Ø×6Ñ6°tÀÀR¹[ÓI‰Cä%¤iÓ0Ð0à—‘×(Ñ(ˆØ—‘×'Ñ'ˆä˜Ó#Ø×Ñ˜Vð &6ô 7à×Ñ˜VÐ%6Õ7ÜÐ>Ó>Ø×Ñ˜Vð &9ô :à×Ñ˜VÐ%?Õ@ä%¤iÓ0Ð0à×Ñ™˜d› WÔ-Ø×Ñ™˜T› BÕ'r,   c                 óT  • S nU R                   S4U R                  S44 H…  u  p#U Hz  n[        S;   a  U R                  USU05      nO.[        S;   a  U R                  USU05      nO[	        [        5      eU R                  U[        R                  " S5      4U/S 5        M|     M‡     g )	Nc                 ó   • SnU(       a  gg ©Nr\  r}   rp   ©r   r^  s     r*   r€   Ú<TestBranchPrunePredicates.test_single_if_const.<locals>.impl¬  s   € Ø$ˆGÞØð r,   FTra  r   rc  r|   rƒ   ©Ú_TRUTHYÚ_FALSEYr   rW  rf  rn   r	   r�   ©r7   r€   Úc_inpr_   Úconstr(   s         r*   Útest_single_if_constÚ.TestBranchPrunePredicates.test_single_if_constª  ó®   € ò	ð
 "Ÿ\™\¨5Ð1°D·L±LÀ$Ð3GÓG‰LˆEÛ�ä Ó+à×?Ñ?ÀØABÀEÀ
óL‘DäÐ"FÓFØ×?Ñ?ÀØABÀEÀ
óL‘Dô .¬iÓ8Ð8à×!Ñ! $¬¯ª¸Ó)?Ð(AÀEÀ7Ø"&ö(ó ò Hr,   c                 óT  • S nU R                   S4U R                  S44 H…  u  p#U Hz  n[        S;   a  U R                  USU05      nO.[        S;   a  U R                  USU05      nO[	        [        5      eU R                  U[        R                  " S5      4U/S 5        M|     M‡     g )	Nc                 ó   • SnU(       d  gg rn  rp   ro  s     r*   r€   ÚCTestBranchPrunePredicates.test_single_if_negate_const.<locals>.implÃ  s   € Ø$ˆGÞØð r,   FTra  r   rc  r|   rƒ   rq  rt  s         r*   Útest_single_if_negate_constÚ5TestBranchPrunePredicates.test_single_if_negate_constÁ  ry  r,   c                 óT  • S nU R                   S4U R                  S44 H…  u  p#U Hz  n[        S;   a  U R                  USU05      nO.[        S;   a  U R                  USU05      nO[	        [        5      eU R                  U[        R                  " S5      4U/S 5        M|     M‡     g )	Nc                 ó   • SnU(       a  gg©Nr\  r}   r˜   rp   ro  s     r*   r€   ÚATestBranchPrunePredicates.test_single_if_else_const.<locals>.implÚ  s   € Ø$ˆGÞØàr,   FTra  r   rc  r|   rƒ   rq  rt  s         r*   Útest_single_if_else_constÚ3TestBranchPrunePredicates.test_single_if_else_constØ  ó®   € ò	ð "Ÿ\™\¨5Ð1°D·L±LÀ$Ð3GÓG‰LˆEÛ�ä Ó+à×?Ñ?ÀØABÀEÀ
óL‘DäÐ"FÓFØ×?Ñ?ÀØABÀEÀ
óL‘Dô .¬iÓ8Ð8à×!Ñ! $¬¯ª¸Ó)?Ð(AÀEÀ7Ø"&ö(ó ò Hr,   c                 óT  • S nU R                   S4U R                  S44 H…  u  p#U Hz  n[        S;   a  U R                  USU05      nO.[        S;   a  U R                  USU05      nO[	        [        5      eU R                  U[        R                  " S5      4U/S 5        M|     M‡     g )	Nc                 ó   • SnU(       d  ggr�  rp   ro  s     r*   r€   ÚHTestBranchPrunePredicates.test_single_if_else_negate_const.<locals>.impló  s   € Ø$ˆGÞØàr,   FTra  r   rc  r|   rƒ   rq  rt  s         r*   Ú test_single_if_else_negate_constÚ:TestBranchPrunePredicates.test_single_if_else_negate_constñ  r…  r,   c                 óÂ   ^• U R                   S4U R                  S44 H>  u  pU H3  mU4S jnU R                  U[        R                  " S5      4U/S 5        M5     M@     g )NFTc                 ó   >• T(       a  ST4$ g r†   rp   ©r   rv  s    €r*   r(   Ú>TestBranchPrunePredicates.test_single_if_freevar.<locals>.func  s   ø€ ÞØ&¨˜~Ð-ð r,   rƒ   ©rr  rs  rn   r	   r�   ©r7   ru  r_   r(   rv  s       @r*   Útest_single_if_freevarÚ0TestBranchPrunePredicates.test_single_if_freevar
  ó]   ø€ Ø!Ÿ\™\¨5Ð1°D·L±LÀ$Ð3GÓG‰LˆEÛ�õ.ð ×!Ñ! $¬¯ª¸Ó)?Ð(AÀEÀ7Ø"&ö(ó ò Hr,   c                 óÂ   ^• U R                   S4U R                  S44 H>  u  pU H3  mU4S jnU R                  U[        R                  " S5      4U/S 5        M5     M@     g )NFTc                 ó   >• T(       d  ST4$ g r†   rp   r�  s    €r*   r(   ÚETestBranchPrunePredicates.test_single_if_negate_freevar.<locals>.func  s   ø€ Þ Ø&¨˜~Ð-ð !r,   rƒ   r�  r�  s       @r*   Útest_single_if_negate_freevarÚ7TestBranchPrunePredicates.test_single_if_negate_freevar  r“  r,   c                 óÂ   ^• U R                   S4U R                  S44 H>  u  pU H3  mU4S jnU R                  U[        R                  " S5      4U/S 5        M5     M@     g )NFTc                 ó"   >• T(       a  ST4$ ST4$ r—   rp   r�  s    €r*   r(   ÚCTestBranchPrunePredicates.test_single_if_else_freevar.<locals>.func"  s   ø€ ÞØ&¨˜~Ð-à&¨˜~Ð-r,   rƒ   r�  r�  s       @r*   Útest_single_if_else_freevarÚ5TestBranchPrunePredicates.test_single_if_else_freevar  ó]   ø€ Ø!Ÿ\™\¨5Ð1°D·L±LÀ$Ð3GÓG‰LˆEÛ�õ.ð
 ×!Ñ! $¬¯ª¸Ó)?Ð(AÀEÀ7Ø"&ö(ó ò Hr,   c                 óÂ   ^• U R                   S4U R                  S44 H>  u  pU H3  mU4S jnU R                  U[        R                  " S5      4U/S 5        M5     M@     g )NFTc                 ó"   >• T(       d  ST4$ ST4$ r—   rp   r�  s    €r*   r(   ÚJTestBranchPrunePredicates.test_single_if_else_negate_freevar.<locals>.func.  s   ø€ Þ Ø&¨˜~Ð-à&¨˜~Ð-r,   rƒ   r�  r�  s       @r*   Ú"test_single_if_else_negate_freevarÚ<TestBranchPrunePredicates.test_single_if_else_negate_freevar*  rž  r,   c                 ó¾   • U R                   S4U R                  S44 H=  u  pU H2  nUqS nU R                  U[        R
                  " S5      4U/S 5        M4     M?     g )NFTc                 ó*   • [         (       a  S[         4$ g r†   )Úc_test_single_if_globalr~   s    r*   r(   Ú=TestBranchPrunePredicates.test_single_if_global.<locals>.func?  s   € ß.Ò.Ø&Ô(?Ð?Ð?ð /r,   rƒ   )rr  rs  r¦  rn   r	   r�   ©r7   ru  r_   Úcr(   s        r*   Útest_single_if_globalÚ/TestBranchPrunePredicates.test_single_if_global8  se   € ð "Ÿ\™\¨5Ð1°D·L±LÀ$Ð3GÓG‰LˆEÛ�Ø*+Ð'ò@ð ×!Ñ! $¬¯ª¸Ó)?Ð(AÀEÀ7Ø"&ö(ó ò Hr,   c                 ó¾   • U R                   S4U R                  S44 H=  u  pU H2  nUqS nU R                  U[        R
                  " S5      4U/S 5        M4     M?     g )NFTc                 ó*   • [         (       a  S[         4$ g r†   )Úc_test_single_if_negate_globalr~   s    r*   r(   ÚDTestBranchPrunePredicates.test_single_if_negate_global.<locals>.funcM  s   € ß5Ò5Ø&Ô(FÐFÐFð 6r,   rƒ   )rr  rs  r®  rn   r	   r�   r¨  s        r*   Útest_single_if_negate_globalÚ6TestBranchPrunePredicates.test_single_if_negate_globalF  se   € ð "Ÿ\™\¨5Ð1°D·L±LÀ$Ð3GÓG‰LˆEÛ�Ø12Ð.òGð ×!Ñ! $¬¯ª¸Ó)?Ð(AÀEÀ7Ø"&ö(ó ò Hr,   c                 ó¾   • U R                   S4U R                  S44 H=  u  pU H2  nUqS nU R                  U[        R
                  " S5      4U/S 5        M4     M?     g )NFTc                 ó8   • [         (       a  S[         4$ S[         4$ r—   )Úc_test_single_if_else_globalr~   s    r*   r(   ÚBTestBranchPrunePredicates.test_single_if_else_global.<locals>.func[  s    € ß3Ò3Ø&Ô(DÐDÐDà&Ô(DÐDÐDr,   rƒ   )rr  rs  r´  rn   r	   r�   r¨  s        r*   Útest_single_if_else_globalÚ4TestBranchPrunePredicates.test_single_if_else_globalT  se   € ð "Ÿ\™\¨5Ð1°D·L±LÀ$Ð3GÓG‰LˆEÛ�Ø/0Ð,òEð
 ×!Ñ! $¬¯ª¸Ó)?Ð(AÀEÀ7Ø"&ö(ó ò Hr,   c                 ó¾   • U R                   S4U R                  S44 H=  u  pU H2  nUqS nU R                  U[        R
                  " S5      4U/S 5        M4     M?     g )NFTc                 ó8   • [         (       d  S[         4$ S[         4$ r—   )Ú#c_test_single_if_else_negate_globalr~   s    r*   r(   ÚITestBranchPrunePredicates.test_single_if_else_negate_global.<locals>.funcj  s    € ß>Ò>Ø&Ô(KÐKÐKà&Ô(KÐKÐKr,   rƒ   )rr  rs  rº  rn   r	   r�   r¨  s        r*   Ú!test_single_if_else_negate_globalÚ;TestBranchPrunePredicates.test_single_if_else_negate_globalc  se   € ð "Ÿ\™\¨5Ð1°D·L±LÀ$Ð3GÓG‰LˆEÛ�Ø67Ð3òLð
 ×!Ñ! $¬¯ª¸Ó)?Ð(AÀEÀ7Ø"&ö(ó ò Hr,   c                 ó–   • [         S 5       nU R                  UR                  5       S   S5        U R                  U" 5       S   S5        g )Nc                  óL   • [         R                  " S5      n SnU(       a  XS'   U $ )Nr|   iš  r   )r  r  )r3   r<   s     r*   ÚfooÚ6TestBranchPrunePredicates.test_issue_5618.<locals>.foot  s#   € ä—X’X˜a“[ˆFØˆCÞØ�q‘	ØˆMr,   r   g     Ð„@)r   ÚassertPreciseEqualÚpy_func)r7   rÀ  s     r*   Útest_issue_5618Ú)TestBranchPrunePredicates.test_issue_5618r  sG   € ä	ñ	ó 
ð	ð 	×Ñ §¡£¨aÑ 0°$Ô7Ø×Ñ¡£ a¡¨$Õ/r,   rp   N)rq   rr   rs   rt   rr  rs  rW  rj  rw  r}  rƒ  r‰  r‘  r—  rœ  r¢  rª  r°  r¶  r¼  rÄ  rv   rp   r,   r*   rD  rD  h  sZ   † ð +€GØ+€Gò9ò. (òD(ò.(ò.(ò2(ò2(ò(ò
(ò
(ò(ò(ò(ò(õ0r,   rD  c                   ó6   • \ rS rSr " S S\5      rS rS rSrg)ÚTestBranchPruneSSAi€  c                   ó   • \ rS rSrS rSrg)Ú$TestBranchPruneSSA.SSAPrunerCompileriƒ  c                 ó&  • [        S5      nUR                  [        S5        UR                  [        S5        UR                  [        S5        UR                  [
        S5        UR                  [        S5        [        nUR                  U R                  5      nUR                  R                  UR                  5        UR                  U R                  5      nUR                  R                  UR                  5        UR                  5         U/$ )Nz
testing pmzanalyzing bytecodezprocessing IRÚssazdead branch pruningzpreserves the IR as metadata)r   Úadd_passr   r   r   r   r   r   Údefine_typed_pipeliner)   Úpassesr6   Ú!define_nopython_lowering_pipelineÚfinalize)r7   ÚpmÚdpbÚtyped_passesÚlowering_passess        r*   Údefine_pipelinesÚ5TestBranchPruneSSA.SSAPrunerCompiler.define_pipelines„  sÅ   € ô ˜\Ó*ˆBØ�K‰KÔ)Ð+?Ô@Ø�K‰Kœ oÔ6à�K‰Kœ¨Ô.Ø�K‰KœÐ)>Ô?à�K‰Kœ
Ð$BÔCÜ$ˆCØ×4Ñ4°T·Z±ZÓ@ˆLØ�I‰I×Ñ˜\×0Ñ0Ô1Ø!×CÑCÀDÇJÁJÓOˆOØ�I‰I×Ñ˜_×3Ñ3Ô4Ø�K‰KŒMØ�4ˆKr,   rp   N)rq   rr   rs   rt   rÕ  rv   rp   r,   r*   ÚSSAPrunerCompilerrÉ  ƒ  s   † õ	r,   r×  c                 ó„   • [        U R                  S9SS j5       nU R                  U" 5       UR                  5       5        g )N©Úpipeline_classc                 ó2   • SnSnU c  SnU(       a  Ub  SnX#4$ )Nr|   FTr  rp   )ÚpÚqr‹   Úrs       r*   r€   Ú4TestBranchPruneSSA.test_ssa_update_phi.<locals>.impl›  s+   € àˆAØˆAØ‰yØ�æ�Q‘]Ø�ð
 �4ˆKr,   r,  )r   r×  rÂ  rÃ  r’   s     r*   Útest_ssa_update_phiÚ&TestBranchPruneSSA.test_ssa_update_phi—  s;   € ô 
˜T×3Ñ3Ñ	4ó	ó 
5ð	ð 	×Ñ¡£¨¯©«Õ7r,   c                 ó\  • [        U R                  S9SS j5       nU R                  U" 5       UR                  5       5        UR                  UR
                  S      R                  S   nUR                  R                  5        H%  nU R                  / UR                  S5      Q5        M'     g )NrÙ  c                 ó   • SnU c  SnU$ SnU$ r  rp   )rÜ  r‹   s     r*   r€   Ú5TestBranchPruneSSA.test_ssa_replace_phi.<locals>.impl°  s$   € àˆAØ‰yØ�ð ˆHð �àˆHr,   r   Úpreserved_irÚphirÍ   )r   r×  rÂ  rÃ  r\   Ú
signaturesÚmetadatar2   r3   ÚassertFalseÚ
find_exprs)r7   r€   r"   r:   s       r*   Útest_ssa_replace_phiÚ'TestBranchPruneSSA.test_ssa_replace_phi¬  s“   € ô 
˜T×3Ñ3Ñ	4ó	ó 
5ð	ð 	×Ñ¡£¨¯©«Ô7Ø—.‘. §¡°Ñ!3Ñ4×=Ñ=¸nÑMˆð —>‘>×(Ñ(Ö*ˆCØ×ÑÐ5˜sŸ~™~¨eÓ4Ð5Ö6ò +r,   rp   N)	rq   rr   rs   rt   r   r×  rà  rë  rv   rp   r,   r*   rÇ  rÇ  €  s   † ô˜Lô ò(8õ*7r,   rÇ  c                   ó8   • \ rS rSrS rS rS rS rS rS r	Sr
g	)
Ú(TestBranchPrunePostSemanticConstRewritesiÂ  c                 óF  • S nU R                  U[        R                  " [        R                  SS5      4SS /[        R
                  " S5      5        U R                  U[        R                  " [        R                  SS5      4SS/[        R
                  " S	5      5        g )
Nc                 óN   • U R                   S:X  a  U R                  S   S:X  a  gg g)Nr¦   r|   r‡   )ÚndimÚshape)r  s    r*   r€   ÚKTestBranchPrunePostSemanticConstRewrites.test_array_ndim_attr.<locals>.implÇ  s*   € Ø�z‰z˜Q‹Ø—;‘;˜q‘> QÓ&Øð 'ð r,   r¦   r	  Fr
  r|   TrC   )r¦   )rn   r	   r  r  r  r  r’   s     r*   Útest_array_ndim_attrÚ=TestBranchPrunePostSemanticConstRewrites.test_array_ndim_attrÅ  s†   € ò	ð 	×Ñ˜$¤§¢¬U¯]©]¸A¸sÓ!CÐ EÈØHLðHNäŸ(š( 6Ó*ô	,ð 	×Ñ˜$¤§¢¬U¯]©]¸A¸sÓ!CÐ EÈØHNðHPäŸ(š( 4›.õ	*r,   c           	      ó  • S nU R                  U[        R                  " [        R                  S5      4SS /[	        / SQ5      5        U R                  U[        R                  " [        R                  S5      4SS/[	        SS/5      5        g )	Nc                 ó8   • [        U 5      S:X  a  U S   S:X  a  gg g)Nr  r¦   r|   r   )rR   )Útups    r*   r€   ÚETestBranchPrunePostSemanticConstRewrites.test_tuple_len.<locals>.impl×  s%   € Ü�3‹x˜1‹}Ø�q‘6˜Q“;Øð ð r,   r  F©r|   r¦   r  r¦   TrC   r|   )rn   r	   ÚUniTupler@  rK  r’   s     r*   Útest_tuple_lenÚ7TestBranchPrunePostSemanticConstRewrites.test_tuple_lenÕ  s~   € ò	ð 	×Ñ˜$¤§¢´·±¸QÓ!?Ð AÀEØDHðDJä¢	Ó*ô	,ð 	×Ñ˜$¤§¢´·±¸QÓ!?Ð AÀDØDJðDLä  A ›-õ	)r,   c                 óæ   • [         S 5       nU R                  [        R                  5       nU" 5         S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  ó.   • [         R                  S5        g )Ng®Gáz®ó?)ÚfloatÚas_integer_ratiorp   r,   r*   ÚtestÚHTestBranchPrunePostSemanticConstRewrites.test_attr_not_len.<locals>.testë  s   € ä×"Ñ" 4Õ(r,   z$Unknown attribute 'as_integer_ratio')r   ÚassertRaisesr
   ÚTypingErrorÚassertInÚstrÚ	exception)r7   r  ri   s      r*   Útest_attr_not_lenÚ:TestBranchPrunePostSemanticConstRewrites.test_attr_not_lenå  s[   € ô 
ñ	)ó 
ð	)ð ×Ñœv×1Ñ1Ô2°aÙŒF÷ 3ð 	�‰Ð<¼cÀ!Ç+Á+Ó>NÕO÷ 3Õ2ús   ¬A"Á"
A0c           	      ó\  • [         R                  " SS/5      nU" SS9nS nU R                  U[        R                  " [        R
                  SS5      4S/[        R                  " S5      5        [        R                  " [        R                  S	U5      nU R                  X44S /USS
S.S9  g )NÚ	FakeArrayrñ  r¦   )rñ  c                 óP   • U R                   S:X  a  U R                   $ [        5         g )Nr¦   )rñ  Úobject)Úfas    r*   r€   ÚMTestBranchPrunePostSemanticConstRewrites.test_ndim_not_on_array.<locals>.implú  s   € Ø�w‰w˜!‹|Ø—w‘w�ä•r,   r	  Fr
  r|   T)rI   Úforceobj)rH   )
ÚcollectionsÚ
namedtuplern   r	   r  r  r  r  ÚNamedUniTupler@  )r7   r  r  r€   ÚFakeArrayTypes        r*   Útest_ndim_not_on_arrayÚ?TestBranchPrunePostSemanticConstRewrites.test_ndim_not_on_arrayõ  sž   € ä×*Ò*¨;¸¸ÓAˆ	Ù˜AÑˆò	ð 	×Ñ˜$¤§¢¬U¯]©]¸A¸sÓ!CÐ EÈÀwÜŸ(š( 6Ó*ô	,ô ×+Ò+¬E¯K©K¸¸IÓFˆØ×Ñ˜$Ð 0°4°&¸"Ø,1¸dÑ Cð 	ò 	Er,   c                 ó¸   • [         S 5       n[        R                  " S5      [        R                  " S5      4nU R                  U" U6 UR                  " U6 5        g )Nc                 ó4   • U R                   S UR                   $ rÍ   )rò  rñ  )r  r  s     r*   r€   ÚlTestBranchPrunePostSemanticConstRewrites.test_semantic_const_propagates_before_static_rewrites.<locals>.impl  s   € à—7‘7˜7˜AŸF™FÐ#Ð#r,   )rö   r¶   r  r¦   )r|   r|   )r   r  r  rÂ  rÃ  )r7   r€   r`   s      r*   Ú5test_semantic_const_propagates_before_static_rewritesÚ^TestBranchPrunePostSemanticConstRewrites.test_semantic_const_propagates_before_static_rewrites	  sQ   € ô 
ñ	$ó 
ð	$ô —’˜Ó&¬¯ª°Ó(8Ð9ˆà×Ñ¡ d ¨T¯\ª\¸4Ð-@ÕAr,   c           	      ó–  • [        [        S9S 5       nSnU R                  U" U6 UR                  " U6 5        UR                  UR
                  S      nUR                  S   n[        5       nUR                  R                  5        H�  nUR                  S5       Hw  nUR                  UR                  R                  5      nU R                  UR                  [         R"                  5        UR%                  UR                  R                  5        My     M‘     U R'                  XR V	s1 s H  n	[)        U	5      iM     sn	5        g s  sn	f )NrÙ  c                  óJ   • Sn[        U 5       H  nU[        U5      -  nM     U$ r2  )r   rR   )r`   ÚsÚargs      r*   r€   ÚSTestBranchPrunePostSemanticConstRewrites.test_tuple_const_propagation.<locals>.impl  s(   € àˆAÜ% dÖ+�Ø”S˜“X‘’ñ ,àˆHr,   )rp   rú  rp   r   rå  Úinplace_binop)r   r   rÂ  rÃ  r\   rç  rè  rW   r2   r3   rê  Úfind_variable_assignmentÚrhsÚnameÚassertIsInstancerä   r   rã   ÚaddrQ   rR   )
r7   r€   ÚinpÚolr"   Úbinop_constsr:   ÚexprÚinstr   s
             r*   Útest_tuple_const_propagationÚETestBranchPrunePostSemanticConstRewrites.test_tuple_const_propagation  s  € Ü	Ô5Ñ	6ñ	ó 
7ð	ð "ˆØ×Ñ¡ c 
¨D¯LªL¸#Ð,>Ô?à�^‰^˜DŸO™O¨AÑ.Ñ/ˆØ—+‘+˜nÑ-ˆä“uˆØ—>‘>×(Ñ(Ö*ˆCØŸ™ Ö7�Ø×3Ñ3°D·H±H·M±MÓB�Ø×%Ñ% d§j¡j´"·(±(Ô;Ø× Ñ  §¡×!1Ñ!1Ö2ó 8ñ +ð
 	×Ñ˜¸Ó'<º°1¬¨A®¹Ñ'<Õ=ùÒ'<s   Ä)E
rp   N)rq   rr   rs   rt   rô  rü  r	  r  r  r-  rv   rp   r,   r*   rî  rî  Â  s#   † ò*ò )ò Pò Eò(	Bõ>r,   rî  )2r  r	   rM  Únumpyr  Únumba.core.compilerr   r   r   Únumbar   r   r   Ú
numba.corer
   r   r   r   r   r   Únumba.core.inline_closurecallr   Únumba.tests.supportr   r   r   r   Únumba.core.analysisr   r   Únumba.core.untyped_passesr   r   r   r   r   r   r   r   Únumba.core.utilsr   rô   Úenable_pyobj_flagsÚenable_pyobjectr+   r.   rx   rD  rÇ  rî  rp   r,   r*   Ú<module>r:     s¹   ðã Û ã ß >Ñ >ß +Ñ +ß A× AÝ Ý ?÷;ó ;ç M÷3õ 3÷ NÑ MÝ &ð €á“WÐ Ø%)Ð Ô "ò
ôc(˜/¨8ô c(ôLW<Ð)¨;ô W<ôtU0Ð 3°[ô U0ôp?7˜¨(ô ?7ôDf>Ð/Bõ f>r,   