Ë
    øÇ:jÀ†  ã                   ó”+  — d dl mZmZmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d„ Zd„ Zd„ Zd d„Z e	d	d
«      Z G d„ d	e«      Z G d„ de«      Zd!d„Zd„ Zd„ Z G d„ de«      Z G d„ d«      Z G d„ dej4                  e«      Z G d„ dej4                  e«      Z G d„ dej4                  «      Z G d„ dej4                  «      Z G d„ dej4                  «      Z ee«      egej@                  jB                  _"        egej@                  jF                  _"         ee«      gej@                  jH                  _"        ejJ                  ej@                  jL                  _'        ejJ                  ejP                  ejR                  gej@                  jT                  _"        ejJ                  gej@                  jV                  _"        ejJ                  gej@                  jX                  _"        ejJ                  gej@                  jZ                  _"        ejJ                  gej@                  j\                  _"        ejJ                  gej@                  j^                  _"        ejJ                  gej@                  j`                  _"        ejJ                  gej@                  jb                  _"        ejJ                  gej@                  jd                  _"        ejJ                  gej@                  jf                  _"        ejJ                  gej@                  jh                  _"        ejJ                  gej@                  jj                  _"        ejJ                  gej@                  jl                  _"        ejJ                  gej@                  jn                  _"        ejJ                  gej@                  jp                  _"        ejJ                  gej@                  jr                  _"        ejJ                  gej@                  jt                  _"        ejJ                  gej@                  jv                  _"        ejJ                  gej@                  jx                  _"        ejJ                  gej@                  jz                  _"        ejJ                  gej@                  j|                  _"        ejJ                  gej@                  j~                  _"        ejJ                  gej@                  j€                  _"        ejJ                  gej@                  j‚                  _"        ejJ                  gej@                  j„                  _"        ejJ                  gej@                  j†                  _"        ejJ                  gej@                  jˆ                  _"        ejJ                  gej@                  jŠ                  _"        ejJ                  gej@                  jŒ                  _"        ejJ                  gej@                  jŽ                  _"        ejJ                  gej@                  j�                  _"        ejJ                  gej@                  j’                  _"        ejJ                  gej@                  j”                  _"        ejJ                  gej@                  j–                  _"        ejJ                  gej@                  j˜                  _"        ejJ                  gej@                  jš                  _"        ejJ                  gej@                  jœ                  _"        ejJ                  gej@                  jž                  _"        ejJ                  gej@                  j                   _"        ejJ                  gej@                  j¢                  _"        ejJ                  gej@                  j¤                  _"        ejJ                  gej@                  j¦                  _"        ejJ                  gej@                  j¨                  _"        ejJ                  gej@                  jª                  _"        ejJ                  gej@                  j¬                  _"        ejJ                  gej@                  j®                  _"        ejJ                  gej@                  j°                  _"        ejJ                  gej@                  j²                  _"        ejJ                  gej@                  j´                  _"        ejJ                  gej@                  j¶                  _"        ejJ                  gej@                  j¸                  _"        ejJ                  gej@                  jº                  _"        ejJ                  gej@                  j¼                  _"        ejJ                  gej@                  j¾                  _"        ejJ                  gej@                  jÀ                  _"        ejJ                  gej@                  jÂ                  _"        ejJ                  gej@                  jÄ                  _"        ejJ                  gej@                  jÆ                  _"        ejJ                  gej@                  jÈ                  _"        ejJ                  gej@                  jÊ                  _"        ejJ                  gej@                  jÌ                  _"        ejJ                  gej@                  jÎ                  _"        ejJ                  gej@                  jÐ                  _"        ejJ                  eegej@                  jÒ                  _"        ejÔ                  ej@                  jÖ                  _'        ejÔ                  ejØ                  ejR                  gej@                  jÚ                  _"        ejÔ                  gej@                  jÜ                  _"        ejÔ                  gej@                  jÞ                  _"        ejÔ                  gej@                  jà                  _"        ejÔ                  gej@                  jâ                  _"        ejÔ                  egej@                  jä                  _"        ejÔ                  gej@                  jæ                  _"        ejÔ                  gej@                  jè                  _"        ejÔ                  gej@                  jê                  _"        ejÔ                  gej@                  jì                  _"        ejÔ                  gej@                  jî                  _"        ejÔ                  gej@                  jð                  _"        ejÔ                  gej@                  jò                  _"        ejÔ                  gej@                  jô                  _"        ejÔ                  gej@                  jö                  _"        ejÔ                  gej@                  jø                  _"        ejÔ                  gej@                  jú                  _"        ejÔ                  gej@                  jü                  _"        ejÔ                  gej@                  jþ                  _"        ejÔ                  gej@                  �j                   _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j
                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                  _"        ejÔ                  gej@                  �j                   _"        ejÔ                  gej@                  �j"                  _"        ejÔ                  gej@                  �j$                  _"        ejÔ                  gej@                  �j&                  _"        ejÔ                  gej@                  �j(                  _"        ejÔ                  gej@                  �j*                  _"        ejÔ                  gej@                  �j,                  _"        ejÔ                  eegej@                  �j.                  _"        e�j0                  ej@                  �j2                  _'        eej@                  �j4                  _'        e�j0                  gej@                  �j4                  _"        e�j0                  egej@                  �j6                  _"        eej@                  �j8                  _'        e�j0                  gej@                  �j8                  _"        e�j0                  egej@                  �j:                  _"        eej@                  �j<                  _'        e�j0                  gej@                  �j<                  _"        e�j0                  egej@                  �j>                  _"        eej@                  �j@                  _'        e�j0                  gej@                  �j@                  _"        e�j0                  egej@                  �jB                  _"        eej@                  �jD                  _'        e�j0                  egej@                  �jF                  _"        e�j0                  gej@                  �jH                  _"        ejR                  ej@                  �jJ                  _'        e�jL                  e�j0                  gej@                  �jJ                  _"        ejR                  gej@                  �jN                  _"        e�jP                  ej@                  �jR                  _'        e�jP                  gej@                  �jT                  _"        ejR                  e�jP                  gej@                  �jV                  _"        e�jP                   ee«      gej@                  �jX                  _"        ejJ                  ej@                  �jZ                  _'        ejR                  eegej@                  �jZ                  _"        ejÔ                  ej@                  �j\                  _'        ejR                  eegej@                  �j\                  _"        y)"é    )Úc_boolÚc_intÚc_size_tÚPOINTERÚ	StructureÚbyrefÚc_char_p)Ú
namedtuple)ÚIntFlag)Úffic                  ó   — t        «       S ©N)ÚModulePassManager© ó    úu/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/llvmlite/binding/newpassmanagers.pyÚcreate_new_module_pass_managerr      s   € ÜÓÐr   c                  ó   — t        «       S r   )ÚFunctionPassManagerr   r   r   Ú create_new_function_pass_managerr      s   € ÜÓ Ð r   c                 ó   — t        | |«      S r   )ÚPassBuilder)ÚtmÚptos     r   Úcreate_pass_builderr      s   € Ü�r˜3ÓÐr   c                 ó   — t        | |«      S r   )ÚPipelineTuningOptions)Úspeed_levelÚ
size_levels     r   Úcreate_pipeline_tuning_optionsr       s   € Ü  ¨jÓ9Ð9r   Ú
PruneStatsz&basicblock diamond fanout fanout_raisec                   ó   — e Zd ZdZd„ Zd„ Zy)r!   z4 Holds statistics from reference count pruning.
    c                 ó@  — t        |t        «      s%d}t        |j                  t	        |«      «      «      ‚t        | j
                  |j
                  z   | j                  |j                  z   | j                  |j                  z   | j                  |j                  z   «      S )Nz;PruneStats can only be added to another PruneStats, got {}.©	Ú
