ó
    „ñ:iÀ†  ã                   ó˜+  • S SK JrJrJrJrJrJrJr  S SKJ	r	  S SK
Jr  S SKJr  S rS rS rS S jr\	" S	S
5      r " S S	\5      r " S S\5      rS!S jrS rS r " S S\5      r " S S5      r " S S\R4                  \5      r " S S\R4                  \5      r " S S\R4                  5      r " S S\R4                  5      r " S S\R4                  5      r\" \5      \/\R@                  RB                  l"        \/\R@                  RF                  l"        \" \5      /\R@                  RH                  l"        \RJ                  \R@                  RL                  l'        \RJ                  \RP                  \RR                  /\R@                  RT                  l"        \RJ                  /\R@                  RV                  l"        \RJ                  /\R@                  RX                  l"        \RJ                  /\R@                  RZ                  l"        \RJ                  /\R@                  R\                  l"        \RJ                  /\R@                  R^                  l"        \RJ                  /\R@                  R`                  l"        \RJ                  /\R@                  Rb                  l"        \RJ                  /\R@                  Rd                  l"        \RJ                  /\R@                  Rf                  l"        \RJ                  /\R@                  Rh                  l"        \RJ                  /\R@                  Rj                  l"        \RJ                  /\R@                  Rl                  l"        \RJ                  /\R@                  Rn                  l"        \RJ                  /\R@                  Rp                  l"        \RJ                  /\R@                  Rr                  l"        \RJ                  /\R@                  Rt                  l"        \RJ                  /\R@                  Rv                  l"        \RJ                  /\R@                  Rx                  l"        \RJ                  /\R@                  Rz                  l"        \RJ                  /\R@                  R|                  l"        \RJ                  /\R@                  R~                  l"        \RJ                  /\R@                  R€                  l"        \RJ                  /\R@                  R‚                  l"        \RJ                  /\R@                  R„                  l"        \RJ                  /\R@                  R†                  l"        \RJ                  /\R@                  Rˆ                  l"        \RJ                  /\R@                  RŠ                  l"        \RJ                  /\R@                  RŒ                  l"        \RJ                  /\R@                  RŽ                  l"        \RJ                  /\R@                  R�                  l"        \RJ                  /\R@                  R’                  l"        \RJ                  /\R@                  R”                  l"        \RJ                  /\R@                  R–                  l"        \RJ                  /\R@                  R˜                  l"        \RJ                  /\R@                  Rš                  l"        \RJ                  /\R@                  Rœ                  l"        \RJ                  /\R@                  Rž                  l"        \RJ                  /\R@                  R                   l"        \RJ                  /\R@                  R¢                  l"        \RJ                  /\R@                  R¤                  l"        \RJ                  /\R@                  R¦                  l"        \RJ                  /\R@                  R¨                  l"        \RJ                  /\R@                  Rª                  l"        \RJ                  /\R@                  R¬                  l"        \RJ                  /\R@                  R®                  l"        \RJ                  /\R@                  R°                  l"        \RJ                  /\R@                  R²                  l"        \RJ                  /\R@                  R´                  l"        \RJ                  /\R@                  R¶                  l"        \RJ                  /\R@                  R¸                  l"        \RJ                  /\R@                  Rº                  l"        \RJ                  /\R@                  R¼                  l"        \RJ                  /\R@                  R¾                  l"        \RJ                  /\R@                  RÀ                  l"        \RJ                  /\R@                  RÂ                  l"        \RJ                  /\R@                  RÄ                  l"        \RJ                  /\R@                  RÆ                  l"        \RJ                  /\R@                  RÈ                  l"        \RJ                  /\R@                  RÊ                  l"        \RJ                  /\R@                  RÌ                  l"        \RJ                  /\R@                  RÎ                  l"        \RJ                  /\R@                  RÐ                  l"        \RJ                  \\/\R@                  RÒ                  l"        \RÔ                  \R@                  RÖ                  l'        \RÔ                  \RØ                  \RR                  /\R@                  RÚ                  l"        \RÔ                  /\R@                  RÜ                  l"        \RÔ                  /\R@                  RÞ                  l"        \RÔ                  /\R@                  Rà                  l"        \RÔ                  /\R@                  Râ                  l"        \RÔ                  \/\R@                  Rä                  l"        \RÔ                  /\R@                  Ræ                  l"        \RÔ                  /\R@                  Rè                  l"        \RÔ                  /\R@                  Rê                  l"        \RÔ                  /\R@                  Rì                  l"        \RÔ                  /\R@                  Rî                  l"        \RÔ                  /\R@                  Rð                  l"        \RÔ                  /\R@                  Rò                  l"        \RÔ                  /\R@                  Rô                  l"        \RÔ                  /\R@                  Rö                  l"        \RÔ                  /\R@                  Rø                  l"        \RÔ                  /\R@                  Rú                  l"        \RÔ                  /\R@                  Rü                  l"        \RÔ                  /\R@                  Rþ                  l"        \RÔ                  /\R@                  GR                   l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR
                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                  l"        \RÔ                  /\R@                  GR                   l"        \RÔ                  /\R@                  GR"                  l"        \RÔ                  /\R@                  GR$                  l"        \RÔ                  /\R@                  GR&                  l"        \RÔ                  /\R@                  GR(                  l"        \RÔ                  /\R@                  GR*                  l"        \RÔ                  /\R@                  GR,                  l"        \RÔ                  \\/\R@                  GR.                  l"        \GR0                  \R@                  GR2                  l'        \\R@                  GR4                  l'        \GR0                  /\R@                  GR4                  l"        \GR0                  \/\R@                  GR6                  l"        \\R@                  GR8                  l'        \GR0                  /\R@                  GR8                  l"        \GR0                  \/\R@                  GR:                  l"        \\R@                  GR<                  l'        \GR0                  /\R@                  GR<                  l"        \GR0                  \/\R@                  GR>                  l"        \\R@                  GR@                  l'        \GR0                  /\R@                  GR@                  l"        \GR0                  \/\R@                  GRB                  l"        \\R@                  GRD                  l'        \GR0                  \/\R@                  GRF                  l"        \GR0                  /\R@                  GRH                  l"        \RR                  \R@                  GRJ                  l'        \GRL                  \GR0                  /\R@                  GRJ                  l"        \RR                  /\R@                  GRN                  l"        \GRP                  \R@                  GRR                  l'        \GRP                  /\R@                  GRT                  l"        \RR                  \GRP                  /\R@                  GRV                  l"        \GRP                  \" \5      /\R@                  GRX                  l"        \RJ                  \R@                  GRZ                  l'        \RR                  \\/\R@                  GRZ                  l"        \RÔ                  \R@                  GR\                  l'        \RR                  \\/\R@                  GR\                  l"        g)"é    )Úc_boolÚc_intÚc_size_tÚPOINTERÚ	StructureÚbyrefÚc_char_p)Ú
