ó
    „ñ:i†  ã                   ó°   • S SK JrJr  S SK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Jr  S SKJr  S SKJr   " S	 S
\5      r " S S\5      rg)é    )ÚCompilerÚDefaultPassBuilder)ÚFunctionPassÚAnalysisPassÚregister_pass)ÚInlineInlinables)ÚIRLegalization)ÚjitÚobjmodeÚnjitÚcfunc)ÚtypesÚpostprocÚerrors)Ú
FunctionIR)ÚTestCasec                   ó:   ^ • \ rS rSrU 4S jrS rS rS rSrU =r	$ )ÚTestCustomPipelineé   c                 ó^   >^• [         [        U ]  5          " U4S jS[        5      mTU l        g )Nc                   ó>   >^ • \ rS rSr/ rUU 4S jrUU 4S jrSrU =r$ )Ú0TestCustomPipeline.setUp.<locals>.CustomPipelineé   c                 óX   >• U R                   R                  U5        [        TU ]  U5      $ ©N)Úcustom_pipeline_cacheÚappendÚsuperÚcompile_extra)ÚselfÚfuncÚCustomPipelineÚ	__class__s     €€Ú\/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_pipeline.pyr   Ú>TestCustomPipeline.setUp.<locals>.CustomPipeline.compile_extra   s)   ø€ à×*Ñ*×1Ñ1°$Ô7Ü˜^¨TÑ@ÀÓFÐFó    c                 ób   >• U R                   R                  U5        [        TU ]  " U/UQ70 UD6$ r   )r   r   r   Ú
compile_ir)r    Úfunc_irÚargsÚkwargsr"   r#   s       €€r$   r(   Ú;TestCustomPipeline.setUp.<locals>.CustomPipeline.compile_ir   s>   ø€ à×*Ñ*×1Ñ1°'Ô:Ü˜^¨TÒ=Øð.Ø"ò.Ø&,ñ.ð .r&   © )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r(   Ú__static_attributes__Ú__classcell__)r#   r"   s   @€r$   r"   r      s   ù† Ø$&Ð!öG÷
.ô .r&   r"   )r   r   ÚsetUpr   Úpipeline_class)r    r"   r#   s    @€r$   r4   ÚTestCustomPipeline.setUp   s'   ù€ ÜÔ  $Ñ-Ô/÷	.œXô 	.ð -ˆÕr&   c                 ó  • U R                  U R                  R                  / 5        [        U R                  S9S 5       nU R	                  U" S5      S5        U R                  U R                  R                  UR
                  /5        g )N©r5   c                 ó   • U $ r   r-   ©Úxs    r$   ÚfooÚ8TestCustomPipeline.test_jit_custom_pipeline.<locals>.foo$   ó   € àˆHr&   é   )ÚassertListEqualr5   r   r
   ÚassertEqualÚpy_func©r    r<   s     r$   Útest_jit_custom_pipelineÚ+TestCustomPipeline.test_jit_custom_pipeline!   sv   € Ø×Ñ˜T×0Ñ0×FÑFÈÔKä	˜D×/Ñ/Ñ	0ñ	ó 
1ð	ð 	×Ñ™˜Q› Ô#Ø×Ñ˜T×0Ñ0×FÑFØ!Ÿk™k˜]õ	,r&   c                 óZ  • U R                  U R                  R                  / 5        [        [        R
                  " [        R
                  5      U R                  S9S 5       nU R                  U" S5      S5        U R                  U R                  R                  UR                  /5        g )Nr8   c                 ó   • U $ r   r-   r:   s    r$   r<   Ú:TestCustomPipeline.test_cfunc_custom_pipeline.<locals>.foo/   r>   r&   r?   )r@   r5   r   r   r   Úint64rA   Ú__wrapped__rC   s     r$   Útest_cfunc_custom_pipelineÚ-TestCustomPipeline.test_cfunc_custom_pipeline,   s‡   € Ø×Ñ˜T×0Ñ0×FÑFÈÔKä	Œu�{Š{œ5Ÿ;™;Ó'¸×8KÑ8KÑ	Lñ	ó 
