+
    ;i>                         ^ RI t ^ RIt^ RIHt ^ RIt^ RIHt ^ RI	H
t
Ht ^ RIHt ^ RIHt ^ RIHtHt ]R 4       t ! R R	]4      t ! R
 R]4      t]R8X  d   ] P.                  ! 4        R# R# )    N)contextmanager)njittypes)NumbaInvalidConfigWarning)_parse_refprune_flags)override_configTestCasec              #   x   "   \        R V 4      ;_uu_ 4        Rx  RRR4       R#   + '       g   i     R# ; i5i)LLVM_REFPRUNE_FLAGSN)r   )flagss   &\/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_refop_pruning.pyset_refprune_flagsr      s$     	.	6	6 
7	6	6	6s   :&
:7		:c                     a  ] tR t^t o RtR t]P                  R 4       t]P                  R 4       t	]P                  R 4       t
]P                  R 4       t]P                  R 4       t]P                  R 4       tR	tV tR
# )TestRefOpPruningFc                $   \        RR4      ;_uu_ 4        \        . VO54      ! V4      P                  . VO5,          pRRR4       XP                  P	                  RR4      pV P                  V4       VP                  4        Fv  w  rg\        WVR4      pV P                  V4       RV 2p	V'       d4   VR8X  d   V P                  V^ V	R7       KL  V P                  V^ V	R7       Kb  V P                  V^ V	R7       Kx  	  R#   + '       g   i     L; i)a  
Asserts the func compiled with argument types "argtys" reports
refop pruning statistics. The **prune_types** kwargs list each kind
of pruning and whether the stat should be zero (False) or >0 (True).

Note: The exact statistic varies across platform.

NOTE: Tests using this `check` method need to run in subprocesses as
`njit` sets up the module pass manager etc once and the overrides have
no effect else.
LLVM_REFPRUNE_PASS1Nprune_statszfailed checking fanout_raise)msg)r   r   	overloadsmetadatagetassertIsNotNoneitemsgetattrassertGreaterEqualassertGreaterassertEqual)
selffuncargtysprune_typescrespstatskvstatr   s
   &&*,      r   checkTestRefOpPruning.check   s     1377
&
#D)33JfJ?D 8 ""=$7V$%%'DA6d+D  &$QC(C&++D!+=&&tQC&8  qc 2 ( 87s   )C??D	c                P    R  pV P                  V\        P                  RR7       R# )c                     \         P                  ! V 4      p^ pV ^8  d   VR,          pW#^,          ,          pV# VRR pW$^ ,          ,          pV# )r   :   NNNnpzeros)naaccbcs   &    r   r!   1TestRefOpPruning.test_basic_block_1.<locals>.func<   sS    AC1ubEt J crFtJ    T)
basicblockNr)   r   intpr    r!   s   & r   test_basic_block_1#TestRefOpPruning.test_basic_block_18   s    		 	

4%**$
7r8   c                    R  p\        R4      ;_uu_ 4        V P                  V\        P                  RRRRR7       RRR4       R#   + '       g   i     R# ; i)c                 r    \         P                  ! V 4      p^ pV ^8  d   VP                  4       pV^,           # r   )r0   onessum)r2   r3   xs   &  r   r!   -TestRefOpPruning.test_diamond_1.<locals>.funcL   s/    
AA1uEEGq5Lr8   per_bb,diamondTFr9   diamondfanoutr   Nr   r)   r   r;   r<   s   & r   test_diamond_1TestRefOpPruning.test_diamond_1I   sF    	   011JJtejjdD#%  9 2111   &AA	c                    R  p\        R4      ;_uu_ 4        V P                  V\        P                  RRRRR7       RRR4       R#   + '       g   i     R# ; i)c                     . p\        V 4       F(  pVP                  \        P                  ! V4      4       K*  	  R pV F1  pW4P	                  4       ^VP
                  ,           ,          ,          pK3  	  V# g        )rangeappendr0   arangerC   size)r2   conir6   arrs   &    r   r!   -TestRefOpPruning.test_diamond_2.<locals>.func[   sX    C1X

