+
    :i%                     x   ^ RI t ^ RIHtHt ^ RIHt ^ RIHtHt ^ RI	H
t
 ^ RIHtHtHtHtHtHt ^ RIHtHtHtHt ^ RIHtHtHt ^ R	IHt ^t]! R
] P<                  P                  P?                  ] P@                  4      3.4       ! R R]!4      4       t" ! R R]4      t#]$R8X  d   ]PJ                  ! 4        R# R# )    N)TestCaseunittest)
cpu_target)CompilerBaseFlags)PassManager)typesirbytecodecompilerir_utilsregistry)ExtractByteCodeTranslateByteCode	FixupArgsIRProcessing)NopythonTypeInferencetype_inference_stageDeadCodeElimination)jitclassvalc                   &   a  ] tR t^t o R tRtV tR# )Dummyc                    Wn         R # Nr   )selfr   s   &&W/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_ir_utils.py__init__Dummy.__init__   s        r   N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   r   r      s      r!   r   c                   <   a  ] tR t^t o RtR tR tR tR tRt	V t
R# )TestIrUtilsz9
Tests ir handling utility functions like find_callname.
c                   R p\         P                  ! V4      p\        P                  p\        P                  p\        W4VRR4      p\        P                  ! W"P                  ^ ,          P                  ^,          P                  VP                  4      pT P                  \        V\        4      ;'       d#    \        V4      ^8H  ;'       d    V^ ,          R8H  4       R# )zGTest matching of an object method (other than Array see #3449)
        c                  T    \        ^.4      p V P                  P                  ^4       R# )   N)r   r   append)ds    r   	test_func2TestIrUtils.test_obj_func_match.<locals>.test_func!   s    qc
AEELLOr!   Nr/    )r   run_frontendr   typing_contexttarget_contextr   r   find_callnameblocksbodyvaluetypemap
assertTrue
isinstancetuplelen)r   r1   test_ir	typingctx	targetctx
typing_resmatched_calls   &      r   test_obj_func_matchTestIrUtils.test_obj_func_match   s    	 ''	2--	--	)'2t5
--^^A&++A.44j6H6HJ
<7 4 4L)Q.4 4$Q83	5r!   c                   a   ! R  R\         4      pV 3R lpV 3R lpR pVP                  \        P                  34      pVP	                  V4      pV! V4      pVP                  \        P                  34      pVP	                  VRR7      pV! V4       S P                  \        VP                  ^ ,          P                  4      \        V4      ,
          \        VP                  ^ ,          P                  4      4       R# )c                   >   a  ] tR t^2t o ]RR l4       tRR ltRtV tR# )6TestIrUtils.test_dead_code_elimination.<locals>.TesterNc           	         Vf   / pV'       g   \        4       pRVn        Vf   \        P                  P                  pVf   \        P                  P
                  pV ! WgWQW#V4      # )NT)r   nrtr   r   r5   r6   )clsargsreturn_typeflagslocalslibraryr5   r6   s   &&&&&&&&r   mk_pipelineBTestIrUtils.test_dead_code_elimination.<locals>.Tester.mk_pipeline4   sc     >F!GE 	!)%-%8%8%G%GN!)%-%8%8%G%GN>7&v7 7r!   c                   \         P                  P                  V4      pW0P                  n        \        4       P                  V P                  4       V P                  pRp\        V4      pVP                  \        R4       VP                  \        R4       VP                  \        R4       VP                  \        R4       VRJ d   VP                  \        R4       VP                  4        VP                  V4       VP                   # )z
Compile and return IR
DCE_testingzanalyzing bytecodezfix up argszprocessing IRznopython frontendTzDCE after typing)r   FunctionIdentityfrom_functionstatefunc_idr   run_passr   add_passr   r   r   r   r   finalizerunfunc_ir)r   funcDCErY   rX   namepms   &&&    r   compile_to_irDTestIrUtils.test_dead_code_elimination.<locals>.Tester.compile_to_irK   s     #33AA$G%,

"!**4::6

$ &-/CDI}5L/:13FG$;KK 35GHu}}$r!   r3   )NNNNNN)F)	r"   r#   r$   r%   classmethodrR   rc   r&   r'   r(   s   @r   TesterrI   2   s!     7 7,% %r!   rf   c                   < SP                  \        V P                  4      ^4       V P                  ^ ,          p. pVP                  \        P
                  4       F_  p\        \        VRR4      \        P                  4      '       g   K0  R\        VP                  RR4      9   g   KN  VP                  V4       Ka  	  SP                  \        V4      ^4       V F_  pV P                  VP                  4      pSP                  \        RVP                  P                  ,          ^4      VP                  4       Ka  	  V# )r.   targetNdeadra    z0x%s)assertEqualr?   r8   