isinstancer!   Ú	TypeErrorÚformatÚtypeÚ
basicblockÚdiamondÚfanoutÚfanout_raise©ÚselfÚotherÚmsgs      r   Ú__add__zPruneStats.__add__   s}   € Ü˜%¤Ô,ØOˆCÜ˜CŸJ™J¤t¨E£{Ó3Ó4Ð4Ü˜$Ÿ/™/¨E×,<Ñ,<Ñ<ØŸ,™,¨¯©Ñ6ØŸ+™+¨¯©Ñ4Ø×+Ñ+¨e×.@Ñ.@Ñ@óBð 	Br   c                 ó@  — t        |t        «      s%d}t        |j                  t	        |«      «      «      ‚t        | j
                  |j
                  z
  | j                  |j                  z
  | j                  |j                  z
  | j                  |j                  z
  «      S )NzBPruneStats can only be subtracted from another PruneStats, got {}.r$   r-   s      r   Ú__sub__zPruneStats.__sub__(   s   € Ü˜%¤Ô,ðˆCä˜CŸJ™J¤t¨E£{Ó3Ó4Ð4Ü˜$Ÿ/™/¨E×,<Ñ,<Ñ<ØŸ,™,¨¯©Ñ6ØŸ+™+¨¯©Ñ4Ø×+Ñ+¨e×.@Ñ.@Ñ@óBð 	Br   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r1   r3   r   r   r   r!   r!      s   „ ñòBóBr   c                   ó(   — e Zd ZdefdefdefdefgZy)Ú_c_PruneStatsr)   r*   r+   r,   N)r4   r5   r6   r   Ú_fields_r   r   r   r9   r9   3   s)   „ à	�xÐ Ø	�HÐØ	�8ÐØ	˜Ð"ð	$�Hr   r9   c                 óò   — t        dddd«      }t        | «      }t        j                  j	                  t        |«      |«       t        |j                  |j                  |j                  |j                  «      S )z± Returns a namedtuple containing the current values for the refop pruning
    statistics. If kwarg `printout` is True the stats are printed to stderr,
    default is False.
    r   )r9   r   r   ÚlibÚLLVMPY_DumpRefPruneStatsr   r!   r)   r*   r+   r,   )ÚprintoutÚstatsÚdo_prints      r   Údump_refprune_statsrA   ;   s`   € ô ˜!˜Q  1Ó%€EÜ�hÓ€Hä‡G�G×$Ñ$¤U¨5£\°8Ô<Ü�e×&Ñ&¨¯©°u·|±|Ø×(Ñ(ó*ð *r   c                 óT   — t         j                  j                  t        | «      «       y)z¸Enable or disable the pass timers.

    Parameters
    ----------
    enable : bool
        Set to True to enable the pass timers.
        Set to False to disable the pass timers.
    N)r   r<   ÚLLVMPY_SetTimePassesr   )Úenables    r   Úset_time_passesrE   N   s   € ô ‡G�G× Ñ ¤¨£Õ0r   c                  óª   — t        j                  «       5 } t         j                  j                  | «       t	        | «      cddd«       S # 1 sw Y   yxY w)a  Returns the pass timings report and resets the LLVM internal timers.

    Pass timers are enabled by ``set_time_passes()``. If the timers are not
    enabled, this function will return an empty string.

    Returns
    -------
    res : str
        LLVM generated timing report.
    N)r   ÚOutputStringr<   ÚLLVMPY_ReportAndResetTimingsÚstr)Úbufs    r   Úreport_and_reset_timingsrK   Z   s@   € ô 
×	Ñ	Ó	ð ˜sÜ�‰×,Ñ,¨SÔ1Ü�3‹x÷÷ ò ús   •*A	Á	Ac                   ó2   — e Zd ZdZdZdZdZeez  ez  ez  Zy)ÚRefPruneSubpassesé   é   é   é   N)r4   r5   r6   ÚPER_BBÚDIAMONDÚFANOUTÚFANOUT_RAISEÚALLr   r   r   rM   rM   j   s*   „ Ø€FØ€GØ€FØ€LØ
�7Ñ
˜VÑ
# lÑ
2�Cr   rM   c                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd-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„ 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&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-y,).ÚNewPassManagerc                 ó<   — t        | «      t        u rt        d«      ‚y )Nz*Cannot instantiate NewPassManager directly)r(   rX   r&   ©r.   s    r   Ú__init__zNewPassManager.__init__t   s   € Ü�‹:œÑ'ÜÐHÓIÐIð (r   c                 óª   — t        | t        «      r"t        j                  j	                  | ||«       y t        j                  j                  | ||«       y r   )r%   r   r   r<   ÚLLVMPY_RunNewModulePassManagerÚ LLVMPY_RunNewFunctionPassManager)r.   ÚIRÚpbs      r   ÚrunzNewPassManager.runx   s9   € Ü�dÔ-Ô.Ü�G‰G×2Ñ2°4¸¸RÕ@ä�G‰G×4Ñ4°T¸2¸rÕBr   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddAAEvaluatorÚLLVMPY_function_AddAAEvaluatorrZ   s    r   Úadd_aa_eval_passzNewPassManager.add_aa_eval_pass~   ó1   € Ü�dÔ-Ô.Ü�G‰G×0Ñ0°Õ6ä�G‰G×2Ñ2°4Õ8r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú LLVMPY_module_AddSimplifyCFGPassÚ"LLVMPY_function_AddSimplifyCFGPassrZ   s    r   Úadd_simplify_cfg_passz$NewPassManager.add_simplify_cfg_pass„   ó1   € Ü�dÔ-Ô.Ü�G‰G×4Ñ4°TÕ:ä�G‰G×6Ñ6°tÕ<r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddLoopUnrollPassÚ!LLVMPY_function_AddLoopUnrollPassrZ   s    r   Úadd_loop_unroll_passz#NewPassManager.add_loop_unroll_passŠ   ó1   € Ü�dÔ-Ô.Ü�G‰G×3Ñ3°DÕ9ä�G‰G×5Ñ5°dÕ;r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú LLVMPY_module_AddInstCombinePassÚ"LLVMPY_function_AddInstCombinePassrZ   s    r   Úadd_instruction_combine_passz+NewPassManager.add_instruction_combine_pass�   rk   r   c                 ó¦   — t        | t        «      r!t        j                  j	                  | |«       y t        j                  j                  | |«       y r   )r%   r   r   r<   Ú"LLVMPY_AddJumpThreadingPass_moduleÚ$LLVMPY_AddJumpThreadingPass_function)r.   Ú	thresholds     r   Úadd_jump_threading_passz&NewPassManager.add_jump_threading_pass–   s5   € Ü�dÔ-Ô.Ü�G‰G×6Ñ6°t¸YÕGä�G‰G×8Ñ8¸¸yÕIr   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddCFGPrinterPassÚ!LLVMPY_function_AddCFGPrinterPassrZ   s    r   Úadd_cfg_printer_passz#NewPassManager.add_cfg_printer_passœ   rp   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú#LLVMPY_module_AddCFGOnlyPrinterPassÚ%LLVMPY_function_AddCFGOnlyPrinterPassrZ   s    r   Úadd_cfg_only_printer_passz(NewPassManager.add_cfg_only_printer_pass¢   ó1   € Ü�dÔ-Ô.Ü�G‰G×7Ñ7¸Õ=ä�G‰G×9Ñ9¸$Õ?r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddDomPrinterÚLLVMPY_function_AddDomPrinterrZ   s    r   Úadd_dom_printer_passz#NewPassManager.add_dom_printer_pass¨   ó1   € Ü�dÔ-Ô.Ü�G‰G×/Ñ/°Õ5ä�G‰G×1Ñ1°$Õ7r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddDomOnlyPrinterÚ!LLVMPY_function_AddDomOnlyPrinterrZ   s    r   Úadd_dom_only_printer_passz(NewPassManager.add_dom_only_printer_pass®   rp   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddPostDomPrinterÚ!LLVMPY_function_AddPostDomPrinterrZ   s    r   Úadd_post_dom_printer_passz(NewPassManager.add_post_dom_printer_pass´   rp   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú#LLVMPY_module_AddPostDomOnlyPrinterÚ%LLVMPY_function_AddPostDomOnlyPrinterrZ   s    r   Úadd_post_dom_only_printer_passz-NewPassManager.add_post_dom_only_printer_passº   r‚   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddDomViewerÚLLVMPY_function_AddDomViewerrZ   s    r   Úadd_dom_viewer_passz"NewPassManager.add_dom_viewer_passÀ   ó1   € Ü�dÔ-Ô.Ü�G‰G×.Ñ.¨tÕ4ä�G‰G×0Ñ0°Õ6r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddDomOnlyViewerÚ LLVMPY_function_AddDomOnlyViewerrZ   s    r   Úadd_dom_only_viewer_passz'NewPassManager.add_dom_only_viewer_passÆ   ó1   € Ü�dÔ-Ô.Ü�G‰G×2Ñ2°4Õ8ä�G‰G×4Ñ4°TÕ:r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddPostDomViewerÚ LLVMPY_function_AddPostDomViewerrZ   s    r   Úadd_post_dom_viewer_passz'NewPassManager.add_post_dom_viewer_passÌ   r�   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú"LLVMPY_module_AddPostDomOnlyViewerÚ$LLVMPY_function_AddPostDomOnlyViewerrZ   s    r   Úadd_post_dom_only_viewer_passz,NewPassManager.add_post_dom_only_viewer_passÒ   s1   € Ü�dÔ-Ô.Ü�G‰G×6Ñ6°tÕ<ä�G‰G×8Ñ8¸Õ>r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddLintPassÚLLVMPY_function_AddLintPassrZ   s    r   Úadd_lint_passzNewPassManager.add_lint_passØ   ó1   € Ü�dÔ-Ô.Ü�G‰G×-Ñ-¨dÕ3ä�G‰G×/Ñ/°Õ5r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddADCEPassÚLLVMPY_function_AddADCEPassrZ   s    r   Úadd_aggressive_dce_passz&NewPassManager.add_aggressive_dce_passÞ   rª   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú'LLVMPY_module_AddBreakCriticalEdgesPassÚ)LLVMPY_function_AddBreakCriticalEdgesPassrZ   s    r   Úadd_break_critical_edges_passz,NewPassManager.add_break_critical_edges_passä   ó1   € Ü�dÔ-Ô.Ü�G‰G×;Ñ;¸DÕAä�G‰G×=Ñ=¸dÕCr   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddDSEPassÚLLVMPY_function_AddDSEPassrZ   s    r   Úadd_dead_store_elimination_passz.NewPassManager.add_dead_store_elimination_passê   ó1   € Ü�dÔ-Ô.Ü�G‰G×,Ñ,¨TÕ2ä�G‰G×.Ñ.¨tÕ4r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddDCEPassÚLLVMPY_function_AddDCEPassrZ   s    r   Úadd_dead_code_elimination_passz-NewPassManager.add_dead_code_elimination_passð   r¸   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú*LLVMPY_module_AddAggressiveInstCombinePassÚ,LLVMPY_function_AddAggressiveInstCombinePassrZ   s    r   Úadd_aggressive_instcombine_passz.NewPassManager.add_aggressive_instcombine_passö   s1   € Ü�dÔ-Ô.Ü�G‰G×>Ñ>¸tÕDä�G‰G×@Ñ@ÀÕFr   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddLCSSAPassÚLLVMPY_function_AddLCSSAPassrZ   s    r   Úadd_lcssa_passzNewPassManager.add_lcssa_passü   r˜   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddNewGVNPassÚLLVMPY_function_AddNewGVNPassrZ   s    r   Úadd_new_gvn_passzNewPassManager.add_new_gvn_pass  r‡   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú!LLVMPY_module_AddLoopSimplifyPassÚ#LLVMPY_function_AddLoopSimplifyPassrZ   s    r   Úadd_loop_simplify_passz%NewPassManager.add_loop_simplify_pass  ó1   € Ü�dÔ-Ô.Ü�G‰G×5Ñ5°dÕ;ä�G‰G×7Ñ7¸Õ=r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú%LLVMPY_module_AddLoopUnrollAndJamPassÚ'LLVMPY_function_AddLoopUnrollAndJamPassrZ   s    r   Úadd_loop_unroll_and_jam_passz+NewPassManager.add_loop_unroll_and_jam_pass  ó1   € Ü�dÔ-Ô.Ü�G‰G×9Ñ9¸$Õ?ä�G‰G×;Ñ;¸DÕAr   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddSCCPPassÚLLVMPY_function_AddSCCPPassrZ   s    r   Úadd_sccp_passzNewPassManager.add_sccp_pass  rª   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú LLVMPY_module_AddLowerAtomicPassÚ"LLVMPY_function_AddLowerAtomicPassrZ   s    r   Úadd_lower_atomic_passz$NewPassManager.add_lower_atomic_pass  rk   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú LLVMPY_module_AddLowerInvokePassÚ"LLVMPY_function_AddLowerInvokePassrZ   s    r   Úadd_lower_invoke_passz$NewPassManager.add_lower_invoke_pass   rk   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú LLVMPY_module_AddLowerSwitchPassÚ"LLVMPY_function_AddLowerSwitchPassrZ   s    r   Úadd_lower_switch_passz$NewPassManager.add_lower_switch_pass&  rk   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddMemCpyOptPassÚ LLVMPY_function_AddMemCpyOptPassrZ   s    r   Úadd_mem_copy_opt_passz$NewPassManager.add_mem_copy_opt_pass,  r�   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú+LLVMPY_module_AddUnifyFunctionExitNodesPassÚ-LLVMPY_function_AddUnifyFunctionExitNodesPassrZ   s    r   Ú"add_unify_function_exit_nodes_passz1NewPassManager.add_unify_function_exit_nodes_pass2  s1   € Ü�dÔ-Ô.Ü�G‰G×?Ñ?ÀÕEä�G‰G×AÑAÀ$ÕGr   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú LLVMPY_module_AddReassociatePassÚ"LLVMPY_function_AddReassociatePassrZ   s    r   Úadd_reassociate_passz#NewPassManager.add_reassociate_pass8  rk   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddRegToMemPassÚLLVMPY_function_AddRegToMemPassrZ   s    r   Úadd_register_to_memory_passz*NewPassManager.add_register_to_memory_pass>  s1   € Ü�dÔ-Ô.Ü�G‰G×1Ñ1°$Õ7ä�G‰G×3Ñ3°DÕ9r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddSROAPassÚLLVMPY_function_AddSROAPassrZ   s    r   Úadd_sroa_passzNewPassManager.add_sroa_passD  rª   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddSinkingPassÚLLVMPY_function_AddSinkingPassrZ   s    r   Úadd_sinking_passzNewPassManager.add_sinking_passJ  rf   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú!LLVMPY_module_AddTailCallElimPassÚ#LLVMPY_function_AddTailCallElimPassrZ   s    r   Úadd_tail_call_elimination_passz-NewPassManager.add_tail_call_elimination_passP  rÍ   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú%LLVMPY_module_AddInstructionNamerPassÚ'LLVMPY_function_AddInstructionNamerPassrZ   s    r   Úadd_instruction_namer_passz)NewPassManager.add_instruction_namer_passV  rÒ   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú!LLVMPY_module_AddLoopDeletionPassÚ#LLVMPY_function_AddLoopDeletionPassrZ   s    r   Úadd_loop_deletion_passz%NewPassManager.add_loop_deletion_pass\  rÍ   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú'LLVMPY_module_AddLoopStrengthReducePassÚ)LLVMPY_function_AddLoopStrengthReducePassrZ   s    r   Úadd_loop_strength_reduce_passz,NewPassManager.add_loop_strength_reduce_passb  r³   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   ÚLLVMPY_module_AddLoopRotatePassÚ!LLVMPY_function_AddLoopRotatePassrZ   s    r   Úadd_loop_rotate_passz#NewPassManager.add_loop_rotate_passh  rp   r   c                 ó¢   — t        | t        «      r t        j                  j	                  | «       y t        j                  j                  | «       y r   )r%   r   r   r<   Ú!LLVMPY_DisposeNewModulePassMangerÚ#LLVMPY_DisposeNewFunctionPassMangerrZ   s    r   Ú_disposezNewPassManager._disposen  rÍ   r   N)éÿÿÿÿ).r4   r5   r6   r[   ra   re   rj   ro   rt   ry   r}   r�   r†   r‹   r�   r“   r—   rœ   r¡   r¥   r©   r®   r²   r·   r¼   rÀ   rÄ   rÈ   rÌ   rÑ   rÖ   rÚ   rÞ   râ   ræ   rê   rî   rò   rö   rú   rþ   r  r  r
  r  r  r   r   r   rX   rX   r   sä   „ òJòCò9ò=ò<ò=óJò<ò@ò8ò<ò<ò@ò7ò;ò;ò?ò6ò6òDò5ò5òGò7ò8ò>òBò6ò=ò=ò=ò;òHò=ò:ò6ò9ò>òBò>òDò<ó>r   rX   c                   ó¾   ‡ — e Zd Zdˆ f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„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej4                  dfd„Zˆ xZS )r   c                 ód   •— |€t         j                  j                  «       }t        ‰| �  |«       y r   )r   r<   Ú!LLVMPY_CreateNewModulePassManagerÚsuperr[   ©r.   ÚptrÚ	__class__s     €r   r[   zModulePassManager.__init__w  s'   ø€ Øˆ;Ü—'‘'×;Ñ;Ó=ˆCÜ‰Ñ˜Õr   c                 óB   — t         j                  j                  | «       y r   )r   r<   ÚLLVMPY_module_AddVerifierPassrZ   s    r   Úadd_verifierzModulePassManager.add_verifier|  s   € Ü�‰×-Ñ-¨dÕ3r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú"LLVMPY_module_AddConstantMergePassrZ   s    r   Úadd_constant_merge_passz)ModulePassManager.add_constant_merge_pass  ó   € Ü�‰×2Ñ2°4Õ8r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú,LLVMPY_module_AddDeadArgumentEliminationPassrZ   s    r   Úadd_dead_arg_elimination_passz/ModulePassManager.add_dead_arg_elimination_pass‚  s   € Ü�‰×<Ñ<¸TÕBr   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú(LLVMPY_module_AddCallGraphDOTPrinterPassrZ   s    r   Úadd_dot_call_graph_printer_passz1ModulePassManager.add_dot_call_graph_printer_pass…  ó   € Ü�‰×8Ñ8¸Õ>r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú+LLVMPY_module_AddModuleDebugInfoPrinterPassrZ   s    r   Úadd_module_debug_info_passz,ModulePassManager.add_module_debug_info_passŠ  ó   € Ü�‰×;Ñ;¸DÕAr   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú"LLVMPY_module_AddAlwaysInlinerPassrZ   s    r   Úadd_always_inliner_passz)ModulePassManager.add_always_inliner_pass�  r!  r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú2LLVMPY_module_AddReversePostOrderFunctionAttrsPassrZ   s    r   Úadd_rpo_function_attrs_passz-ModulePassManager.add_rpo_function_attrs_pass�  s   € Ü�‰×BÑBÀ4ÕHr   c                 óB   — t         j                  j                  | «       y r   )r   r<   ÚLLVMPY_module_AddGlobalDCEPassrZ   s    r   Ú#add_global_dead_code_eliminate_passz5ModulePassManager.add_global_dead_code_eliminate_pass“  ó   € Ü�‰×.Ñ.¨tÕ4r   c                 óB   — t         j                  j                  | «       y r   )r   r<   ÚLLVMPY_module_AddGlobalOptPassrZ   s    r   Úadd_global_opt_passz%ModulePassManager.add_global_opt_pass–  r6  r   c                 óB   — t         j                  j                  | «       y r   )r   r<   ÚLLVMPY_module_AddIPSCCPPassrZ   s    r   Úadd_ipsccp_passz!ModulePassManager.add_ipsccp_pass™  s   € Ü�‰×+Ñ+¨DÕ1r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú LLVMPY_module_AddInternalizePassrZ   s    r   Úadd_internalize_passz&ModulePassManager.add_internalize_passœ  s   € Ü�‰×0Ñ0°Õ6r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú"LLVMPY_module_AddLoopExtractorPassrZ   s    r   Úadd_loop_extract_passz'ModulePassManager.add_loop_extract_passŸ  r!  r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú#LLVMPY_module_AddMergeFunctionsPassrZ   s    r   Úadd_merge_functions_passz*ModulePassManager.add_merge_functions_pass¢  ó   € Ü�‰×3Ñ3°DÕ9r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú#LLVMPY_module_AddPartialInlinerPassrZ   s    r   Úadd_partial_inliner_passz*ModulePassManager.add_partial_inliner_pass¥  rF  r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú!LLVMPY_module_AddStripSymbolsPassrZ   s    r   Úadd_strip_symbols_passz(ModulePassManager.add_strip_symbols_pass¨  s   € Ü�‰×1Ñ1°$Õ7r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú'LLVMPY_module_AddStripDeadDebugInfoPassrZ   s    r   Úadd_strip_dead_debug_info_passz0ModulePassManager.add_strip_dead_debug_info_pass«  s   € Ü�‰×7Ñ7¸Õ=r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú(LLVMPY_module_AddStripDeadPrototypesPassrZ   s    r   Úadd_strip_dead_prototype_passz/ModulePassManager.add_strip_dead_prototype_pass®  r(  r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú&LLVMPY_module_AddStripDebugDeclarePassrZ   s    r   Úadd_strip_debug_declare_passz.ModulePassManager.add_strip_debug_declare_pass±  ó   € Ü�‰×6Ñ6°tÕ<r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú)LLVMPY_module_AddStripNonDebugSymbolsPassrZ   s    r   Ú add_strip_non_debug_symbols_passz2ModulePassManager.add_strip_non_debug_symbols_pass´  s   € Ü�‰×9Ñ9¸$Õ?r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú&LLVMPY_module_AddArgumentPromotionPassrZ   s    r   Úadd_argument_promotion_passz-ModulePassManager.add_argument_promotion_pass·  rV  r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú+LLVMPY_module_AddPostOrderFunctionAttrsPassrZ   s    r   Ú'add_post_order_function_attributes_passz9ModulePassManager.add_post_order_function_attributes_passº  r,  r   éè  c                 ó\   — t        |«      }t        j                  j                  | ||«       y©aá  Add Numba specific Reference count pruning pass.

        Parameters
        ----------
        subpasses_flags : RefPruneSubpasses
            A bitmask to control the subpasses to be enabled.
        subgraph_limit : int
            Limit the fanout pruners to working on a subgraph no bigger than
            this number of basic-blocks to avoid spending too much time in very
            large graphs. Default is 1000. Subject to change in future
            versions.
        N)rM   r   r<   ÚLLVMPY_AddRefPrunePass_module©r.   Úsubpasses_flagsÚsubgraph_limitÚiflagss       r   Úadd_refprune_passz#ModulePassManager.add_refprune_pass¾  s$   € ô # ?Ó3ˆÜ�‰×-Ñ-¨d°F¸NÕKr   r   )r4   r5   r6   r[   r  r   r$  r'  r+  r/  r2  r5  r9  r<  r?  rB  rE  rI  rL  rO  rR  rU  rY  r\  r_  rM   rV   rh  Ú__classcell__©r  s   @r   r   r   u  s‹   ø„ õò
4ò9òCò?ò
Bò9òIò5ò5ò2ò7ò9ò:ò:ò8ò>ò?ò=ò@ò=òBð 1B×0EÑ0EØ)-÷Lr   r   c                   ó@   ‡ — e Zd Zdˆ fd„	Zej
                  dfd„Zˆ xZS )r   c                 ód   •— |€t         j                  j                  «       }t        ‰| �  |«       y r   )r   r<   Ú#LLVMPY_CreateNewFunctionPassManagerr  r[   r  s     €r   r[   zFunctionPassManager.__init__Ò  s'   ø€ Øˆ;Ü—'‘'×=Ñ=Ó?ˆCÜ‰Ñ˜Õr   r`  c                 ó\   — t        |«      }t        j                  j                  | ||«       yrb  )rM   r   r<   ÚLLVMPY_AddRefPrunePass_functionrd  s       r   rh  z%FunctionPassManager.add_refprune_passØ  s$   € ô # ?Ó3ˆÜ�‰×/Ñ/°°f¸nÕMr   r   )r4   r5   r6   r[   rM   rV   rh  ri  rj  s   @r   r   r   Ð  s   ø„ õð 1B×0EÑ0EØ)-÷Nr   r   c                   ó’  ‡ — e Zd Zdˆ fd„	Zed„ «       Zej                  d„ «       Zed„ «       Zej                  d„ «       Zed„ «       Zej                  d„ «       Zed„ «       Z	e	j                  d	„ «       Z	ed
