
    J/PhJ                        d Z ddlZddlZddlZddlZddlmZmZm	Z	 ddl
mZmZ ddlmZmZ ddlmZmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZmZmZ dZerS ej        d          Z e !                    ej"                   e #                     ej$        ej%                              G d de          Z& G d de&          Z' G d de&          Z( G d dee          Z)dS )z
Tests for SSA reconstruction
    N)njitjittypes)errorsir)FunctionPassregister_pass)DefaultPassBuilderCompilerBase)ReconstructSSA
PreserveIR)NativeLowering)overload)MemoryLeakMixinTestCaseoverride_configFznumba.core.ssa)levelc                       e Zd Zd ZdS )SSABaseTestc                      |t          j        |           } |j        t          j        |           }|                     ||           d S N)copydeepcopypy_funcassertEqual)selffuncargsgotexps        T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_ssa.py
check_funczSSABaseTest.check_func   sL    dDM$''(dlDM$//0c"""""    N)__name__
__module____qualname__r"    r#   r!   r   r      s#        # # # # #r#   r   c                   H    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestSSAz8
    Contains tests to help isolate problems in SSA
    c                 R    t           d             }|                     |d           d S )Nc                     | dz  } | S N   r'   xs    r!   fooz.TestSSA.test_argument_name_reused.<locals>.foo+   s    FAHr#   {   r   r"   r   r0   s     r!   test_argument_name_reusedz!TestSSA.test_argument_name_reused*   s7    		 	 
	 	S!!!!!r#   c                     t           d             }|                     |dd           |                     |dd           d S )Nc                 &    | |z  }| |k     r| }n|}|S r   r'   )r/   yzs      r!   r0   z*TestSSA.test_if_else_redefine.<locals>.foo3   s%    AA1uuHr#         r2   r3   s     r!   test_if_else_redefinezTestSSA.test_if_else_redefine2   sO    		 	 
	 	Q"""Q"""""r#   c                 ~    t           d             }|                     |d           |                     |d           d S )Nc                 8    d}t          |           D ]}||z  }|S Nr   range)ncis      r!   r0   z"TestSSA.test_sum_loop.<locals>.foo@   s,    A1XX  QHr#   r   
   r2   r3   s     r!   test_sum_loopzTestSSA.test_sum_loop?   sK    		 	 
	 	QR     r#   c                 ~    t           d             }|                     |d           |                     |d           d S )Nc                 J    d}| }t          |           D ]}||z  }|| z  }||fS r>   r?   )rA   rB   drC   s       r!   r0   z(TestSSA.test_sum_loop_2vars.<locals>.fooK   s>    AA1XX  QQa4Kr#   r   rD   r2   r3   s     r!   test_sum_loop_2varszTestSSA.test_sum_loop_2varsJ   sK    		 	 
	 	QR     r#   c                 ~    t           d             }|                     |d           |                     |d           d S )Nc                 f    d}t          |           D ]}t          |           D ]}||z  }||z  }|S r>   r?   )rA   rB   rC   js       r!   r0   z%TestSSA.test_sum_2d_loop.<locals>.fooX   sL    A1XX  q  AFAAQHr#   r   rD   r2   r3   s     r!   test_sum_2d_loopzTestSSA.test_sum_2d_loopW   sK    		 	 
	 	QR     r#   c                    t           d             }|rv|                     t          j                  5 }|                     |d           d d d            n# 1 swxY w Y   |                     dt          |j                             n|                     |d           |                     t                    5  |
                    d           d d d            d S # 1 swxY w Y   d S )Nc                 (    | r