Mð	ð 	×Ñ™˜Q› Ô#Ø×Ñ˜T×0Ñ0×FÑFØ!Ÿo™oÐ.õ	0r&   c                 óà  • U R                  U R                  R                  / 5        [        U R                  S9S 5       nSnU R	                  U" U5      US-   5        U R	                  [        U R                  R                  5      S5        U R                  R                  S   nU R                  X1R                  5        U R                  R                  S   nU R                  U[        5        g )Nr8   c                 ój   • [        SS9   U [        S5      -  n S S S 5        U $ ! , (       d  f       U $ = f)NÚintpr:   é   )r   Úintr:   s    r$   r<   Ú<TestCustomPipeline.test_objmode_custom_pipeline.<locals>.foo:   s/   € ä˜6Ó"Ø”S˜“X‘�÷ #àˆH÷ #Ô"àˆHús   Š#£
2é{   rP   é   r   )
r@   r5   r   r
   rA   ÚlenÚassertIsrB   ÚassertIsInstancer   )r    r<   ÚargÚfirstÚseconds        r$   Útest_objmode_custom_pipelineÚ/TestCustomPipeline.test_objmode_custom_pipeline7   sÇ   € Ø×Ñ˜T×0Ñ0×FÑFÈÔKä	˜D×/Ñ/Ñ	0ñ	ó 
1ð	ð
 ˆØ×Ñ™˜S› 3¨¡7Ô+à×Ñœ˜T×0Ñ0×FÑFÓGÈÔKà×#Ñ#×9Ñ9¸!Ñ<ˆØ�‰�eŸ[™[Ô)à×$Ñ$×:Ñ:¸1Ñ=ˆØ×Ñ˜f¤jÕ1r&   r8   )