„ «       Z
e
j                  d„ «       Z
ed„ «       Zej                  d„ «       Zed„ «       Zej                  d„ «       Zd„ Zˆ xZS )r   c                 ó”   •— d | _         d | _        || _        || _        t        ‰| �  t        j                  j                  «       «       y r   )	Ú_speed_levelÚ_size_levelr   r   r  r[   r   r<   Ú"LLVMPY_CreatePipelineTuningOptions)r.   r   r   r  s      €r   r[   zPipelineTuningOptions.__init__ì  s<   ø€ Ø ˆÔØˆÔØ&ˆÔØ$ˆŒÜ‰ÑœŸ™×CÑCÓEÕFr   c                 ó   — | j                   S r   )rr  rZ   s    r   r   z!PipelineTuningOptions.speed_leveló  s   € à× Ñ Ð r   c                 óV   — d|cxk  rdk  st        d«      ‚ t        d«      ‚|| _        y )Nr   é   z4Optimization level for speed should be 0, 1, 2, or 3)Ú
ValueErrorrr  ©r.   Úvalues     r   r   z!PipelineTuningOptions.speed_level÷  s>   € à�EŒ˜QŠÜØFóHð Hð ÜØFóHð Hà!ˆÕr   c                 ó   — | j                   S r   )rs  rZ   s    r   r   z PipelineTuningOptions.size_levelþ  s   € à×ÑÐr   c                 ó”   — d|cxk  rdk  st        d«      ‚ t        d«      ‚|dk7  r| j                  dk7  rt        d«      ‚|| _        y )Nr   rO   z0Optimization level for size should be 0, 1, or 2z=Optimization for size should be encoded with speed level == 2)rx  r   rs  ry  s     r   r   z PipelineTuningOptions.size_level  sX   € à�EŒ˜QŠÜÐOÓPÐPð ÜÐOÓPÐPØ�AŠ:˜$×*Ñ*¨aÒ/ÜØOóQð Qà ˆÕr   c                 ó@   — t         j                  j                  | «      S r   )r   r<   ÚLLVMPY_PTOGetLoopInterleavingrZ   s    r   Úloop_interleavingz'PipelineTuningOptions.loop_interleaving  ó   € ä�w‰w×4Ñ4°TÓ:Ð:r   c                 óD   — t         j                  j                  | |«       y r   )r   r<   ÚLLVMPY_PTOSetLoopInterleavingry  s     r   r  z'PipelineTuningOptions.loop_interleaving  ó   € ä�‰×-Ñ-¨d°EÕ:r   c                 ó@   — t         j                  j                  | «      S r   )r   r<   ÚLLVMPY_PTOGetLoopVectorizationrZ   s    r   Úloop_vectorizationz(PipelineTuningOptions.loop_vectorization  s   € ä�w‰w×5Ñ5°dÓ;Ð;r   c                 óD   — t         j                  j                  | |«       y r   )r   r<   ÚLLVMPY_PTOSetLoopVectorizationry  s     r   r†  z(PipelineTuningOptions.loop_vectorization  s   € ä�‰×.Ñ.¨t°UÕ;r   c                 ó@   — t         j                  j                  | «      S r   )r   r<   ÚLLVMPY_PTOGetSLPVectorizationrZ   s    r   Úslp_vectorizationz'PipelineTuningOptions.slp_vectorization  r€  r   c                 óD   — t         j                  j                  | |«       y r   )r   r<   ÚLLVMPY_PTOSetSLPVectorizationry  s     r   r‹  z'PipelineTuningOptions.slp_vectorization  rƒ  r   c                 ó@   — t         j                  j                  | «      S r   )r   r<   ÚLLVMPY_PTOGetLoopUnrollingrZ   s    r   Úloop_unrollingz$PipelineTuningOptions.loop_unrolling#  s   € ä�w‰w×1Ñ1°$Ó7Ð7r   c                 óD   — t         j                  j                  | |«       y r   )r   r<   ÚLLVMPY_PTOSetLoopUnrollingry  s     r   r�  z$PipelineTuningOptions.loop_unrolling'  s   € ä�‰×*Ñ*¨4°Õ7r   c                 ó@   — t         j                  j                  | «      S r   )r   r<   ÚLLVMPY_PTOGetInlinerThresholdrZ   s    r   Úinlining_thresholdz(PipelineTuningOptions.inlining_threshold+  r€  r   c                 óD   — t         j                  j                  | |«       y r   )r   r<   ÚLLVMPY_PTOSetInlinerThresholdry  s     r   r•  z(PipelineTuningOptions.inlining_threshold/  rƒ  r   c                 óB   — t         j                  j                  | «       y r   )r   r<   Ú#LLVMPY_DisposePipelineTuningOptionsrZ   s    r   r  zPipelineTuningOptions._dispose3  rF  r   ©rO   r   )r4   r5   r6   r[   Úpropertyr   Úsetterr   r  r†  r‹  r�  r•  r  ri  rj  s   @r   r   r   ê  sP  ø„ õGð ñ!ó ð!ð ×Ññ"ó ð"ð ñ ó ð ð ×Ññ!ó ð!ð ñ;ó ð;ð ×Ññ;ó ð;ð ñ<ó ð<ð ×Ññ<ó ð<ð ñ;ó ð;ð ×Ññ;ó ð;ð ñ8ó ð8ð ×Ññ8ó ð8ð ñ;ó ð;ð ×Ññ;ó ð;ö:r   r   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚTimePassesHandlerc                 ó\   •— t         ‰| �  t        j                  j	                  «       «       y r   )r  r[   r   r<   ÚLLVMPY_CreateTimePassesHandler)r.   r  s    €r   r[   zTimePassesHandler.__init__8  s   ø€ Ü‰ÑœŸ™×?Ñ?ÓAÕBr   c                 óB   — t         j                  j                  | «       y r   )r   r<   ÚLLVMPY_DisposeTimePassesHandlerrZ   s    r   r  zTimePassesHandler._dispose;  s   € Ü�‰×/Ñ/°Õ5r   )r4   r5   r6   r[   r  ri  rj  s   @r   rž  rž  7  s   ø„ ôCö6r   rž  c                   ó<   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZ	S )r   c                 óŠ   •— t         ‰| �  t        j                  j	                  ||«      «       || _        || _        d | _        y r   )r  r[   r   r<   ÚLLVMPY_CreatePassBuilderÚ_ptoÚ_tmÚ_time_passes_handler)r.   r   r   r  s      €r   r[   zPassBuilder.__init__A  s7   ø€ Ü‰ÑœŸ™×9Ñ9¸"¸cÓBÔCØˆŒ	ØˆŒØ$(ˆÕ!r   c                 ó¦   — t        t        j                  j                  | | j                  j
                  | j                  j                  «      «      S r   )r   r   r<   Ú$LLVMPY_buildPerModuleDefaultPipeliner¦  r   r   rZ   s    r   ÚgetModulePassManagerz PassBuilder.getModulePassManagerG  s=   € Ü Ü�G‰G×8Ñ8Ø�d—i‘i×+Ñ+¨T¯Y©Y×-AÑ-AóCó