find_instsr
   Assignr=   getattrVarrh   r/   get_definitionr:   r<   intra   )the_irblockdeadsxr0   	const_valr   s   &     r   check_initial_ir@TestIrUtils.test_dead_code_elimination.<locals>.check_initial_ir`   s     S/3MM!$EE%%bii0ga48"&&AA62!>>Q 1
 SZ+"11!'':	FQXX]]$:B ? )1  Lr!   c                   < SP                  \        V P                  4      ^4       V P                  ^ ,          p. p. pVP                  \        P
                  4       F  p\        \        VRR4      \        P                  4      '       d.   R\        VP                  RR4      9   d   VP                  V4       \        \        VRR4      \        P                  4      '       g   K  VP                  V4       K  	  SP                  \        V4      ^ 4       V F+  pSP                  VP                  P                  R9  4       K-  	  R# )r.   rh   Nri   ra   rj   r:   )     ^[= )rk   r?   r8   rl   r
   rm   r=   rn   ro   rh   r/   Constr<   r:   )rr   rs   rt   constsru   r   s   &    r   check_dce_ir<TestIrUtils.test_dead_code_elimination.<locals>.check_dce_iry   s    S/3MM!$EEF%%bii0ga48"&&AA62!>>Qga$7BBMM!$ 1 SZ+ 5I IJ r!   c                 B    V ^,           pRpV^,           pRpW3,          pV# )r.   rz   r{   r3   )ru   yri   zdeaddeadrets   &     r   foo3TestIrUtils.test_dead_code_elimination.<locals>.foo   s*    AADAA!H%CJr!   T)r`   N)	r   rR   r	   intprc   rk   r?   r8   r9   )	r   rf   rw   r~   r   test_pipelineno_dceremovedw_dces	   f        r   test_dead_code_elimination&TestIrUtils.test_dead_code_elimination0   s    ,	%\ ,	%\	2	K$	 **EJJ=9,,S1"6***EJJ=9++CT+:U 	V]]1-223c'lBU\\!_112	4r!   c                  a ^oV3R lp\         P                  ! V4      pVP                  ^ ,          pRpRpVP                   F  p\	        V\
        P                  4      '       dK   VP                  P                  R8X  d0   \        P                  ! \        P                  W&P                  4      p\	        V\
        P                  4      '       g   K  VP                  P                  R8X  g   K  \        P                  ! \        P                  W&P                  4      pK  	  V P                  V\        4       V P                  VS4       R# )z~
Test find_const() for values in globals (ir.Global) and freevars
(ir.FreeVar) that are considered constants for compilation.
c                 2   < \         pSpW,           V,           # r   )GLOBAL_B)abc	FREEVAR_Cs   &  r   r   /TestIrUtils.test_find_const_global.<locals>.foo   s    AA519r!   Nr   r   )r   r4   r8   r9   r=   r
   rm   rh   ra   r   guard
find_constrk   r   )r   r   f_irrs   const_bconst_cinstr   s   &      @r   test_find_const_global"TestIrUtils.test_find_const_global   s    
 		
 $$S)AJJD$		**t{{/?/?3/F"..''{{<$		**t{{/?/?3/F"..''{{<  	(+),r!   c                   a  R pR pR pV 3R lpV! V4      pV! V4      pV! V4      pS P                  WV4       S P                  WW4       R# )ztests flatten_labels c                     ^ pV ^8  d   V^,          pV ^8  d   ^5# MPV R8  d?   V ^8  d
   V^,          p\        ^
4       F  pV^,          pV^8  g   K   M	  V^,          pM\        R4      h^p^p^p^pV# r   i  zsome stringrange
ValueErrorr   accru   py310_defeat1py310_defeat2py310_defeat3py310_defeat4s   &      r   r   ,TestIrUtils.test_flatten_labels.<locals>.foo   s    C1uqr6 T71HCrA1HCQw #
 1HC //MMMMJr!   c                 L   ^ p^pV ^8  d&   V^,          pV^,          pV ^8  d   V^,          p^5# MkV R8  dZ   V ^8  d   V^,          pV^,          p\        ^
4       F  pV^,          pV^,          pV^8  g   K   M 	  V^,          pV^,          pM\        R4      h^p^p^p^pV# r   r   )r   r   r   ru   r   r   r   r   s   &       r   bar,TestIrUtils.test_flatten_labels.<locals>.bar   s    CA1uqRr6GA  T7GA1HCrAGA1HCQw	 # GA1HC //MMMMJr!   c                     ^ pV ^8  d   V^,          pV ^8  d   ^5# ^7# V R8  d?   V ^8  d
   V^,          p\        ^
4       F  pV^,          pV^8  g   K   M	  V^,          pM\        R4      h^p^p^p^pV# r   r   r   s   &      r   baz,TestIrUtils.test_flatten_labels.<locals>.baz   s    C1uqr6T71HCrA1HCQw #
 1HC //MMMMJr!   c                 4  < \         P                  ! V \        4       4      p\         P                  ! VP                  4      pSP                  \        VP                  4       4      ^,           \        VP                  4      4       \         P                  ! V4      # )r.   )
r   compile_to_numba_irdictflatten_labelsr8   rk   maxkeysr?   compute_cfg_from_blocks)r_   r^   flat_blocksr   s   &  r   get_flat_cfg5TestIrUtils.test_flatten_labels.<locals>.get_flat_cfg  sh    224@G"11'..AKS!1!1!34q8#gnn:MN33K@@r!   N)rk   assertNotEqual)r   r   r   r   r   foo_cfgbar_cfgbaz_cfgs   f       r   test_flatten_labelsTestIrUtils.test_flatten_labels   sT    	0	:	2	A s#s#s#*G-r!   r3   N)r"   r#   r$   r%   __doc__rE   r   r   r   r&   r'   r(   s   @r   r+   r+      s'     5&m4^-8[. [.r!   r+   __main__)&numbanumba.tests.supportr   r   numba.core.registryr   numba.core.compilerr   r   numba.core.compiler_machineryr   
numba.corer	   r
   r   r   r   r   numba.core.untyped_passesr   r   r   r   numba.core.typed_passesr   r   r   numba.experimentalr   r   coreListr   objectr   r+   r"   mainr3   r!   r   <module>r      s     2 * 3 5 H HA AP P '  
E5::##((45
67F  8
~.( ~.B zMMO r!   