| dk    rd}|S |dz  }|S Nr   r-   r'   )rA   rB   s     r!   r0   z(TestSSA.check_undefined_var.<locals>.fooe   s-     q55A Qr#   r-   z!Detected uninitialized variable cr   )r   assertWarnsr   NumbaWarningr"   assertInstrwarningassertRaisesUnboundLocalErrorr   )r   should_warnr0   warnss       r!   check_undefined_varzTestSSA.check_undefined_vard   sm   		 	 
	  	$!!&"566 (%Q'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( MM=em,,. . . . OOC###011 	 	KKNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AAA9CC #C c                     t          dd          5  |                     d           d d d            n# 1 swxY w Y   t          dd          5  |                     d           d d d            d S # 1 swxY w Y   d S )NALWAYS_WARN_UNINIT_VARr   F)rX   r-   T)r   rZ   r   s    r!   test_undefined_varzTestSSA.test_undefined_var|   s   5q99 	8 	8$$$777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	85q99 	7 	7$$$666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   488A33A7:A7c                 z    t           d             }|                     |t          j        ddg                     d S )Nc                 >   d}d}d}|dk    r|t          |           k     r{|dz  }| |         rP| |         r| |         r|dz  }| |xx         dz  cc<   n| |         r|dz  }| |xx         dz  cc<   ||z  }| |         P||z  }|dk    r|t          |           k     {||fS )Nr-   r   rD      )len)actionsrA   rC   cts       r!   r0   z)TestSSA.test_phi_propagation.<locals>.foo   s    AABa%%AG,,Qaj 
qz ("1: $GA


a



"1: $GA


a


!GB aj 
 a a%%AG,, q5Lr#   r-   r:   )r   r"   nparrayr3   s     r!   test_phi_propagationzTestSSA.test_phi_propagation   sE    		 	 
	, 	RXq!f--.....r#   c                     d } |ddddd          } t          |          ddddd          }|                     ||           d S )Nc                 j    | r
|}|}|}| }d S |r
|r|}	d S |}
d S |r|r
|r|
}d S |}|S |r|}| S |}
|S |}d S r   r'   )arg1arg2arg3arg4arg5var1var2var3var4var5var6var7var8var9var10s                  r!   	function1z3TestSSA.test_unhandled_undefined.<locals>.function1   s     (   ##   ## ,'+ &'+'+  $ ,'+'+'+'+  $r#   r:   r9      r      )r   r   )r   ry   expectr   s       r!   test_unhandled_undefinedz TestSSA.test_unhandled_undefined   sd    *	 *	 *	\ 1aAq))d9ooaAq!,,%%%%%r#   N)r$   r%   r&   __doc__r4   r;   rE   rI   rM   rZ   r^   rg   r}   r'   r#   r!   r)   r)   %   s         " " "# # #	! 	! 	!! ! !! ! !  07 7 7/ / /41& 1& 1& 1& 1&r#   r)   c                   b    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZdS )TestReportedSSAIssuesc                 P    t           d             }|                     |           d S )Nc                      t          j        d          } t          j        d          }t          |          D ]}d| |<   t          |d          D ]}d S r,   )re   emptyuint32r@   )VsrC   s      r!   r0   z1TestReportedSSAIssues.test_issue2194.<locals>.foo   s`    A	!A1XX  !1a[[   r#   r2   r3   s     r!   test_issue2194z$TestReportedSSAIssues.test_issue2194   s5    		 	 
	 	r#   c                 x    t           d             t           fd            }|                     |d           d S )Nc                     | S r   r'   r.   s    r!   doitz2TestReportedSSAIssues.test_issue3094.<locals>.doit   s    Hr#   c                 (    | rd}nd} |          S )NTFr'   )predr/   r   s     r!   r0   z1TestReportedSSAIssues.test_issue3094.<locals>.foo   s$     477Nr#   Fr2   )r   r0   r   s     @r!   test_issue3094z$TestReportedSSAIssues.test_issue3094   s]    		 	 
	 
	 	 	 	 
	 	U#####r#   c                     t           d             }t          j                             |t          j        d                    |                    t          j        d                               d S )Nc                     t          d          D ]-}|                     d          } |                     dd          } .| S )Nr-   rz   r9   r:   )r@   reshape)arrrC   s     r!   r0   z1TestReportedSSAIssues.test_issue3931.<locals>.foo   sB    1XX ( (kk%((kk!Q''Lr#   )r9   r:   )r   re   testingassert_allclosezerosr   r3   s     r!   test_issue3931z$TestReportedSSAIssues.test_issue3931   su    		 	 
	 	