ð 	
r   c                 ó¦   — t        t        j                  j                  | | j                  j
                  | j                  j                  «      «      S r   )r   r   r<   Ú*LLVMPY_buildFunctionSimplificationPipeliner¦  r   r   rZ   s    r   ÚgetFunctionPassManagerz"PassBuilder.getFunctionPassManagerM  s=   € Ü"Ü�G‰G×>Ñ>Ø�d—i‘i×+Ñ+¨T¯Y©Y×-AÑ-AóCó
ð 	
r   c                 ó¤   — | j                   rt        d«      ‚t        «       | _         t        j                  j                  | | j                   «       y)zƒEnable the pass timers.

        Raises
        ------
        RuntimeError
            If pass timing is already enabled.
        z!Pass timing can only be done onceN)r¨  ÚRuntimeErrorrž  r   r<   ÚLLVMPY_EnableTimePassesrZ   s    r   Ústart_pass_timingzPassBuilder.start_pass_timingS  s>   € ð ×$Ò$ÜÐBÓCÐCÜ$5Ó$7ˆÔ!Ü�‰×'Ñ'¨¨d×.GÑ.GÕHr   c                 óî   — | j                   st        d«      ‚t        j                  «       5 }t        j                  j                  | j                   |«       t        |«      cddd«       S # 1 sw Y   yxY w)a:  Returns the pass timings report and disables the LLVM internal
        timers. Pass timers are enabled by ``start_pass_timing()``. If the
        timers are not enabled, this function will return an empty string.

        Returns
        -------
        res : str
            LLVM generated timing report.
        zPass timing is not enabledN)r¨  r°  r   rG   r<   Ú!LLVMPY_ReportAndDisableTimePassesrI   )r.   rJ   s     r   Úfinish_pass_timingzPassBuilder.finish_pass_timing`  s`   € ð ×(Ò(ÜÐ;Ó<Ð<ä×ÑÓð 	 3Ü�G‰G×5Ñ5Ø×)Ñ)¨3ô0ä�s“8÷	÷ 	ò 	ús   ¬5A+Á+A4c                 óB   — t         j                  j                  | «       y r   )r   r<   ÚLLVMPY_DisposePassBuilderrZ   s    r   r  zPassBuilder._disposes  s   € Ü�‰×)Ñ)¨$Õ/r   )