namedtuple)ÚIntFlag)Úffic                  ó   • [        5       $ ©N)ÚModulePassManager© ó    Úc/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/llvmlite/binding/newpassmanagers.pyÚcreate_new_module_pass_managerr      s   € ÜÓÐr   c                  ó   • [        5       $ r   )ÚFunctionPassManagerr   r   r   Ú create_new_function_pass_managerr      s   € ÜÓ Ð r   c                 ó   • [        X5      $ r   )ÚPassBuilder)ÚtmÚptos     r   Úcreate_pass_builderr      s   € Ü�rÓÐr   c                 ó   • [        X5      $ r   )ÚPipelineTuningOptions)Úspeed_levelÚ
size_levels     r   Úcreate_pipeline_tuning_optionsr       s   € Ü  Ó9Ð9r   Ú
PruneStatsz&basicblock diamond fanout fanout_raisec                   ó$   • \ rS rSrSrS rS rSrg)r!   é   z3Holds statistics from reference count pruning.
    c                 óJ  • [        U[        5      (       d%  Sn[        UR                  [	        U5      5      5      e[        U R
                  UR
                  -   U R                  UR                  -   U R                  UR                  -   U R                  UR                  -   5      $ )Nz;PruneStats can only be added to another PruneStats, got {}.©	Ú
isinstancer!   Ú	TypeErrorÚformatÚtypeÚ
basicblockÚdiamondÚfanoutÚfanout_raise©ÚselfÚotherÚmsgs      r   Ú__add__ÚPruneStats.__add__   s€   € Ü˜%¤×,Ñ,ØOˆCÜ˜CŸJ™J¤t¨E£{Ó3Ó4Ð4Ü˜$Ÿ/™/¨E×,<Ñ,<Ñ<ØŸ,™,¨¯©Ñ6ØŸ+™+¨¯©Ñ4Ø×+Ñ+¨e×.@Ñ.@Ñ@óBð 	Br   c                 óJ  • [        U[        5      (       d%  Sn[        UR                  [	        U5      5      5      e[        U R
                  UR
                  -
  U R                  UR                  -
  U R                  UR                  -
  U R                  UR                  -
  5      $ )NzBPruneStats can only be subtracted from another PruneStats, got {}.r%   r.   s      r   Ú__sub__ÚPruneStats.__sub__(   s‚   € Ü˜%¤×,Ñ,ðˆCä˜CŸJ™J¤t¨E£{Ó3Ó4Ð4Ü˜$Ÿ/™/¨E×,<Ñ,<Ñ<ØŸ,™,¨¯©Ñ6ØŸ+™+¨¯©Ñ4Ø×+Ñ+¨e×.@Ñ.@Ñ@óBð 	Br   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r2   r5   Ú__static_attributes__r   r   r   r!   r!      s   † ñòBõBr   c                   ó0   • \ rS rSrS\4S\4S\4S\4/rSrg)Ú_c_PruneStatsé3   r*   r+   r,   r-   r   N)r7   r8   r9   r:   r   Ú_fields_r<   r   r   r   r>   r>   3   s)   † à	�xÐ Ø	�HÐØ	�8ÐØ	˜Ð"ð	$ƒHr   r>   c                 óò   • [        SSSS5      n[        U 5      n[        R                  R	                  [        U5      U5        [        UR                  UR                  UR                  UR                  5      $ )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   )r>   r   r   ÚlibÚLLVMPY_DumpRefPruneStatsr   r!   r*   r+   r,   r-   )ÚprintoutÚstatsÚdo_prints      r   Údump_refprune_statsrG   ;   s`   € ô ˜!˜Q  1Ó%€EÜ�hÓ€Hä‡G�G×$Ñ$¤U¨5£\°8Ô<Ü�e×&Ñ&¨¯©°u·|±|Ø×(Ñ(ó*ð *r   c                 óT   • [         R                  R                  [        U 5      5        g)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   rB   ÚLLVMPY_SetTimePassesr   )Úenables    r   Úset_time_passesrK   N   s   € ô ‡G�G× Ñ ¤¨£Õ0r   c                  ó¶   • [         R                  " 5        n [         R                  R                  U 5        [	        U 5      sSSS5        $ ! , (       d  f       g= f)zÿ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   ÚOutputStringrB   ÚLLVMPY_ReportAndResetTimingsÚstr)Úbufs    r   Úreport_and_reset_timingsrQ   Z   s7   € ô 
×	Ò	Ô	˜sÜ�‰×,Ñ,¨SÔ1Ü�3‹x÷ 
×	×	ús   –*A
Á

Ac                   ó:   • \ rS rSrSrSrSrSr\\-  \-  \-  rSr	g)ÚRefPruneSubpasseséj   é   é   é   é   r   N)
r7   r8   r9   r:   ÚPER_BBÚDIAMONDÚFANOUTÚFANOUT_RAISEÚALLr<   r   r   r   rS   rS   j   s*   † Ø€FØ€GØ€FØ€LØ
�7Ñ
˜VÑ
# lÑ
2ƒCr   rS   c                   ó  • \ rS rSrS rS rS rS rS rS r	S/S jr
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S-r/g.)0ÚNewPassManagerér   c                 ó>   • [        U 5      [        L a  [        S5      eg )Nz*Cannot instantiate NewPassManager directly)r)   r_   r'   ©r/   s    r   Ú__init__ÚNewPassManager.__init__t   s   € Ü�‹:œÒ'ÜÐHÓIÐIð (r   c                 ó°   • [        U [        5      (       a!  [        R                  R	                  XU5        g [        R                  R                  XU5        g r   )r&   r   r   rB   ÚLLVMPY_RunNewModulePassManagerÚ LLVMPY_RunNewFunctionPassManager)r/   ÚIRÚpbs      r   ÚrunÚNewPassManager.runx   s8   € Ü�dÔ-×.Ñ.Ü�G‰G×2Ñ2°4¸RÕ@ä�G‰G×4Ñ4°T¸rÕBr   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddAAEvaluatorÚLLVMPY_function_AddAAEvaluatorrb   s    r   Úadd_aa_eval_passÚNewPassManager.add_aa_eval_pass~   ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×0Ñ0°Õ6ä�G‰G×2Ñ2°4Õ8r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú LLVMPY_module_AddSimplifyCFGPassÚ"LLVMPY_function_AddSimplifyCFGPassrb   s    r   Úadd_simplify_cfg_passÚ$NewPassManager.add_simplify_cfg_pass„   ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×4Ñ4°TÕ:ä�G‰G×6Ñ6°tÕ<r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddLoopUnrollPassÚ!LLVMPY_function_AddLoopUnrollPassrb   s    r   Úadd_loop_unroll_passÚ#NewPassManager.add_loop_unroll_passŠ   ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×3Ñ3°DÕ9ä�G‰G×5Ñ5°dÕ;r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú LLVMPY_module_AddInstCombinePassÚ"LLVMPY_function_AddInstCombinePassrb   s    r   Úadd_instruction_combine_passÚ+NewPassManager.add_instruction_combine_pass�   rw   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  X5        g [        R                  R                  X5        g r   )r&   r   r   rB   Ú"LLVMPY_AddJumpThreadingPass_moduleÚ$LLVMPY_AddJumpThreadingPass_function)r/   Ú	thresholds     r   Úadd_jump_threading_passÚ&NewPassManager.add_jump_threading_pass–   s4   € Ü�dÔ-×.Ñ.Ü�G‰G×6Ñ6°tÕGä�G‰G×8Ñ8¸ÕIr   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddCFGPrinterPassÚ!LLVMPY_function_AddCFGPrinterPassrb   s    r   Úadd_cfg_printer_passÚ#NewPassManager.add_cfg_printer_passœ   r}   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú#LLVMPY_module_AddCFGOnlyPrinterPassÚ%LLVMPY_function_AddCFGOnlyPrinterPassrb   s    r   Úadd_cfg_only_printer_passÚ(NewPassManager.add_cfg_only_printer_pass¢   ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×7Ñ7¸Õ=ä�G‰G×9Ñ9¸$Õ?r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddDomPrinterÚLLVMPY_function_AddDomPrinterrb   s    r   Úadd_dom_printer_passÚ#NewPassManager.add_dom_printer_pass¨   ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×/Ñ/°Õ5ä�G‰G×1Ñ1°$Õ7r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddDomOnlyPrinterÚ!LLVMPY_function_AddDomOnlyPrinterrb   s    r   Úadd_dom_only_printer_passÚ(NewPassManager.add_dom_only_printer_pass®   r}   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddPostDomPrinterÚ!LLVMPY_function_AddPostDomPrinterrb   s    r   Úadd_post_dom_printer_passÚ(NewPassManager.add_post_dom_printer_pass´   r}   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú#LLVMPY_module_AddPostDomOnlyPrinterÚ%LLVMPY_function_AddPostDomOnlyPrinterrb   s    r   Úadd_post_dom_only_printer_passÚ-NewPassManager.add_post_dom_only_printer_passº   r“   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddDomViewerÚLLVMPY_function_AddDomViewerrb   s    r   Úadd_dom_viewer_passÚ"NewPassManager.add_dom_viewer_passÀ   ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×.Ñ.¨tÕ4ä�G‰G×0Ñ0°Õ6r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddDomOnlyViewerÚ LLVMPY_function_AddDomOnlyViewerrb   s    r   Úadd_dom_only_viewer_passÚ'NewPassManager.add_dom_only_viewer_passÆ   ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×2Ñ2°4Õ8ä�G‰G×4Ñ4°TÕ:r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddPostDomViewerÚ LLVMPY_function_AddPostDomViewerrb   s    r   Úadd_post_dom_viewer_passÚ'NewPassManager.add_post_dom_viewer_passÌ   r´   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú"LLVMPY_module_AddPostDomOnlyViewerÚ$LLVMPY_function_AddPostDomOnlyViewerrb   s    r   Úadd_post_dom_only_viewer_passÚ,NewPassManager.add_post_dom_only_viewer_passÒ   s4   € Ü�dÔ-×.Ñ.Ü�G‰G×6Ñ6°tÕ<ä�G‰G×8Ñ8¸Õ>r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddLintPassÚLLVMPY_function_AddLintPassrb   s    r   Úadd_lint_passÚNewPassManager.add_lint_passØ   ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×-Ñ-¨dÕ3ä�G‰G×/Ñ/°Õ5r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddADCEPassÚLLVMPY_function_AddADCEPassrb   s    r   Úadd_aggressive_dce_passÚ&NewPassManager.add_aggressive_dce_passÞ   rÄ   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú'LLVMPY_module_AddBreakCriticalEdgesPassÚ)LLVMPY_function_AddBreakCriticalEdgesPassrb   s    r   Úadd_break_critical_edges_passÚ,NewPassManager.add_break_critical_edges_passä   ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×;Ñ;¸DÕAä�G‰G×=Ñ=¸dÕCr   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddDSEPassÚLLVMPY_function_AddDSEPassrb   s    r   Úadd_dead_store_elimination_passÚ.NewPassManager.add_dead_store_elimination_passê   ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×,Ñ,¨TÕ2ä�G‰G×.Ñ.¨tÕ4r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddDCEPassÚLLVMPY_function_AddDCEPassrb   s    r   Úadd_dead_code_elimination_passÚ-NewPassManager.add_dead_code_elimination_passð   rÕ   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú*LLVMPY_module_AddAggressiveInstCombinePassÚ,LLVMPY_function_AddAggressiveInstCombinePassrb   s    r   Úadd_aggressive_instcombine_passÚ.NewPassManager.add_aggressive_instcombine_passö   s4   € Ü�dÔ-×.Ñ.Ü�G‰G×>Ñ>¸tÕDä�G‰G×@Ñ@ÀÕFr   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddLCSSAPassÚLLVMPY_function_AddLCSSAPassrb   s    r   Úadd_lcssa_passÚNewPassManager.add_lcssa_passü   r®   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddNewGVNPassÚLLVMPY_function_AddNewGVNPassrb   s    r   Úadd_new_gvn_passÚNewPassManager.add_new_gvn_pass  r™   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú!LLVMPY_module_AddLoopSimplifyPassÚ#LLVMPY_function_AddLoopSimplifyPassrb   s    r   Úadd_loop_simplify_passÚ%NewPassManager.add_loop_simplify_pass  ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×5Ñ5°dÕ;ä�G‰G×7Ñ7¸Õ=r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú%LLVMPY_module_AddLoopUnrollAndJamPassÚ'LLVMPY_function_AddLoopUnrollAndJamPassrb   s    r   Úadd_loop_unroll_and_jam_passÚ+NewPassManager.add_loop_unroll_and_jam_pass  ó4   € Ü�dÔ-×.Ñ.Ü�G‰G×9Ñ9¸$Õ?ä�G‰G×;Ñ;¸DÕAr   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddSCCPPassÚLLVMPY_function_AddSCCPPassrb   s    r   Úadd_sccp_passÚNewPassManager.add_sccp_pass  rÄ   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú LLVMPY_module_AddLowerAtomicPassÚ"LLVMPY_function_AddLowerAtomicPassrb   s    r   Úadd_lower_atomic_passÚ$NewPassManager.add_lower_atomic_pass  rw   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú LLVMPY_module_AddLowerInvokePassÚ"LLVMPY_function_AddLowerInvokePassrb   s    r   Úadd_lower_invoke_passÚ$NewPassManager.add_lower_invoke_pass   rw   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú LLVMPY_module_AddLowerSwitchPassÚ"LLVMPY_function_AddLowerSwitchPassrb   s    r   Úadd_lower_switch_passÚ$NewPassManager.add_lower_switch_pass&  rw   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddMemCpyOptPassÚ LLVMPY_function_AddMemCpyOptPassrb   s    r   Úadd_mem_copy_opt_passÚ$NewPassManager.add_mem_copy_opt_pass,  r´   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú+LLVMPY_module_AddUnifyFunctionExitNodesPassÚ-LLVMPY_function_AddUnifyFunctionExitNodesPassrb   s    r   Ú"add_unify_function_exit_nodes_passÚ1NewPassManager.add_unify_function_exit_nodes_pass2  s4   € Ü�dÔ-×.Ñ.Ü�G‰G×?Ñ?ÀÕEä�G‰G×AÑAÀ$ÕGr   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú LLVMPY_module_AddReassociatePassÚ"LLVMPY_function_AddReassociatePassrb   s    r   Úadd_reassociate_passÚ#NewPassManager.add_reassociate_pass8  rw   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddRegToMemPassÚLLVMPY_function_AddRegToMemPassrb   s    r   Úadd_register_to_memory_passÚ*NewPassManager.add_register_to_memory_pass>  s4   € Ü�dÔ-×.Ñ.Ü�G‰G×1Ñ1°$Õ7ä�G‰G×3Ñ3°DÕ9r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddSROAPassÚLLVMPY_function_AddSROAPassrb   s    r   Úadd_sroa_passÚNewPassManager.add_sroa_passD  rÄ   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddSinkingPassÚLLVMPY_function_AddSinkingPassrb   s    r   Úadd_sinking_passÚNewPassManager.add_sinking_passJ  rq   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú!LLVMPY_module_AddTailCallElimPassÚ#LLVMPY_function_AddTailCallElimPassrb   s    r   Úadd_tail_call_elimination_passÚ-NewPassManager.add_tail_call_elimination_passP  rï   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú%LLVMPY_module_AddInstructionNamerPassÚ'LLVMPY_function_AddInstructionNamerPassrb   s    r   Úadd_instruction_namer_passÚ)NewPassManager.add_instruction_namer_passV  rõ   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú!LLVMPY_module_AddLoopDeletionPassÚ#LLVMPY_function_AddLoopDeletionPassrb   s    r   Úadd_loop_deletion_passÚ%NewPassManager.add_loop_deletion_pass\  rï   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú'LLVMPY_module_AddLoopStrengthReducePassÚ)LLVMPY_function_AddLoopStrengthReducePassrb   s    r   Úadd_loop_strength_reduce_passÚ,NewPassManager.add_loop_strength_reduce_passb  rÏ   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   ÚLLVMPY_module_AddLoopRotatePassÚ!LLVMPY_function_AddLoopRotatePassrb   s    r   Úadd_loop_rotate_passÚ#NewPassManager.add_loop_rotate_passh  r}   r   c                 ó¬   • [        U [        5      (       a   [        R                  R	                  U 5        g [        R                  R                  U 5        g r   )r&   r   r   rB   Ú!LLVMPY_DisposeNewModulePassMangerÚ#LLVMPY_DisposeNewFunctionPassMangerrb   s    r   Ú_disposeÚNewPassManager._disposen  rï   r   r   N)éÿÿÿÿ)0r7   r8   r9   r:   rc   rj   ro   ru   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+  r0  r5  r:  r?  rD  r<   r   r   r   r_   r_   r   sä   † òJòCò9ò=ò<ò=ôJò<ò@ò8ò<ò<ò@ò7ò;ò;ò?ò6ò6òDò5ò5òGò7ò8ò>òBò6ò=ò=ò=ò;òHò=ò:ò6ò9ò>òBò>òDò<õ>r   r_   c                   óÌ   ^ • \ rS rSrSU 4S jjrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS r\R6                  S4S jrSrU =r$ )r   iu  c                 óf   >• Uc  [         R                  R                  5       n[        TU ]  U5        g r   )r   rB   Ú!LLVMPY_CreateNewModulePassManagerÚsuperrc   ©r/   ÚptrÚ	__class__s     €r   rc   ÚModulePassManager.__init__w  s'   ø€ Ø‰;Ü—'‘'×;Ñ;Ó=ˆCÜ‰Ñ˜Õr   c                 óB   • [         R                  R                  U 5        g r   )r   rB   ÚLLVMPY_module_AddVerifierPassrb   s    r   Úadd_verifierÚModulePassManager.add_verifier|  s   € Ü�‰×-Ñ-¨dÕ3r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú"LLVMPY_module_AddConstantMergePassrb   s    r   Úadd_constant_merge_passÚ)ModulePassManager.add_constant_merge_pass  ó   € Ü�‰×2Ñ2°4Õ8r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú,LLVMPY_module_AddDeadArgumentEliminationPassrb   s    r   Úadd_dead_arg_elimination_passÚ/ModulePassManager.add_dead_arg_elimination_pass‚  s   € Ü�‰×<Ñ<¸TÕBr   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú(LLVMPY_module_AddCallGraphDOTPrinterPassrb   s    r   Úadd_dot_call_graph_printer_passÚ1ModulePassManager.add_dot_call_graph_printer_pass…  ó   € Ü�‰×8Ñ8¸Õ>r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú+LLVMPY_module_AddModuleDebugInfoPrinterPassrb   s    r   Úadd_module_debug_info_passÚ,ModulePassManager.add_module_debug_info_passŠ  ó   € Ü�‰×;Ñ;¸DÕAr   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú"LLVMPY_module_AddAlwaysInlinerPassrb   s    r   Úadd_always_inliner_passÚ)ModulePassManager.add_always_inliner_pass�  rW  r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú2LLVMPY_module_AddReversePostOrderFunctionAttrsPassrb   s    r   Úadd_rpo_function_attrs_passÚ-ModulePassManager.add_rpo_function_attrs_pass�  s   € Ü�‰×BÑBÀ4ÕHr   c                 óB   • [         R                  R                  U 5        g r   )r   rB   ÚLLVMPY_module_AddGlobalDCEPassrb   s    r   Ú#add_global_dead_code_eliminate_passÚ5ModulePassManager.add_global_dead_code_eliminate_pass“  ó   € Ü�‰×.Ñ.¨tÕ4r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   ÚLLVMPY_module_AddGlobalOptPassrb   s    r   Úadd_global_opt_passÚ%ModulePassManager.add_global_opt_pass–  rr  r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   ÚLLVMPY_module_AddIPSCCPPassrb   s    r   Úadd_ipsccp_passÚ!ModulePassManager.add_ipsccp_pass™  s   € Ü�‰×+Ñ+¨DÕ1r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú LLVMPY_module_AddInternalizePassrb   s    r   Úadd_internalize_passÚ&ModulePassManager.add_internalize_passœ  s   € Ü�‰×0Ñ0°Õ6r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú"LLVMPY_module_AddLoopExtractorPassrb   s    r   Úadd_loop_extract_passÚ'ModulePassManager.add_loop_extract_passŸ  rW  r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú#LLVMPY_module_AddMergeFunctionsPassrb   s    r   Úadd_merge_functions_passÚ*ModulePassManager.add_merge_functions_pass¢  ó   € Ü�‰×3Ñ3°DÕ9r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú#LLVMPY_module_AddPartialInlinerPassrb   s    r   Úadd_partial_inliner_passÚ*ModulePassManager.add_partial_inliner_pass¥  r‡  r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú!LLVMPY_module_AddStripSymbolsPassrb   s    r   Úadd_strip_symbols_passÚ(ModulePassManager.add_strip_symbols_pass¨  s   € Ü�‰×1Ñ1°$Õ7r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú'LLVMPY_module_AddStripDeadDebugInfoPassrb   s    r   Úadd_strip_dead_debug_info_passÚ0ModulePassManager.add_strip_dead_debug_info_pass«  s   € Ü�‰×7Ñ7¸Õ=r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú(LLVMPY_module_AddStripDeadPrototypesPassrb   s    r   Úadd_strip_dead_prototype_passÚ/ModulePassManager.add_strip_dead_prototype_pass®  r`  r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú&LLVMPY_module_AddStripDebugDeclarePassrb   s    r   Úadd_strip_debug_declare_passÚ.ModulePassManager.add_strip_debug_declare_pass±  ó   € Ü�‰×6Ñ6°tÕ<r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú)LLVMPY_module_AddStripNonDebugSymbolsPassrb   s    r   Ú add_strip_non_debug_symbols_passÚ2ModulePassManager.add_strip_non_debug_symbols_pass´  s   € Ü�‰×9Ñ9¸$Õ?r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú&LLVMPY_module_AddArgumentPromotionPassrb   s    r   Úadd_argument_promotion_passÚ-ModulePassManager.add_argument_promotion_pass·  rœ  r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú+LLVMPY_module_AddPostOrderFunctionAttrsPassrb   s    r   Ú'add_post_order_function_attributes_passÚ9ModulePassManager.add_post_order_function_attributes_passº  re  r   éè  c                 óZ   • [        U5      n[        R                  R                  XU5        g©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)rS   r   rB   ÚLLVMPY_AddRefPrunePass_module©r/   Úsubpasses_flagsÚsubgraph_limitÚiflagss       r   Úadd_refprune_passÚ#ModulePassManager.add_refprune_pass¾  s"   € ô # ?Ó3ˆÜ�‰×-Ñ-¨d¸NÕKr   r   r   )r7   r8   r9   r:   rc   rQ  rU  rZ  r^  rc  rh  rl  rp  ru  ry  r}  r�  r…  rŠ  rŽ  r’  r–  rš  rŸ  r£  r§  rS   r]   r±  r<   Ú__classcell__©rM  s   @r   r   r   u  s‘   ø† ÷ò
4ò9òCò?ò
Bò9òIò5ò5ò2ò7ò9ò:ò:ò8ò>ò?ò=ò@ò=òBð 1B×0EÑ0EØ)-÷Lò Lr   r   c                   óN   ^ • \ rS rSrSU 4S jjr\R                  S4S jrSrU =r	$ )r   iÐ  c                 óf   >• Uc  [         R                  R                  5       n[        TU ]  U5        g r   )r   rB   Ú#LLVMPY_CreateNewFunctionPassManagerrJ  rc   rK  s     €r   rc   ÚFunctionPassManager.__init__Ò  s'   ø€ Ø‰;Ü—'‘'×=Ñ=Ó?ˆCÜ‰Ñ˜Õr   r©  c                 óZ   • [        U5      n[        R                  R                  XU5        gr«  )rS   r   rB   ÚLLVMPY_AddRefPrunePass_functionr­  s       r   r±  Ú%FunctionPassManager.add_refprune_passØ  s"   € ô # ?Ó3ˆÜ�‰×/Ñ/°¸nÕMr   r   r   )
r7   r8   r9   r:   rc   rS   r]   r±  r<   r³  r´  s   @r   r   r   Ð  s#   ø† ÷ð 1B×0EÑ0EØ)-÷Nò Nr   r   c                   óž  ^ • \ rS rSrSU 4S jjr\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r	\	R                  S 5       r	\S	 5       r
\
R                  S
 5       r
\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       rS rSrU =r$ )r   iê  c                 ó�   >• S U l         S U l        Xl        X l        [        TU ]  [        R                  R                  5       5        g r   )	Ú_speed_levelÚ_size_levelr   r   rJ  rc   r   rB   Ú"LLVMPY_CreatePipelineTuningOptions)r/   r   r   rM  s      €r   rc   ÚPipelineTuningOptions.__init__ì  s8   ø€ Ø ˆÔØˆÔØ&ÔØ$ŒÜ‰ÑœŸ™×CÑCÓEÕFr   c                 ó   • U R                   $ r   )r¾  rb   s    r   r   Ú!PipelineTuningOptions.speed_leveló  s   € à× Ñ Ð r   c                 óD   • SUs=::  a  S::  d  O  [        S5      eXl        g )Nr   é   z4Optimization level for speed should be 0, 1, 2, or 3)Ú
ValueErrorr¾  ©r/   Úvalues     r   r   rÃ  ÷  s%   € à�E�˜Q�ÜØFóHð Hà!Õr   c                 ó   • U R                   $ r   )r¿  rb   s    r   r   Ú PipelineTuningOptions.size_levelþ  s   € à×ÑÐr   c                 ó†   • SUs=::  a  S::  d  O  [        S5      eUS:w  a  U R                  S:w  a  [        S5      eXl        g )Nr   rV   z0Optimization level for size should be 0, 1, or 2z=Optimization for size should be encoded with speed level == 2)rÆ  r   r¿  rÇ  s     r   r   rÊ    sE   € à�E�˜Q�ÜÐOÓPÐPØ�A‹:˜$×*Ñ*¨aÓ/ÜØOóQð Qà Õr   c                 ó@   • [         R                  R                  U 5      $ r   )r   rB   ÚLLVMPY_PTOGetLoopInterleavingrb   s    r   Úloop_interleavingÚ'PipelineTuningOptions.loop_interleaving  ó   € ä�w‰w×4Ñ4°TÓ:Ð:r   c                 óB   • [         R                  R                  X5        g r   )r   rB   ÚLLVMPY_PTOSetLoopInterleavingrÇ  s     r   rÎ  rÏ    ó   € ä�‰×-Ñ-¨dÕ:r   c                 ó@   • [         R                  R                  U 5      $ r   )r   rB   ÚLLVMPY_PTOGetLoopVectorizationrb   s    r   Úloop_vectorizationÚ(PipelineTuningOptions.loop_vectorization  s   € ä�w‰w×5Ñ5°dÓ;Ð;r   c                 óB   • [         R                  R                  X5        g r   )r   rB   ÚLLVMPY_PTOSetLoopVectorizationrÇ  s     r   rÖ  r×    s   € ä�‰×.Ñ.¨tÕ;r   c                 ó@   • [         R                  R                  U 5      $ r   )r   rB   ÚLLVMPY_PTOGetSLPVectorizationrb   s    r   Úslp_vectorizationÚ'PipelineTuningOptions.slp_vectorization  rÐ  r   c                 óB   • [         R                  R                  X5        g r   )r   rB   ÚLLVMPY_PTOSetSLPVectorizationrÇ  s     r   rÜ  rÝ    rÓ  r   c                 ó@   • [         R                  R                  U 5      $ r   )r   rB   ÚLLVMPY_PTOGetLoopUnrollingrb   s    r   Úloop_unrollingÚ$PipelineTuningOptions.loop_unrolling#  s   € ä�w‰w×1Ñ1°$Ó7Ð7r   c                 óB   • [         R                  R                  X5        g r   )r   rB   ÚLLVMPY_PTOSetLoopUnrollingrÇ  s     r   râ  rã  '  s   € ä�‰×*Ñ*¨4Õ7r   c                 ó@   • [         R                  R                  U 5      $ r   )r   rB   ÚLLVMPY_PTOGetInlinerThresholdrb   s    r   Úinlining_thresholdÚ(PipelineTuningOptions.inlining_threshold+  rÐ  r   c                 óB   • [         R                  R                  X5        g r   )r   rB   ÚLLVMPY_PTOSetInlinerThresholdrÇ  s     r   rè  ré  /  rÓ  r   c                 óB   • [         R                  R                  U 5        g r   )r   rB   Ú#LLVMPY_DisposePipelineTuningOptionsrb   s    r   rD  ÚPipelineTuningOptions._dispose3  r‡  r   )r¿  r¾  r   r   ©rV   r   )r7   r8   r9   r:   rc   Úpropertyr   Úsetterr   rÎ  rÖ  rÜ  râ  rè  rD  r<   r³  r´  s   @r   r   r   ê  sU  ø† ÷Gð ñ!ó ð!ð ×Ññ"ó ð"ð ñ ó ð ð ×Ññ!ó ð!ð ñ;ó ð;ð ×Ññ;ó ð;ð ñ<ó ð<ð ×Ññ<ó ð<ð ñ;ó ð;ð ×Ññ;ó ð;ð ñ8ó ð8ð ×Ññ8ó ð8ð ñ;ó ð;ð ×Ññ;ó ð;÷:ð :r   r   c                   ó.   ^ • \ rS rSrU 4S jrS rSrU =r$ )ÚTimePassesHandleri7  c                 ó\   >• [         TU ]  [        R                  R	                  5       5        g r   )rJ  rc   r   rB   ÚLLVMPY_CreateTimePassesHandler)r/   rM  s    €r   rc   ÚTimePassesHandler.__init__8  s   ø€ Ü‰ÑœŸ™×?Ñ?ÓAÕBr   c                 óB   • [         R                  R                  U 5        g r   )r   rB   ÚLLVMPY_DisposeTimePassesHandlerrb   s    r   rD  ÚTimePassesHandler._dispose;  s   € Ü�‰×/Ñ/°Õ5r   r   )r7   r8   r9   r:   rc   rD  r<   r³  r´  s   @r   ró  ró  7  s   ø† õC÷6ð 6r   ró  c                   óF   ^ • \ rS rSrU 4S jrS rS rS rS rS r	Sr
U =r$ )	r   i?  c                 ó„   >• [         TU ]  [        R                  R	                  X5      5        X l        Xl        S U l        g r   )rJ  rc   r   rB   ÚLLVMPY_CreatePassBuilderÚ_ptoÚ_tmÚ_time_passes_handler)r/   r   r   rM  s      €r   rc   ÚPassBuilder.__init__A  s1   ø€ Ü‰ÑœŸ™×9Ñ9¸"ÓBÔCØŒ	ØŒØ$(ˆÕ!r   c                 ó¤   • [        [        R                  R                  X R                  R
                  U R                  R                  5      5      $ r   )r   r   rB   Ú$LLVMPY_buildPerModuleDefaultPipelinerý  r   r   rb   s    r   ÚgetModulePassManagerÚ PassBuilder.getModulePassManagerG  s;   € Ü Ü�G‰G×8Ñ8Ø—i‘i×+Ñ+¨T¯Y©Y×-AÑ-AóCó
ð 	
r   c                 ó¤   • [        [        R                  R                  X R                  R
                  U R                  R                  5      5      $ r   )r   r   rB   Ú*LLVMPY_buildFunctionSimplificationPipelinerý  r   r   rb   s    r   ÚgetFunctionPassManagerÚ"PassBuilder.getFunctionPassManagerM  s;   € Ü"Ü�G‰G×>Ñ>Ø—i‘i×+Ñ+¨T¯Y©Y×-AÑ-AóCó
ð 	
r   c                 ó¬   • U R                   (       a  [        S5      e[        5       U l         [        R                  R                  X R                   5        g)z[Enable the pass timers.

Raises
------
RuntimeError
    If pass timing is already enabled.
z!Pass timing can only be done onceN)rÿ  ÚRuntimeErrorró  r   rB   ÚLLVMPY_EnableTimePassesrb   s    r   Ústart_pass_timingÚPassBuilder.start_pass_timingS  s<   € ð ×$×$ÜÐBÓCÐCÜ$5Ó$7ˆÔ!Ü�‰×'Ñ'¨×.GÑ.GÕHr   c                 ó  • U R                   (       d  [        S5      e[        R                  " 5        n[        R                  R                  U R                   U5        [        U5      sSSS5        $ ! , (       d  f       g= f)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   rM   rB   Ú!LLVMPY_ReportAndDisableTimePassesrO   )r/   rP   s     r   Úfinish_pass_timingÚPassBuilder.finish_pass_timing`  sW   € ð ×(×(ÜÐ;Ó<Ð<ä×ÒÔ 3Ü�G‰G×5Ñ5Ø×)Ñ)¨3ô0ä�s“8÷  ××ús   ²5A1Á1
A?c                 óB   • [         R                  R                  U 5        g r   )r   rB   ÚLLVMPY_DisposePassBuilderrb   s    r   rD  ÚPassBuilder._disposes  s   € Ü�‰×)Ñ)¨$Õ/r   )rý  rÿ  rþ  )r7   r8   r9   r:   rc   r  r  r  r  rD  r<   r³  r´  s   @r   r   r   ?  s'   ø† õ)ò
ò
òIò÷&0ð 0r   r   Nrï  )F)¯Úctypesr   r   r   r   r   r   r	   Úcollectionsr
   Úenumr   Úllvmlite.bindingr   r   r   r   r    Ú_prunestatsr!   r>   rG   rK   rQ   rS   r_   Ú	ObjectRefr   r   r   ró  r   rB   rC   ÚargtypesrI   rN   ÚLLVMModulePassManagerRefrI  ÚrestypeÚLLVMModuleRefÚLLVMPassBuilderRefrf   rP  rm   rs   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.  r3  r8  rT  rY  r]  rb  rg  rk  ro  rt  rx  r|  r€  r„  r‰  r�  r‘  r•  r™  rž  r¢  r¦  rB  r¬  ÚLLVMFunctionPassManagerRefr·  ÚLLVMValueRefrg   rn   rt   rz   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>  r4  r9  rC  rº  ÚLLVMPipelineTuningOptionsRefrÀ  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   