""33rx'7'7#8#8#&;;rx/?/?#@#@	B 	B 	B 	B 	Br#   c                     d t           fd            }t                    fd            }|                     |d           d S )Nc                     dS )Ndummyr'   )as    r!   overload_thisz;TestReportedSSAIssues.test_issue3976.<locals>.overload_this  s    7r#   c                 ,    | rd} |          }nd}|S )N   br'   )r   r   r   s     r!   r0   z1TestReportedSSAIssues.test_issue3976.<locals>.foo  s+     !M!$$Hr#   c                     S r   r'   )r   r   s    r!   olz0TestReportedSSAIssues.test_issue3976.<locals>.ol  s	      r#   T)r   r   r"   )r   r0   r   r   s      @r!   test_issue3976z$TestReportedSSAIssues.test_issue3976   s    	 	 	 
	 	 	 	 
	 
-	 	 	! 	! 	! 	! 
!	 	! 	T"""""r#   c                 T    t           d             }|                     |dd           d S )Nc                 F    | d         }|d         }| D ]}|}|D ]}|}||fS r>   r'   )ABr/   r7   rC   s        r!   r0   z1TestReportedSSAIssues.test_issue3979.<locals>.foo  sI    !A!A    a4Kr#   )r-   r:   )r   r   r2   r3   s     r!   test_issue3979z$TestReportedSSAIssues.test_issue3979  s9    		 	 
	 	VZ00000r#   c                     ddt                    dd            }t          fd            }|                     |dd           d S )Nc                 @    t          |t                    r|d         }|S r>   )
isinstancetuple)r   r   s     r!   r   z;TestReportedSSAIssues.test_issue5219.<locals>.overload_this$  s"    !U## aDHr#   c                 `    t          |t          j        t          j        f          dfd	}|S )Nc                      du r|d         }|S )NTr   r'   )r   r   
b_is_tuples     r!   implz>TestReportedSSAIssues.test_issue5219.<locals>.ol.<locals>.impl-  s    %%!Ar#   r   )r   r   TupleUniTuple)r   r   r   r   s      @r!   r   z0TestReportedSSAIssues.test_issue5219.<locals>.ol)  s@    #AU^'DEEJ      Kr#   c                       | |           d S r   r'   )r   r   r   s     r!   
test_tuplez8TestReportedSSAIssues.test_issue5219.<locals>.test_tuple3  s    M!Qr#   r-   )r:   r   )r   r   r"   )r   r   r   r   s      @r!   test_issue5219z$TestReportedSSAIssues.test_issue5219"  s    	 	 	 	
 
-	 	 	 	 	 
!	 	 
	  	  	  	  
	  	
Au-----r#   c                     t           d             }t          j        d          }d|j        _        t          j                             ||          |                    |                     d S )Nc                     t          |           dk    r| S |                                 } t          t          |                     D ]}| |xx         dz  cc<   | S )Nr   r-   )rb   r   r@   )r/   rC   s     r!   barz1TestReportedSSAIssues.test_issue5223.<locals>.bar;  sZ    1vv{{A3q66]]  !	Hr#   r   F)r   re   onesflags	writeabler   r   r   )r   r   r   s      r!   test_issue5223z$TestReportedSSAIssues.test_issue52239  sd    		 	 
	 GAJJ!

""33q663;;q>>:::::r#   c                 v    t           d             }|                     |t          j        d                     d S )Nc                 x    t          j        d          }t          j        d          }| d         |d<   |d         S )N)g?g333333?g333333?)r9   r9   )r   r   r   )re   rf   r   )qlinstencils      r!   r0   z1TestReportedSSAIssues.test_issue5243.<locals>.fooK  s6    (?++Chv&&GdGGDMq6Mr#   )r:   r:   )r   r"   re   r   r3   s     r!   test_issue5243z$TestReportedSSAIssues.test_issue5243I  sA    		 	 
	 	RXf--.....r#   c                 6    t          d          d             }d S )N(intp, intp, intp)c                 b    t          |          D ]}|dk    r
|| k    r|}|| k    r||z   }|S r>   r?   r/   vrA   rC   problematics        r!   r0   zGTestReportedSSAIssues.test_issue5482_missing_variable_init.<locals>.fooW  sP    1XX 
6 
666Avv&'Avv&1Aor#   )r   r3   s     r!   $test_issue5482_missing_variable_initz:TestReportedSSAIssues.test_issue5482_missing_variable_initT  s1     
"	#	#	 	 
$	#	 	 	r#   c                     ddl m}m ddlmm ddlm  G fdd|          }t          dd|	          d
             }d S )Nr   r   r
   )r   IRProcessing)PreLowerStripPhisc                        e Zd Z fdZdS )WTestReportedSSAIssues.test_issue5482_objmode_expr_null_lowering.<locals>.CustomPipelinec                      j         | j                  }|                               |                               |                                 |gS r   )define_objectmode_pipelinestateadd_pass_afterfinalize)r   pmr
   r   r   r   s     r!   define_pipelineszhTestReportedSSAIssues.test_issue5482_objmode_expr_null_lowering.<locals>.CustomPipeline.define_pipelineso  sY    B'B4:NN!!.,???!!"3^DDDtr#   Nr$   r%   r&   r   )r
   r   r   r   s   r!   CustomPipeliner   n  s=                 r#   r   r   F)loopliftpipeline_classc                 b    t          |          D ]}||k    r
|| k    r|}|| k    r||z   }|S r   r?   r   s        r!   r0   zLTestReportedSSAIssues.test_issue5482_objmode_expr_null_lowering.<locals>.foow  sR     1XX 
6 
666Avv&'Avv&1Aor#   )	numba.core.compilerr   r
   numba.core.untyped_passesr   r   numba.core.typed_passesr   r   )r   r   r   r0   r
   r   r   r   s       @@@@r!   )test_issue5482_objmode_expr_null_loweringz?TestReportedSSAIssues.test_issue5482_objmode_expr_null_loweringf  s     	IHHHHHHHJJJJJJJJ======	 	 	 	 	 	 	 	 	 	\ 	 	 	 
!E*
, 
, 
,	 	
, 
,	 	 	r#   c                    t          j        d          t          j        d          f}t          j        d          t          j        d          fd} |dd|          } t          |          dd|          }  t          dd          |          dd|          }t           j                            ||           t           j                            ||           d S )	Nr:   r-   )r-   r-   c                 ,   t          |          dk    r	|d         }n-|d         }t          dt          |                    D ]}|z  }t          d|           D ]8}t          |          D ]&}	}|dk    r||dz
  k    r|}||dz
  k    r!||z   }'9|S )Nr-   r   )rb   r@   )
mrA   datav0_tidxr   r   r   s
           r!   r0   z>TestReportedSSAIssues.test_issue5493_unneeded_phi.<locals>.foo  s    4yyA~~!W!Wq#d)),,  A!GBB1a[[ : : 88 : :CAaxx!a%<< *+KK!a%<< *5/KK: r#   rD   TF)forceobjr   )re   r   r   r   r   assert_array_equal)r   r   r0   r|   res1res2r   r   s         @@r!   test_issue5493_unneeded_phiz1TestReportedSSAIssues.test_issue5493_unneeded_phi  s     

BGAJJ'GAJJGENN	 	 	 	 	 	2 RT""tCyyR&&61sD5111#66r2tDD

%%fd333

%%fd33333r#   c                 Z   d }t          j        ddg          } |d|           t          j        ddg          } t          |          d|           t          j        ddg          }t           j                            ||           t           j                            ||           d S )Nc                 B    d}d}| du r|||<   |dz  }|||<   |dz  }d S d S )Nr   r-   Tr'   )r   stackrC   rB   s       r!   r0   zMTestReportedSSAIssues.test_issue5623_equal_statements_in_same_bb.<locals>.foo  sD    AAt||aQaQ	 |r#   r   i  Tr-   )re   rf   r   r   r   )r   r0   pythonnbr|   s        r!   *test_issue5623_equal_statements_in_same_bbz@TestReportedSSAIssues.test_issue5623_equal_statements_in_same_bb  s    	 	 	 1c(##D&Xq#hS		$1a&!!

%%ff555

%%b&11111r#   c                 j   	 ddl m}m ddlmm}m} g 	 |dd           G 	 fdd|                       G fd	d
|          }t          |          dd            }                      |d          |	                    d                      
                    	dg           d S )Nr   r   )r   r   r	   FTmutates_CFGanalysis_onlyc                   H     e Zd Zj        j        dz   Z fdZfdZ xZS )MTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CheckSSAMinimalz.CheckSSAMinimalc                 J    t                                          |            d S r   )super__init__)r   	__class__s    r!   r   zVTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CheckSSAMinimal.__init__  s!      &&&&&r#   c           	          d}|j         j                                        D ]4}|t          t	          |                    d                              z  }5                    |           dS )Nr   phiT)func_irblocksvaluesrb   list
find_exprsappend)r   r   rd   blkphi_counters       r!   run_passzVTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CheckSSAMinimal.run_pass  si     =/6688 ; ;C#d3>>%#8#899:::BB""2&&&tr#   )r$   r%   r&   r   _namer   r  __classcell__)r   r  r   s   @r!   CheckSSAMinimalr     sd         N/2DDE' ' ' ' '        r#   r  c                       e Zd Z fdZdS )LTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CustomPipelinec                      j         | j                  }|                               |                                 |gS r   )define_nopython_pipeliner   r   r   )r   r   r  r
   r   s     r!   r   z]TestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CustomPipeline.define_pipelines  sB    @'@LL!!/>BBBtr#   Nr   )r  r
   r   s   r!   r   r	    s8                r#   r   r   r-   c                     t          j        | | f          }d}||k    rSt          t          |                    D ]+}t          t          |                    D ]}||z   |||f<   ,|dz  }||k    S|S rP   )re   r   r@   rb   )rA   max_iterr   rC   rL   ks         r!   	while_forzGTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.while_for  s    !AAAx--s1vv ' 'A"3q66]] ' '!"Q!A#'Q	 x--
 Hr#   rD   )r-   )r   r   r
   r   r   r   r	   r   assertPreciseEqualr   r   )
r   r   r   r	   r   r  r  r
   r   r  s
   `     @@@@r!   test_issue5678_non_minimal_phiz4TestReportedSSAIssues.test_issue5678_non_minimal_phi  sd    	IHHHHHHH	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	5	=	=	=	 	 	 	 	 	 	 	l 	 	 
>	=		 	 	 	 	 	 	 	 	\ 	 	 	 
^	,	,	,	 	 	 
-	,	 			"y/@/@/D/DEEEqc*****r#   c                      ddl m} ddlmm} d|f fd |dd           G fd	d
                       G fddt
                    }t          |          d             } |d           d S )Nr   )
FunctionIR)AnalysisPassr	   firc                    | j                                         ^}}|j                            d          }|                     |          }                    |j        d                               t          j	        |j
                   d S )NrH   r   )r   r   scopegetget_definitionr   oprS   r   	UNDEFINEDincoming_values)r  r  r   vardefnr   s        r!   checkzCTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.check  sw    
))++IS1)--$$C%%c**DTWe,,,MM",(<=====r#   FTr   c                   ,    e Zd ZdZdZ fdZfdZdS )FTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheckz3
            Check SSA on variable `d`
            	SSA_Checkc                 2                         |            d S r   )r   )r   r  s    r!   r   zOTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheck.__init__  s    %%d+++++r#   c                 (     |j                    dS )NF)r   )r   r   r   s     r!   r  zOTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheck.run_pass  s    em$$$ur#   N)r$   r%   r&   r~   r  r   r  )r  r   s   r!   SSACheckr"    sX           E, , , , ,      r#   r&  c                       e Zd ZdZ fdZdS )NTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheckPipelinez^Inject SSACheck pass into the default pipeline following the SSA
            pass
            c                     t          j        | j        d          }d|_        |                    t
                     |                                 |gS )Nssa_check_custom_pipelineF)r
   r  r   
_finalizedr   r   r   )r   pipeliner&  s     r!   r   z_TestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheckPipeline.define_pipelines  sW    -FJ ;= = ',#''.AAA!!### z!r#   N)r$   r%   r&   r~   r   )r&  s   r!   SSACheckPipeliner(    s8         " " " " " " "r#   r-  r  c                 ,    | dk    }|r| dz   }|o|dk    S )Nr   r   r'   )r   rB   rH   s      r!   r   zETestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.py_func!  s*    AA E;Qr#   rD   )numba.core.irr  numba.core.compiler_machineryr  r	   r   r   )r   r  r	   r-  r   r  r&  r   s   `    @@@r!   test_issue9242_use_not_dom_defz4TestReportedSSAIssues.test_issue9242_use_not_dom_def  s)   ,,,,,,	
 	
 	
 	
 	
 	
 	
 	

	>z 	> 	> 	> 	> 	> 	> 
5	=	=	=	 	 	 	 	 	 	 	| 	 	 
>	=		" 	" 	" 	" 	" 	" 	"| 	" 	" 	" 
-	.	.	.	 	 
/	.	 	r#   N)r$   r%   r&   r   r   r   r   r   r   r   r   r   r   r   r   r  r1  r'   r#   r!   r   r      s          $ $ $"
B 
B 
B# # #*1 1 1. . ..; ; ; 	/ 	/ 	/  $  B$4 $4 $4L2 2 2./+ /+ /+b4 4 4 4 4r#   r   c                       e Zd Zd ZdS )TestSROAIssuesc                 r  	 g 	t          dd           G 	fddt                                 G fddt                    }t          |          d	             }t	          j        d
          }|                      ||          |dz              |                     t          	          d           |                     	d         j	        j
        d           |j        |j        d                  j        d         }|                     t          |j                  dd           |j                                        \  }|                    t"          j                  }d |D             }|                     t          |          dd           |                     |d         |d         d           d S )NFT)r   r   c                   $    e Zd ZdZd Z fdZdS )ZTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CloneFoobarAssignmentsclone_foobar_assignments_passc                 .    t          j        |            d S r   )r   r   r]   s    r!   r   zcTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CloneFoobarAssignments.__init__<  s    %d+++++r#   c                 l   d}|j         j                                        D ]}g }|                    t          j                  D ]'}|j        j        dk    r|                    |           (|D ]C}t          j
        |          }|                    ||           d}                    |           D|S )NFfoobarT)r   r   r   
find_instsr   Assigntargetnamer  r   r   insert_after)r   r   mutatedr  to_cloneassignclonecloneds          r!   r  zcTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CloneFoobarAssignments.run_pass?  s     =/6688 - -C!H"%..";"; 4 4!=-99$OOF333"* - - $f 5 5((777"&e,,,,- r#   N)r$   r%   r&   r  r   r  )rD  s   r!   CloneFoobarAssignmentsr6  7  sD         4E, , ,      r#   rE  c                       e Zd Z fdZdS )RTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CustomCompilerc                     t          j        | j        d          }d|_        |                    t
                     |                    t          t                     |                                 |gS )Ncustom_pipelineF)	r
   r  r   r+  r   r   r   r   r   )r   r   rE  s     r!   r   zcTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CustomCompiler.define_pipelinesQ  sg    '@J 1  !&!!"8.III!!*n===tr#   Nr   )rE  s   r!   CustomCompilerrG  P  s.        
 
 
 
 
 
 
r#   rJ  r  c                     | dz   }|S r,   r'   )r   r:  s     r!   udtzGTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.udt]  s    1WFMr#   rD   r-   r   r:  preserved_irzonly one blockc                 2    g | ]}|j         j        d k    |S )r:  )r=  r>  ).0stmts     r!   
<listcomp>zNTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.<listcomp>n  s1     ; ; ;4![-99 999r#   r:   z0expected two assignment statements into 'foobar'z5expected the two assignment statements to be the same)r	   r   r   r   re   aranger  r   rb   r=  r>  	overloads
signaturesmetadatar   r   r;  r   r<  )
r   rJ  rL  r   nirr  assignsfoobar_assignsrE  rD  s
           @@r!   +test_issue7258_multiple_assignment_post_SSAz:TestSROAIssues.test_issue7258_multiple_assignment_post_SSA1  s    	U	=	=	=	 	 	 	 	 	 	\ 	 	 
>	=	0	 	 	 	 	 	 	\ 	 	 	 
^	,	,	,	 	 
-	,	 immC#'222Va((().999mCN1-.7GSZ!)	+ 	+ 	+
!!##..++; ;7 ; ; ;>	
 	
 	
 	1~a0C	
 	
 	
 	
 	
r#   N)r$   r%   r&   rY  r'   r#   r!   r3  r3  ,  s(        
F
 F
 F
 F
 F
r#   r3  )*r~   sysr   loggingnumpyre   numbar   r   r   
numba.corer   r   r0  r   r	   r   r
   r   r   r   r   r   r   numba.extendingr   numba.tests.supportr   r   r   _DEBUG	getLogger
ssa_loggersetLevelDEBUG
addHandlerStreamHandlerstderrr   r)   r   r3  r'   r#   r!   <module>ri     s'    


       " " " " " " " " " " ! ! ! ! ! ! ! ! E E E E E E E E @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 2 2 2 2 2 2 $ $ $ $ $ $ J J J J J J J J J J 
	 =""#344Jgm,,,/'/
;;<<<# # # # #( # # #h& h& h& h& h&k h& h& h&VY Y Y Y YK Y Y Yx
K
 K
 K
 K
 K
_h K
 K
 K
 K
 K
r#   