U
    +‰d;  ã                   @   sl   d dl mZ d dlmZ dd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
eejj_dd„ Zeƒ ZdS )é    )Úc_uint)Úffic                   C   s   t j ¡  dS )z#
    Initialize the LLVM core.
    N)r   ÚlibZLLVMPY_InitializeCore© r   r   ú=/tmp/pip-unpacked-wheel-stw2luzp/llvmlite/binding/initfini.pyÚ
initialize   s    r   c                   C   s"   t j ¡  t j ¡  t j ¡  dS )zn
    Initialize all targets. Necessary before targets can be looked up
    via the :class:`Target` class.
    N)r   r   ZLLVMPY_InitializeAllTargetInfosZLLVMPY_InitializeAllTargetsZLLVMPY_InitializeAllTargetMCsr   r   r   r   Úinitialize_all_targets   s    

r   c                   C   s   t j ¡  dS )zÅ
    Initialize all code generators. Necessary before generating
    any assembly or machine code via the :meth:`TargetMachine.emit_object`
    and :meth:`TargetMachine.emit_assembly` methods.
    N)r   r   ZLLVMPY_InitializeAllAsmPrintersr   r   r   r   Úinitialize_all_asmprinters   s    r	   c                   C   s   t j ¡  dS )z_
    Initialize the native (host) target.  Necessary before doing any
    code generation.
    N)r   r   ZLLVMPY_InitializeNativeTargetr   r   r   r   Úinitialize_native_target    s    r
   c                   C   s   t j ¡  dS )z,
    Initialize the native ASM printer.
    N)r   r   Z!LLVMPY_InitializeNativeAsmPrinterr   r   r   r   Úinitialize_native_asmprinter(   s    r   c                   C   s   t j ¡  dS )z+
    Initialize the native ASM parser.
    N)r   r   Z LLVMPY_InitializeNativeAsmParserr   r   r   r   Úinitialize_native_asmparser/   s    r   c                   C   s   t j ¡  d S )N)r   r   ZLLVMPY_Shutdownr   r   r   r   Úshutdown6   s    r   c                  C   s6   g } t j ¡ }|r*|  |d@ ¡ |dL }qtt| ƒƒS )Néÿ   é   )r   r   ÚLLVMPY_GetVersionInfoÚappendÚtupleÚreversed)ÚvÚxr   r   r   Ú_version_info@   s    

r   N)Úctypesr   Zllvmlite.bindingr   r   r   r	   r
   r   r   r   r   r   Úrestyper   Zllvm_version_infor   r   r   r   Ú<module>   s   
	
	