299Q<( AWWY!chh,// Hr8   rF   TFrG   NrJ   r<   s   & r   test_diamond_2TestRefOpPruning.test_diamond_2X   sF    	   011JJtejjdD#%  9 2111rM   c                R    R  pV P                  V\        P                  RRR7       R# )c                     \         P                  ! V 4      p\         P                  ! V 4      pW3pR pV F  pWE^ ,          ,          pK  	  V# rP   r/   )r2   r3   r5   rD   r4   rV   s   &     r   r!   ,TestRefOpPruning.test_fanout_1.<locals>.funcl   sB    AAACt Jr8   T)r9   rI   Nr:   r<   s   & r   test_fanout_1TestRefOpPruning.test_fanout_1i   s!    	 	

4%**$t
Dr8   c                    R  p\        R4      ;_uu_ 4        V P                  V\        P                  RRRRR7       RRR4       R#   + '       g   i     R# ; i)c                     \         P                  ! V 4      p\         P                  ! V 4      pW3pV F  pV '       g   K  \        h	  V# N)r0   r1   
ValueError)r2   r3   r5   rD   rV   s   &    r   r!   ,TestRefOpPruning.test_fanout_2.<locals>.funcz   s?    AAA1$$  Hr8   zper_bb,fanoutTFrG   NrJ   r<   s   & r   test_fanout_2TestRefOpPruning.test_fanout_2w   sE    	  00JJtejjdE"  8 1000rM   c                    R  p\        R4      ;_uu_ 4        V P                  V\        P                  RRRRR7       RRR4       R#   + '       g   i     R# ; i)c                     \         P                  ! V 4      p^ p\         P                  ! V4       F  pW#P                  4       ,          pK  	  ^# rA   )r0   rS   nditeritem)r2   aryr6   r'   s   &   r   r!   ,TestRefOpPruning.test_fanout_3.<locals>.func   s8    ))A,CA YYs^VVX $r8   zper_bb,fanout_raiseTFrG   NrJ   r<   s   & r   test_fanout_3TestRefOpPruning.test_fanout_3   sF    	   566JJtejjdE#$  8 7666rM    N)__name__
__module____qualname____firstlineno___numba_parallel_test_r)   r	   run_test_in_subprocessr=   rK   rY   r^   re   rm   __static_attributes____classdictcell____classdict__s   @r   r   r      s     !3> $$8 %8  $$9 %9 $$9 %9  $$E %E $$8 %8 $$8 %8r8   r   c                   D   a  ] tR t^t o R tR tR tR tR tR t	Rt
V tR# )	TestRefPruneFlagsc                <    \         P                  ! R \        4       R# )errorN)warningssimplefilterr   r    s   &r   setUpTestRefPruneFlags.setUp   s    g'@Ar8   c                0    \         P                  ! 4        R # rb   )r~   resetwarningsr   s   &r   tearDownTestRefPruneFlags.tearDown   s     r8   c           	     b   \        R 4      ;_uu_ 4        V P                  \        4      ;_uu_ 4       p\        4       pRRR4       V P	                  \        XP                  4      ^4       V P                  R\        VP                  ^ ,          P                  4      4       V P                  R\        VP                  ^,          P                  4      4       V P	                  X\        P                  P                  4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zabc,per_bb,cdeNabccde)r   assertWarnsr   r   r   lenr~   assertInstrmessagellvmRefPruneSubpassesPER_BB)r    cmoptvals   &  r   test_warn_invalid_flags)TestRefPruneFlags.test_warn_invalid_flags   s     011!!";<<.0 =S-q1MM%R[[^%;%;!<=MM%R[[^%;%;!<=VT%;%;%B%BC 21<< 211s"   DD
	CD
DDD.	c                    \        R 4      ;_uu_ 4        \        4       pV P                  V\        P                  P
                  4       RRR4       R#   + '       g   i     R# ; i)z$per_bb, diamond, fanout,fanout_raiseNr   r   r   r   r   ALLr    r   s   & r   test_valid_flag!TestRefPruneFlags.test_valid_flag   sB     FGG*,FVT%;%;%?%?@ HGGG   5AA$	c                    \        R 4      ;_uu_ 4        \        4       pV P                  V\        P                  P
                  4       RRR4       R#   + '       g   i     R# ; i)allNr   r   s   & r   test_the_all_flag#TestRefPruneFlags.test_the_all_flag   s@    &&*,FVT%;%;%?%?@ '&&&r   c                    \        R 4      ;_uu_ 4        \        4       p\        P                  pV P	                  WP
                  VP                  ,          4       RRR4       R#   + '       g   i     R# ; i)zper_bb, fanoutN)r   r   r   r   r   r   FANOUT)r    r   enumclss   &  r   test_some_flags!TestRefPruneFlags.test_some_flags   sK     011*,F,,GV^^gnn%DE 2111s   AA%%A6	ro   N)rp   rq   rr   rs   r   r   r   r   r   r   rv   rw   rx   s   @r   r{   r{      s.     B!DA
A
F Fr8   r{   __main__)unittestr~   
contextlibr   numpyr0   llvmlite.bindingbindingr   numbar   r   numba.core.errorsr   numba.core.codegenr   numba.tests.supportr   r	   r   r   r{   rp   mainro   r8   r   <module>r      sj      %    7 4 9  
A8x A8HF FB zMMO r8   