r.   r/   r0   r1   r4   rD   rK   r[   r2   r3   )r#   s   @r$   r   r      s   ø† õ-ò(	,ò	0÷2ð 2r&   r   c                   ó*   • \ rS rSrSS jrS rS rSrg)ÚTestPassManagerFunctionalityéL   Nc                 ó´   ^^^• U R                  TSL5        U R                  TSL5        [        SSS9 " U4S jST5      5       m " UU4S jS[        5      nU$ )zt
Creates a new compiler pipeline with the _InjectDelsPass injected after
the pass supplied in kwarg 'inject_after'.
NF)Úmutates_CFGÚanalysis_onlyc                   óD   >• \ rS rSrSrS\"  Y 5      -  rU 4S jrS rSr	g)ÚLTestPassManagerFunctionality._create_pipeline_w_del.<locals>._InjectDelsPasséV   z,
This pass injects ir.Del nodes into the IR
zinject_dels_%sc                 ó(   >• TR                  U 5        g r   )Ú__init__)r    Úbases    €r$   rg   ÚUTestPassManagerFunctionality._create_pipeline_w_del.<locals>._InjectDelsPass.__init__]   s   ø€ Ø—‘˜dÕ#r&   c                 ób   • [         R                  " UR                  5      nUR                  SS9  g)NT)Ú	emit_dels)r   ÚPostProcessorr)   Úrun)r    ÚstateÚpps      r$   Úrun_passÚUTestPassManagerFunctionality._create_pipeline_w_del.<locals>._InjectDelsPass.run_pass`   s'   € Ü×+Ò+¨E¯M©MÓ:�Ø—‘ �Ñ&Ør&   r-   N)
r.   r/   r0   r1   Ú__doc__ÚstrÚ_namerg   rp   r2   )rh   s   €r$   Ú_InjectDelsPassrd   V   s"   ø† ñð %¡s©4£yÑ0ˆEõ$õr&   ru   c                   ó$   >• \ rS rSrU U4S jrSrg)ÚITestPassManagerFunctionality._create_pipeline_w_del.<locals>.TestCompilerée   c                 óŽ   >• [         R                  " U R                  5      nUR                  TT5        UR	                  5         U/$ r   )r   Údefine_nopython_pipelinern   Úadd_pass_afterÚfinalize)r    Úpmru   Úinject_afters     €€r$   Údefine_pipelinesÚZTestPassManagerFunctionality._create_pipeline_w_del.<locals>.TestCompiler.define_pipelinesg   s7   ø€ Ü'×@Ò@ÀÇÁÓL�Ø×!Ñ! /°<Ô@Ø—‘”Ø�t�r&   r-   N)r.   r/   r0   r1   r   r2   )ru   r~   s   €€r$   ÚTestCompilerrw   e   s   ø† ÷ñ r&   r�   )Ú
assertTruer   r   )r    rh   r~   r�   ru   s    `` @r$   Ú_create_pipeline_w_delÚ3TestPassManagerFunctionality._create_pipeline_w_delN   s`   ú€ ð
 	�‰˜¨DÐ0Ô1Ø�‰˜ DÐ(Ô)ä	 5¸Ñ	>÷	˜dó 	ó 
?ð	÷	ð 	œ8ô 	ð Ðr&   c                 óJ  • U R                  [        [        5      n[        US9S 5       nU R	                  [
        R                  5       nU" S5        S S S 5        [        WR                  5      nU R                  SU5        U R                  SU5        g ! , (       d  f       NH= f)Nr8   c                 ó   • U S-   $ ©NrP   r-   r:   s    r$   r<   ÚYTestPassManagerFunctionality.test_compiler_error_on_ir_del_from_functionpass.<locals>.foos   ó   € à�q‘5ˆLr&   é
   zIllegal IR, del found at:zdel x)
rƒ   r   r   r   ÚassertRaisesr   ÚCompilerErrorrs   Ú	exceptionÚassertIn)r    Únew_compilerr<   ÚraisesÚerrstrs        r$   Ú/test_compiler_error_on_ir_del_from_functionpassÚLTestPassManagerFunctionality.test_compiler_error_on_ir_del_from_functionpasso   s�   € Ø×2Ñ2´<Ü3CóEˆô 
˜\Ñ	*ñ	ó 
+ð	ð ×Ñœv×3Ñ3Ô4¸Ù�ŒG÷ 5ô �V×%Ñ%Ó&ˆà�‰Ð1°6Ô:Ø�‰�g˜vÕ&÷ 5Õ4ús   Á		BÂ
B"c                 ó¤   • U R                  [        [        5      n[        US9S 5       nU R	                  U" S5      UR                  S5      5        g )Nr8   c                 ó   • U S-   $ r‡   r-   r:   s    r$   r<   Ú]TestPassManagerFunctionality.test_no_compiler_error_on_ir_del_after_legalization.<locals>.foo‹   r‰   r&   rŠ   )rƒ   r   r	   r   r‚   rB   )r    r�   r<   s      r$   Ú3test_no_compiler_error_on_ir_del_after_legalizationÚPTestPassManagerFunctionality.test_no_compiler_error_on_ir_del_after_legalization   sO   € ð ×2Ñ2´<Ü3AóCˆô 
˜\Ñ	*ñ	ó 
+ð	ð 	�‰™˜B› §¡¨R£Õ1r&   r-   )NN)r.   r/   r0   r1   rƒ   r’   r—   r2   r-   r&   r$   r^   r^   L   s   † ôòB'õ 2r&   r^   N)Únumba.core.compilerr   r   Únumba.core.compiler_machineryr   r   r   Únumba.core.untyped_passesr   Únumba.core.typed_passesr	   Únumbar
   r   r   r   Ú
numba.corer   r   r   Únumba.core.irr   Únumba.tests.supportr   r   r^   r-   r&   r$   Ú<module>r¡      sE   ðß <÷:ñ :å 6Ý 2ß +Ó +ß .Ñ .Ý $Ý (ô=2˜ô =2ô@C2 8õ C2r&   