§
    �ÛgS  ã                   óÊ  — d dl mZmZ d dlmZ d dlmZ d„ Z G d„ dej        ¦  «        Zej	        ej
        j        _        ej	        gej
        j        _        ej	        ej        gej
        j        _        ej	        ej        gej
        j        _        ej
        j        ej
        j        ej
        j        fD ]Zej	        ege_        Œej
        j        ej
        j        fD ]Zej	        ge_        ee_        Œej
        j        ej
        j        ej
        j        fD ]Zej	        ege_        Œej
        j        ej
        j        ej
        j        fD ]Zej	        ge_        ee_        ŒdS )é    )Úc_uintÚc_bool)Úffi)Úpassmanagersc                  ó   — t          ¦   «         S ©N)ÚPassManagerBuilder© ó    úQ/granary/edev/quantum/lib/python3.11/site-packages/llvmlite/binding/transforms.pyÚcreate_pass_manager_builderr      s   € ÝÑÔÐr   c                   ó|  — e Zd ZdZd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d„¦   «         Z
ed„ ¦   «         Zej        dd„¦   «         Zed„ ¦   «         Zej        dd„¦   «         Zd„ Zd„ Zd„ Zd„ ZdS )r	   r
   Nc                 ó†   — |€t           j                             ¦   «         }t           j                             | |¦  «         d S r   )r   ÚlibÚLLVMPY_PassManagerBuilderCreateÚ	ObjectRefÚ__init__)ÚselfÚptrs     r   r   zPassManagerBuilder.__init__   s8   € Øˆ;Ý”'×9Ò9Ñ;Ô;ˆCÝŒ×Ò˜t SÑ)Ô)Ð)Ð)Ð)r   c                 ó@   — t           j                             | ¦  «        S )zO
        The general optimization level as an integer between 0 and 3.
        )r   r   Ú$LLVMPY_PassManagerBuilderGetOptLevel©r   s    r   Ú	opt_levelzPassManagerBuilder.opt_level   s   € õ
 Œw×;Ò;¸DÑAÔAÐAr   c                 óF   — t           j                             | |¦  «         d S r   )r   r   Ú$LLVMPY_PassManagerBuilderSetOptLevel)r   Úlevels     r   r   zPassManagerBuilder.opt_level   s    € åŒ×4Ò4°T¸5ÑAÔAÐAÐAÐAr   c                 ó@   — t           j                             | ¦  «        S )zY
        Whether and how much to optimize for size.  An integer between 0 and 2.
        )r   r   Ú%LLVMPY_PassManagerBuilderGetSizeLevelr   s    r   Ú
size_levelzPassManagerBuilder.size_level   s   € õ
 Œw×<Ò<¸TÑBÔBÐBr   c                 óF   — t           j                             | |¦  «         d S r   )r   r   Ú%LLVMPY_PassManagerBuilderSetSizeLevel)r   Úsizes     r   r   zPassManagerBuilder.size_level$   s    € åŒ×5Ò5°d¸DÑAÔAÐAÐAÐAr   c                 ó    — t          d¦  «        ‚)z©
        The integer threshold for inlining a function into another.  The higher,
        the more likely inlining a function is.  This attribute is write-only.
        z inlining_threshold is write-only)ÚNotImplementedErrorr   s    r   Úinlining_thresholdz%PassManagerBuilder.inlining_threshold(   s   € õ "Ð"DÑEÔEÐEr   c                 óF   — t           j                             | |¦  «         d S r   )r   r   Ú0LLVMPY_PassManagerBuilderUseInlinerWithThreshold)r   Ú	thresholds     r   r%   z%PassManagerBuilder.inlining_threshold0   s+   € åŒ×@Ò@Ø�)ñ	ô 	ð 	ð 	ð 	r   c                 ó@   — t           j                             | ¦  «        S )z2
        If true, disable loop unrolling.
        )r   r   Ú.LLVMPY_PassManagerBuilderGetDisableUnrollLoopsr   s    r   Údisable_unroll_loopsz'PassManagerBuilder.disable_unroll_loops5   s   € õ
 Œw×EÒEÀdÑKÔKÐKr   Tc                 óF   — t           j                             | |¦  «         d S r   )r   r   Ú.LLVMPY_PassManagerBuilderSetDisableUnrollLoops)r   Údisables     r   r+   z'PassManagerBuilder.disable_unroll_loops<   s    € åŒ×>Ò>¸tÀWÑMÔMÐMÐMÐMr   c                 ó@   — t           j                             | ¦  «        S )z3
        If true, allow vectorizing loops.
        )r   r   Ú)LLVMPY_PassManagerBuilderGetLoopVectorizer   s    r   Úloop_vectorizez!PassManagerBuilder.loop_vectorize@   s   € õ
 Œw×@Ò@ÀÑFÔFÐFr   c                 óB   — t           j                             | |¦  «        S r   )r   r   Ú)LLVMPY_PassManagerBuilderSetLoopVectorize©r   Úenables     r   r1   z!PassManagerBuilder.loop_vectorizeG   s   € åŒw×@Ò@ÀÀvÑNÔNÐNr   c                 ó@   — t           j                             | ¦  «        S )z¡
        If true, enable the "SLP vectorizer", which uses a different algorithm
        from the loop vectorizer.  Both may be enabled at the same time.
        )r   r   Ú(LLVMPY_PassManagerBuilderGetSLPVectorizer   s    r   Úslp_vectorizez PassManagerBuilder.slp_vectorizeK   s   € õ Œw×?Ò?ÀÑEÔEÐEr   c                 óB   — t           j                             | |¦  «        S r   )r   r   Ú(LLVMPY_PassManagerBuilderSetSLPVectorizer4   s     r   r8   z PassManagerBuilder.slp_vectorizeS   s   € åŒw×?Ò?ÀÀfÑMÔMÐMr   c                 óF   — t           j                             | |¦  «         d S r   )r   r   Ú2LLVMPY_PassManagerBuilderPopulateModulePassManager©r   Úpms     r   Ú_populate_module_pmz&PassManagerBuilder._populate_module_pmW   s    € ÝŒ×BÒBÀ4ÈÑLÔLÐLÐLÐLr   c                 óF   — t           j                             | |¦  «         d S r   )r   r   Ú4LLVMPY_PassManagerBuilderPopulateFunctionPassManagerr=   s     r   Ú_populate_function_pmz(PassManagerBuilder._populate_function_pmZ   s    € ÝŒ×DÒDÀTÈ2ÑNÔNÐNÐNÐNr   c                 óä   — t          |t          j        ¦  «        r|                      |¦  «         d S t          |t          j        ¦  «        r|                      |¦  «         d S t          |¦  «        ‚r   )Ú
