
    Ǆg                     (    d Z ddlmZ ddZ	 	 ddZy)aH  
Useful options to debug LLVM passes

llvm.set_option("test", "-debug-pass=Details")
llvm.set_option("test", "-debug-pass=Executions")
llvm.set_option("test", "-debug-pass=Arguments")
llvm.set_option("test", "-debug-pass=Structure")
llvm.set_option("test", "-debug-only=loop-vectorize")
llvm.set_option("test", "-help-hidden")

    )bindingc                 (    | dkD  ry|dk(  ry|dk(  ryy)z
    Compute the inlining threshold for the desired optimisation level

    Refer to http://llvm.org/docs/doxygen/html/InlineSimple_8cpp_source.html
       i     K          )optlevel	sizelevels     `/home/mcse/projects/flask_80/flask-venv/lib/python3.12/site-packages/numba/core/llvm_bindings.py_inlining_thresholdr      s)     !| A~ A~    c                 x    t        j                         }| |_        ||_        ||_        t        |       |_        |S )zV
    Create an LLVM pass manager with the desired optimisation level and options.
    )llvmcreate_pass_manager_builder	opt_levelloop_vectorizeslp_vectorizer   inlining_threshold)optr   r   pmbs       r   r   r   $   s;    
 
*
*
,CCM'C%C05CJr   N)r   )r   FF)__doc__llvmliter   r   r   r   r
   r   r   <module>r      s!   
 %( 7<.3
r   