o
    Z۷i                     @   sp   d dl Z d dlmZ d dlmZmZ d dlmZ dZ	dZ
G dd deZG d	d
 d
eZedkr6e   dS dS )    N)njit)TestCaseoverride_config)llvm_pass_timingsaZ  
===-------------------------------------------------------------------------===
                      ... Pass execution timing report ...
===-------------------------------------------------------------------------===
  Total Execution Time: 0.0001 seconds (0.0001 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
   0.0001 ( 90.1%)   0.0001 ( 90.1%)   0.0001 ( 90.1%)   0.0001 ( 90.1%)  A1
   0.0000 (  9.9%)   0.0000 (  9.9%)   0.0000 (  9.9%)   0.0000 (  9.9%)  A2
   0.0001 (100.0%)   0.0001 (100.0%)   0.0001 (100.0%)   0.0001 (100.0%)  Total

aZ  
===-------------------------------------------------------------------------===
                      ... Pass execution timing report ...
===-------------------------------------------------------------------------===
  Total Execution Time: 0.0001 seconds (0.0001 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
   0.0001 ( 90.1%)        -----        0.0001 ( 90.1%)   0.0001 ( 90.1%)  A1
   0.0000 (  9.9%)        -----        0.0000 (  9.9%)   0.0000 (  9.9%)  A2
   0.0001 (100.0%)        -----        0.0001 (100.0%)   0.0001 (100.0%)  Total

c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestLLVMPassTimingsc                 C   s   t dd }tdd |d W d    n1 sw   Y  ||jd }|d }| |tj t|}| d| | 	t
|d |d	 }| |tj | |jt | |jtj d S )
Nc                 S      d}t | D ]}||7 }q|S Nr   rangenci r   X/home/ubuntu/vllm_env/lib/python3.10/site-packages/numba/tests/test_llvm_pass_timings.pyfoo&      
z+TestLLVMPassTimings.test_usage.<locals>.fooLLVM_PASS_TIMINGST
   r   r   z!Module passes (full optimization))r   r   get_metadata
signaturesassertIsInstancelptPassTimingsCollectionstrassertInassertGreaterlenNamedTimingsnametimingsProcessedPassTimings)selfr   mdr!   textlastr   r   r   
test_usage%   s   

zTestLLVMPassTimings.test_usagec                 C   s   t dd }tdd |d W d    n1 sw   Y  ||jd }|d }| | t | | t |	 }| 
t|t| |d j }|dd  D ]}|j }| || |}qVd S )	Nc                 S   s,   d}t | D ]}t |D ]}||7 }qq|S r   r	   )r   r   r   jr   r   r   r   A   s   
z-TestLLVMPassTimings.test_analyze.<locals>.foor   Tr   r   r      )r   r   r   r   r   get_total_timefloatsummaryr   list_longest_firstassertEqualr   r!   assertGreaterEqual)r#   r   r$   timings_collectionlongest_firstr&   reccurr   r   r   test_analyze@   s"   


z TestLLVMPassTimings.test_analyzec                 C   sX   t t}| | d | | t t t}| | d | | t d S )Ng-C6?)	r   r"   timings_raw1assertAlmostEqualr*   r   r,   r   timings_raw2)r#   timings1timings2r   r   r   test_parse_raw[   s   

z"TestLLVMPassTimings.test_parse_rawN)__name__
__module____qualname__r'   r4   r:   r   r   r   r   r   #   s    r   c                   @   s   e Zd Zdd ZdS )TestLLVMPassTimingsDisabledc                 C   s   t dd }tdd |d W d    n1 sw   Y  ||jd }|d }| | d | |  | | g  d S )	Nc                 S   r   r   r	   r   r   r   r   r   g   r   z?TestLLVMPassTimingsDisabled.test_disabled_behavior.<locals>.foor   Fr   r   r   zNo pass timings were recorded)	r   r   r   r   r.   r,   assertIsNoner*   r-   )r#   r   r$   r!   r   r   r   test_disabled_behaviorf   s   

z2TestLLVMPassTimingsDisabled.test_disabled_behaviorN)r;   r<   r=   r@   r   r   r   r   r>   e   s    r>   __main__)unittestnumbar   numba.tests.supportr   r   
numba.miscr   r   r5   r7   r   r>   r;   mainr   r   r   r   <module>   s    B