isinstancer   ÚModulePassManagerr?   ÚFunctionPassManagerrB   Ú	TypeErrorr=   s     r   ÚpopulatezPassManagerBuilder.populate]   sl   € Ý�b�,Ô8Ñ9Ô9ð 	 Ø×$Ò$ RÑ(Ô(Ð(Ð(Ð(Ý˜�LÔ<Ñ=Ô=ð 	 Ø×&Ò& rÑ*Ô*Ð*Ð*Ð*å˜B‘-”-Ðr   c                 ó:   — | j                              | ¦  «         d S r   )Ú_capiÚ LLVMPY_PassManagerBuilderDisposer   s    r   Ú_disposezPassManagerBuilder._disposee   s   € ØŒ
×3Ò3°DÑ9Ô9Ð9Ð9Ð9r   r   )T)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   Úpropertyr   Úsetterr   r%   r+   r1   r8   r?   rB   rH   rL   r
   r   r   r	   r	   
   sþ  € € € € € Ø€Ið*ð *ð *ð *ð
 ðBð Bñ „XðBð ÔðBð Bñ ÔðBð ðCð Cñ „XðCð ÔðBð Bñ ÔðBð ðFð Fñ „XðFð Ôðð ñ Ôðð ðLð Lñ „XðLð Ô ðNð Nð Nñ !Ô ðNð ðGð Gñ „XðGð ÔðOð Oð Oñ ÔðOð ðFð Fñ „XðFð ÔðNð Nð Nñ ÔðNðMð Mð MðOð Oð Oð ð  ð  ð:ð :ð :ð :ð :r   r	   N)Úctypesr   r   Úllvmlite.bindingr   r   r   r   r	   ÚLLVMPassManagerBuilderRefr   r   ÚrestyperK   ÚargtypesÚLLVMPassManagerRefr<   rA   r   r!   r'   Ú_funcr   r   r-   r3   r:   r*   r0   r7   r
   r   r   ú<module>rZ      sê  ðØ !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø  Ð  Ð  Ð  Ð  Ð  Ø )Ð )Ð )Ð )Ð )Ð )ð ð  ð  ð\:ð \:ð \:ð \:ð \:˜œñ \:ô \:ð \:ðD 36Ô2O€„Ô 'Ô /ð Ô!ð5€„Ô (Ô 1ð
 Ô!ØÔðG€„Ô :Ô Cð Ô!ØÔðI€„Ô <Ô Eð ŒgÔ:ØŒgÔ;ØŒgÔFðð =ð =€Eð Ô3°VÐ<€E„N€NàŒgÔ:ØŒgÔ;ðð ð €Eð Ô3Ð4€E„NØ€E„M€Mð ŒgÔDØŒgÔ?ØŒgÔ>ðð =ð =€Eð Ô3°VÐ<€E„N€NàŒgÔDØŒgÔ?ØŒgÔ>ðð ð €Eð Ô3Ð4€E„NØ€E„M€Mðð r   