r4   r5   r6   r[   r«  r®  r²  rµ  r  ri  rj  s   @r   r   r   ?  s"   ø„ ô)ò
ò
òIòö&0r   r   Nrš  )F)¯Úctypesr   r   r   r   r   r   r	   Úcollectionsr
   Úenumr   Úllvmlite.bindingr   r   r   r   r    Ú_prunestatsr!   r9   rA   rE   rK   rM   rX   Ú	ObjectRefr   r   r   rž  r   r<   r=   ÚargtypesrC   rH   ÚLLVMModulePassManagerRefr  ÚrestypeÚLLVMModuleRefÚLLVMPassBuilderRefr]   r  rc   rh   rm   r  rr   rv   r{   r   r„   r‰   r�   r‘   r•   rš   rŸ   r£   r§   r¬   r°   rµ   rº   r¾   rÂ   rÆ   rÊ   rÏ   rÔ   rØ   rÜ   rà   rä   rè   rì   rð   rô   rø   rü   r   r  r  r  r#  r&  r*  r.  r1  r4  r8  r;  r>  rA  rD  rH  rK  rN  rQ  rT  rX  r[  r^  r  rc  ÚLLVMFunctionPassManagerRefrm  ÚLLVMValueRefr^   rd   ri   rn   rs   rw   r|   r€   r…   rŠ   rŽ   r’   r–   r›   r    r¤   r¨   r­   r±   r¶   r»   r¿   rÃ   rÇ   rË   rÐ   rÕ   rÙ   rÝ   rá   rå   ré   rí   rñ   rõ   rù   rý   r  r  r  r	  r  ro  ÚLLVMPipelineTuningOptionsRefrt  r~  r‚  r…  rˆ  rŠ  r�  r�  r’  r”  r—  r™  r¥  ÚLLVMTargetMachineRefr·  ÚLLVMTimePassesHandlerRefr   r¢  r±  r´  rª  r­  r   r   r   ú<module>rÈ     s£  ðß O× OÑ OÝ "Ý Ý  òò!ò ó:ñ ˜ØBóE€ôB�ô Bô0$�Iô $ó*ò&	1òô 3˜ô 3÷@>ñ @>ôFXL˜Ÿ™ ~ô XLôvN˜#Ÿ-™-¨ô Nô4J:˜CŸM™Mô J:ôZ6˜Ÿ™ô 6ô50�#—-‘-ô 50ñv .5°]Ó-CÀVÐ,L€‡�×  Ñ  Ô )à)/¨€‡�× Ñ Ô %á18¸Ó1BÐ0C€‡�× $Ñ $Ô -ð 58×4PÑ4P€‡�× )Ñ )Ô 1ð × Ñ  #×"3Ñ"3Ø×Ñð3€‡�× &Ñ &Ô /ð 36×2NÑ2NÐ1P€‡�× %Ñ %Ô .Ø14×1MÑ1MÐ0O€‡�× $Ñ $Ô -à× Ñ ð5#€‡�× (Ñ (Ô 1ð × Ñ ð4#€‡�× 'Ñ 'Ô 0ð × Ñ ð4#€‡�× 'Ñ 'Ô 0ð × Ñ ð5#€‡�× (Ñ (Ô 1ð × Ñ ð7#€‡�× *Ñ *Ô 3ð × Ñ ð4#€‡�× 'Ñ 'Ô 0ð × Ñ ð8#€‡�× +Ñ +Ô 4ð × Ñ ð0#€‡�× #Ñ #Ô ,ð × Ñ ð4#€‡�× 'Ñ 'Ô 0ð × Ñ ð4#€‡�× 'Ñ 'Ô 0ð × Ñ ð8#€‡�× +Ñ +Ô 4ð × Ñ ð/#€‡�× "Ñ "Ô +ð × Ñ ð3#€‡�× &Ñ &Ô /ð × Ñ ð3#€‡�× &Ñ &Ô /ð × Ñ ð7#€‡�× *Ñ *Ô 3ð × Ñ ð.#€‡�× !Ñ !Ô *ð × Ñ ð.#€‡�× !Ñ !Ô *ð × Ñ ð<#€‡�× /Ñ /Ô 8ð × Ñ ð-#€‡�×  Ñ  Ô )ð × Ñ ð-#€‡�×  Ñ  Ô )ð × Ñ ð?#€‡�× 2Ñ 2Ô ;ð × Ñ ð/#€‡�× "Ñ "Ô +ð × Ñ ð0#€‡�× #Ñ #Ô ,ð × Ñ ð6#€‡�× )Ñ )Ô 2ð × Ñ ð:#€‡�× -Ñ -Ô 6ð × Ñ ð.#€‡�× !Ñ !Ô *ð × Ñ ð5#€‡�× (Ñ (Ô 1ð × Ñ ð5#€‡�× (Ñ (Ô 1ð × Ñ ð5#€‡�× (Ñ (Ô 1ð × Ñ ð3#€‡�× &Ñ &Ô /ð × Ñ ð@#€‡�× 3Ñ 3Ô <ð × Ñ ð5#€‡�× (Ñ (Ô 1ð × Ñ ð2#€‡�× %Ñ %Ô .ð × Ñ ð.#€‡�× !Ñ !Ô *ð × Ñ ð1#€‡�× $Ñ $Ô -ð × Ñ ð6#€‡�× )Ñ )Ô 2ð × Ñ ð:#€‡�× -Ñ -Ô 6ð × Ñ ð6#€‡�× )Ñ )Ô 2ð × Ñ ð<#€‡�× /Ñ /Ô 8ð × Ñ ð7$€‡�× *Ñ *Ô 3ð × Ñ ðA$€‡�× 4Ñ 4Ô =ð × Ñ ð=$€‡�× 0Ñ 0Ô 9ð × Ñ ð@$€‡�× 3Ñ 3Ô <ð × Ñ ð7$€‡�× *Ñ *Ô 3ð × Ñ ðG$€‡�× :Ñ :Ô Cð × Ñ ð3$€‡�× &Ñ &Ô /ð × Ñ ð3$€‡�× &Ñ &Ô /ð × Ñ ð0$€‡�× #Ñ #Ô ,ð × Ñ ð5$€‡�× (Ñ (Ô 1ð × Ñ ð7$€‡�× *Ñ *Ô 3ð × Ñ ð8$€‡�× +Ñ +Ô 4ð × Ñ ð8$€‡�× +Ñ +Ô 4ð × Ñ ð6$€‡�× )Ñ )Ô 2ð × Ñ ð<$€‡�× /Ñ /Ô 8ð × Ñ ð=$€‡�× 0Ñ 0Ô 9ð × Ñ ð;$€‡�× .Ñ .Ô 7ð × Ñ ð>$€‡�× 1Ñ 1Ô :ð × Ñ ð;$€‡�× .Ñ .Ô 7ð × Ñ ð@$€‡�× 3Ñ 3Ô <ð × Ñ ð6#€‡�× )Ñ )Ô 2ð × Ñ  %¨ð2€‡�× %Ñ %Ô .ð ×"Ñ"ð ‡�× +Ñ +Ô 3ð ×"Ñ" C×$4Ñ$4Ø×Ñð5€‡�× (Ñ (Ô 1ð
 ×"Ñ"ð3%€‡�× &Ñ &Ô /ð ×"Ñ"ð7%€‡�× *Ñ *Ô 3ð ×"Ñ"ð6%€‡�× )Ñ )Ô 2ð ×"Ñ"ð7%€‡�× *Ñ *Ô 3ð ×"Ñ" Eð9,€‡�× ,Ñ ,Ô 5ð ×"Ñ"ð6&€‡�× )Ñ )Ô 2ð ×"Ñ"ð:&€‡�× -Ñ -Ô 6ð ×"Ñ"ð2&€‡�× %Ñ %Ô .ð ×"Ñ"ð6&€‡�× )Ñ )Ô 2ð ×"Ñ"ð6&€‡�× )Ñ )Ô 2ð ×"Ñ"ð:&€‡�× -Ñ -Ô 6ð ×"Ñ"ð1&€‡�× $Ñ $Ô -ð ×"Ñ"ð5&€‡�× (Ñ (Ô 1ð ×"Ñ"ð5&€‡�× (Ñ (Ô 1ð ×"Ñ"ð9&€‡�× ,Ñ ,Ô 5ð ×"Ñ"ð0&€‡�× #Ñ #Ô ,ð ×"Ñ"ð0&€‡�× #Ñ #Ô ,ð ×"Ñ"ð>&€‡�× 1Ñ 1Ô :ð ×"Ñ"ð/&€‡�× "Ò "Ô +ð ×"Ñ"ð/&€‡�× "Ò "Ô +ð ×"Ñ"ðA&€‡�× 4Ò 4Ô =ð ×"Ñ"ð1&€‡�× $Ò $Ô -ð ×"Ñ"ð2&€‡�× %Ò %Ô .ð ×"Ñ"ð8&€‡�× +Ò +Ô 4ð ×"Ñ"ð<&€‡�× /Ò /Ô 8ð ×"Ñ"ð0&€‡�× #Ò #Ô ,ð ×"Ñ"ð7&€‡�× *Ò *Ô 3ð ×"Ñ"ð7&€‡�× *Ò *Ô 3ð ×"Ñ"ð7&€‡�× *Ò *Ô 3ð ×"Ñ"ð5&€‡�× (Ò (Ô 1ð ×"Ñ"ðB&€‡�× 5Ò 5Ô >ð ×"Ñ"ð7&€‡�× *Ò *Ô 3ð ×"Ñ"ð4&€‡�× 'Ò 'Ô 0ð ×"Ñ"ð0&€‡�× #Ò #Ô ,ð ×"Ñ"ð3&€‡�× &Ò &Ô /ð ×"Ñ"ð8&€‡�× +Ò +Ô 4ð ×"Ñ"ð<&€‡�× /Ò /Ô 8ð ×"Ñ"ð6&€‡�× )Ò )Ô 2ð ×"Ñ"ð8&€‡�× +Ò +Ô 4ð ×"Ñ"ð>&€‡�× 1Ò 1Ô :ð ×"Ñ"ð8%€‡�× +Ò +Ô 4ð ×"Ñ" E¨8ð4€‡�× 'Ò 'Ô 0ð ×$Ò$ð ‡�× *Ò *Ô 2ð 17€‡�× %Ò %Ô -à×$Ò$ð2'€‡�× %Ò %Ô .ð ×$Ò$ fð2.€‡�× %Ò %Ô .ð 28€‡�× &Ò &Ô .à×$Ò$ð3'€‡�× &Ò &Ô /ð ×$Ò$ fð3.€‡�× &Ò &Ô /ð 17€‡�× %Ò %Ô -à×$Ò$ð2'€‡�× %Ò %Ô .ð ×$Ò$ fð2.€‡�× %Ò %Ô .ð .4€‡�× "Ò "Ô *à×$Ò$ð/'€‡�× "Ò "Ô +ð ×$Ò$ fð/.€‡�× "Ò "Ô +ð 16€‡�× %Ò %Ô -ð ×$Ò$ eð2-€‡�× %Ò %Ô .ð 	×%Ò%Ð'ð ‡�× +Ò +Ô 4ð
 ,/×+AÑ+A€‡�×  Ò  Ô (à×ÒØ×$Ò$ð-€‡�×  Ò  Ô )ð
 /2×.DÑ.DÐ-F€‡�× !Ò !Ô *ð × Ò ð ‡�× &Ò &Ô .ð × Ò ð4#€‡�× 'Ò 'Ô 0ð ×ÑØ× Ò ð,€‡�× Ò Ô (ð × Ò ÙˆHÓð6€‡�× )Ò )Ô 2ð × Ñ ð ‡�× ,Ò ,Ô 4ð ×Ñ˜E 5ð9*€‡�× ,Ò ,Ô 5ð ×"Ñ"ð ‡�× 2Ò 2Ô :ð ×Ñ˜E 5ð?*€‡�× 2Ò 2Õ ;r   