ó
    ƒñ:i+  ã                   ó
  • S SK r S SKJrJrJrJrJrJrJrJ	r	J
r
JrJrJr  S SKJrJrJr  \R$                  R&                    SS jrS r " S S\R,                  5      r " S S	\R,                  5      r\R2                  \R4                  \\" \5      /\R$                  R6                  l        \R:                  \R$                  R6                  l        \R:                  \R2                  \" \5      /\R$                  R>                  l        \\R$                  R>                  l        \R:                  \R2                  /\R$                  R@                  l        \R:                  \RB                  \/\R$                  RD                  l        \R:                  /\R$                  RF                  l        \R:                  /\R$                  RH                  l        \RJ                  \R$                  RH                  l        / \R$                  RL                  l        \\R$                  RL                  l        \R:                  \/\R$                  RN                  l        \\R$                  RN                  l        \R:                  \/\R$                  RP                  l        \\R$                  RP                  l        \R:                  \RR                  /\R$                  RT                  l         " S
 S\5      r+\	" S\\" \+5      5      r,\	" S\\" \+5      5      r-\," \R\                  5      r/\-" \R`                  5      r1\,\-\/\R$                  Rd                  l        \Rf                  \R$                  Rd                  l        \Rf                  /\R$                  Rh                  l        \R:                  \Rf                  /\R$                  Rj                  l        \\R$                  Rl                  l        \\/\R$                  Rl                  l        g)é    N)ÚPOINTERÚc_char_pÚc_boolÚc_void_pÚc_intÚc_uint64Úc_size_tÚ	CFUNCTYPEÚ	string_atÚcastÚ	py_objectÚ	Structure)ÚffiÚtargetsÚobject_filec                 ó0  • Uc  [         R                  " 5       S;   n[        R                  " 5        n[        R                  R                  XX#5      nU(       d  [        [        U5      5      e SSS5        SUl        [        WU S9$ ! , (       d  f       N= f)a  
Create a MCJIT ExecutionEngine from the given *module* and
*target_machine*.

*lmm* controls whether the llvmlite memory manager is used. If not supplied,
the default choice for the platform will be used (``True`` on 64-bit ARM
systems, ``False`` otherwise).
N)Úarm64Úaarch64T)Úmodule)
ÚplatformÚmachiner   ÚOutputStringÚlibÚLLVMPY_CreateMCJITCompilerÚRuntimeErrorÚstrÚ_ownedÚExecutionEngine)r   Útarget_machineÚuse_lmmÚouterrÚengines        Úc/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/llvmlite/binding/executionengine.pyÚcreate_mcjit_compilerr$      s€   € ð �Ü×"Ò"Ó$Ð(<Ñ<ˆä	×	Ò	Ô	˜vÜ—‘×3Ñ3Ø Gó5ˆæÜœs 6›{Ó+Ð+ð ÷ 
ð !€NÔÜ˜6¨&Ñ1Ð1÷ 
Õ	ús   ±<BÂ
Bc                  ód   • [         R                  R                  5       n U S:w  a  [        U S5      eg)zd
Check the system allows execution of in-memory JITted functions.
An exception is raised otherwise.
r   z‚cannot allocate executable memory. This may be due to security restrictions on your system, such as SELinux or similar mechanisms.N)r   r   Ú"LLVMPY_TryAllocateExecutableMemoryÚOSError)Úerrnos    r#   Úcheck_jit_executionr)   #   s7   € ô
 �G‰G×6Ñ6Ó8€EØ�ƒzÜ�eðGóð 	ð ó    c                   ó�   • \ 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 5       rS rS rS rSS jrS rS rS rSrg)r   é1   z¡An ExecutionEngine owns all Modules associated with it.
Deleting the engine will remove all associated modules.
It is an error to delete the associated modules.
Nc                 ó€   • [        U/5      U l        SU l        SUl        [        R
                  R                  X5        g)z+
Module ownership is transferred to the EE
NT)ÚsetÚ_modulesÚ_tdr   r   Ú	ObjectRefÚ__init__)ÚselfÚptrr   s      r#   r2   ÚExecutionEngine.__init__8   s1   € ô ˜V˜H›ˆŒØˆŒØˆŒÜ�‰×Ñ˜tÕ)r*   c                 ó^   • [         R                  R                  XR                  S5      5      $ )zƒ
Return the address of the function named *name* as an integer.

It's a fatal error in LLVM if the symbol of *name* doesn't exist.
Úascii)r   r   ÚLLVMPY_GetFunctionAddressÚencode©r3   Únames     r#   Úget_function_addressÚ$ExecutionEngine.get_function_addressA   s"   € ô �w‰w×0Ñ0°·{±{À7Ó7KÓLÐLr*   c                 ó^   • [         R                  R                  XR                  S5      5      $ )z‡
Return the address of the global value named *name* as an integer.

It's a fatal error in LLVM if the symbol of *name* doesn't exist.
r7   )r   r   ÚLLVMPY_GetGlobalValueAddressr9   r:   s     r#   Úget_global_value_addressÚ(ExecutionEngine.get_global_value_addressI   s"   € ô �w‰w×3Ñ3°D¿+¹+ÀgÓ:NÓOÐOr*   c                 óD   • [         R                  R                  XU5        g ©N)r   r   ÚLLVMPY_AddGlobalMapping)r3   ÚgvÚaddrs      r#   Úadd_global_mappingÚ"ExecutionEngine.add_global_mappingQ   s   € Ü�‰×'Ñ'¨°$Õ7r*   c                 óº   • XR                   ;   a  [        S5      e[        R                  R	                  X5        SUl        U R                   R                  U5        g)z<
Ownership of module is transferred to the execution engine
z#module already added to this engineTN)r/   ÚKeyErrorr   r   ÚLLVMPY_AddModuler   Úadd)r3   r   s     r#   Ú
add_moduleÚExecutionEngine.add_moduleT   sE   € ð —]‘]Ó"ÜÐ@ÓAÐAÜ�‰× Ñ  Ô.ØˆŒØ�‰×Ñ˜&Õ!r*   c                 óB   • [         R                  R                  U 5        g)ze
Make sure all modules owned by the execution engine are fully processed
and "usable" for execution.
N)r   r   ÚLLVMPY_FinalizeObject©r3   s    r#   Úfinalize_objectÚExecutionEngine.finalize_object^   s   € ô
 	�‰×%Ñ% dÕ+r*   c                 óB   • [         R                  R                  U 5        g)zG
Run static constructors which initialize module-level static objects.
N)r   r   ÚLLVMPY_RunStaticConstructorsrQ   s    r#   Úrun_static_constructorsÚ'ExecutionEngine.run_static_constructorse   s   € ô 	�‰×,Ñ,¨TÕ2r*   c                 óB   • [         R                  R                  U 5        g)zP
Run static destructors which perform module-level cleanup of static
resources.
N)r   r   ÚLLVMPY_RunStaticDestructorsrQ   s    r#   Úrun_static_destructorsÚ&ExecutionEngine.run_static_destructorsk   s   € ô
 	�‰×+Ñ+¨DÕ1r*   c                 ó  • [         R                  " 5        n[         R                  R                  XU5      (       a  [	        [        U5      5      e SSS5        U R                  R                  U5        SUl        g! , (       d  f       N1= f)z!
Ownership of module is returned
NF)	r   r   r   ÚLLVMPY_RemoveModuler   r   r/   Úremover   )r3   r   r!   s      r#   Úremove_moduleÚExecutionEngine.remove_moduler   sg   € ô ×ÒÔ 6Ü�w‰w×*Ñ*¨4¸×@Ñ@Ü"¤3 v£;Ó/Ð/ð A÷  ð 	�‰×Ñ˜VÔ$Øˆ�÷	  Õús   –:A<Á<
B
c                 óâ   • U R                   b  U R                   $ [        R                  R                  U 5      n[        R
                  " U5      U l         SU R                   l        U R                   $ )z+
The TargetData for this execution engine.
T)r0   r   r   Ú#LLVMPY_GetExecutionEngineTargetDatar   Ú
TargetDatar   )r3   r4   s     r#   Útarget_dataÚExecutionEngine.target_data|   sQ   € ð
 �8‰8ÑØ—8‘8ˆOÜ�g‰g×9Ñ9¸$Ó?ˆÜ×%Ò% cÓ*ˆŒØˆ�‰ŒØ�x‰xˆr*   c                 óD   • [         R                  R                  U 5      nU$ )z€
Enable JIT events for profiling of generated code.
Return value indicates whether connection to profiling tool
was successful.
)r   r   ÚLLVMPY_EnableJITEvents)r3   Úrets     r#   Úenable_jit_eventsÚ!ExecutionEngine.enable_jit_eventsˆ   s   € ô �g‰g×,Ñ,¨TÓ2ˆØˆ
r*   c                 ó¶   • [        U[        5      R                  nU R                   H/  n[        UR                  [        5      R                  U:X  d  M-  Us  $    g)z8
Find the ModuleRef corresponding to the given pointer.
N)r   r   Úvaluer/   Ú_ptr)r3   Ú
module_ptrr4   r   s       r#   Ú_find_module_ptrÚ ExecutionEngine._find_module_ptr‘   sG   € ô �:œxÓ(×.Ñ.ˆØ—m”mˆFÜ�F—K‘K¤Ó*×0Ñ0°CÕ7Ø’ñ $ð r*   c                 óª   • [        U[        5      (       a  [        R                  R	                  U5      n[
        R                  R                  X5        g)zx
Add object file to the jit. object_file can be instance of
:class:ObjectFile or a string representing file system path
N)Ú
isinstancer   r   ÚObjectFileRefÚ	from_pathr   r   ÚLLVMPY_MCJITAddObjectFile)r3   Úobj_files     r#   Úadd_object_fileÚExecutionEngine.add_object_file›   s9   € ô
 �h¤×$Ñ$Ü"×0Ñ0×:Ñ:¸8ÓDˆHä�‰×)Ñ)¨$Õ9r*   c                 óŽ   • Xl         X l        [        U 5      U l        [        R
                  R                  X R                  5        g)zf
Set the object cache "notifyObjectCompiled" and "getBuffer"
callbacks to the given Python functions.
N)Ú_object_cache_notifyÚ_object_cache_getbufferÚ_ObjectCacheRefÚ_object_cacher   r   ÚLLVMPY_SetObjectCache)r3   Únotify_funcÚgetbuffer_funcs      r#   Úset_object_cacheÚ ExecutionEngine.set_object_cache¥   s7   € ð
 %0Ô!Ø'5Ô$ä,¨TÓ2ˆÔô 	�‰×%Ñ% d×,>Ñ,>Õ?r*   c                 ó"  • U R                   c  gUR                  R                  nUR                  R                  nUR                  R                  n[        X45      nU R                  U5      nUc  [        SU< 35      eU R                  Xe5        g)z
Low-level notify hook.
Nú3object compilation notification for unknown module )rz   Úcontentsrn   Úbuf_ptrÚbuf_lenr   ro   r   )r3   Údatarn   r†   r‡   Úbufr   s          r#   Ú_raw_object_cache_notifyÚ(ExecutionEngine._raw_object_cache_notify²   s‡   € ð ×$Ñ$Ñ,ØØ—]‘]×-Ñ-ˆ
Ø—-‘-×'Ñ'ˆØ—-‘-×'Ñ'ˆÜ˜Ó)ˆØ×&Ñ& zÓ2ˆØ‰>õ Ú:Dð Gó Hð Hà×!Ñ! &Õ.r*   c                 óD  • U R                   c  gUR                  R                  nU R                  U5      nUc  [	        SU< 35      eU R                  U5      nUbE  [
        R                  R                  U[        U5      5      US   l	        [        U5      US   l
        gg)z
Low-level getbuffer hook.
Nr„   r   )r{   r…   rn   ro   r   r   r   ÚLLVMPY_CreateByteStringÚlenr†   r‡   )r3   rˆ   rn   r   r‰   s        r#   Ú_raw_object_cache_getbufferÚ+ExecutionEngine._raw_object_cache_getbufferÄ   sœ   € ð ×'Ñ'Ñ/ØØ—]‘]×-Ñ-ˆ
Ø×&Ñ& zÓ2ˆØ‰>õ Ú:Dð Gó Hð Hð ×*Ñ*¨6Ó2ˆØ‰?ä!Ÿg™g×=Ñ=¸cÄ3ÀsÃ8ÓLˆD�‰GŒOÜ! #›hˆD�‰G�Oð r*   c                 ó  • U R                    H  nUR                  5         M     U R                  b  U R                  R                  5         U R                   R                  5         S U l        U R
                  R                  U 5        g rC   )r/   Údetachr0   Úclearr}   Ú_capiÚLLVMPY_DisposeExecutionEngine)r3   Úmods     r#   Ú_disposeÚExecutionEngine._disposeØ   s[   € à—=”=ˆCØ�J‰JŽLñ !à�8‰8ÑØ�H‰H�O‰OÔØ�‰×ÑÔØ!ˆÔØ�
‰
×0Ñ0°Õ6r*   )r/   r}   r{   rz   r0   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r}   r2   r<   r@   rG   rM   rR   rV   rZ   r_   Úpropertyrd   ri   ro   rw   r�   rŠ   r�   r—   Ú__static_attributes__© r*   r#   r   r   1   su   † ñð €Mò*òMòPò8ò"ò,ò3ò2òð ñ	ó ð	òòò:ô@ò/ò$'õ(7r*   r   c                   ó$   • \ rS rSrSrS rS rSrg)r|   éã   zF
Internal: an ObjectCache instance for use within an ExecutionEngine.
c                 ó”   • [         R                  R                  [        [        U5      n[         R
                  R                  X5        g rC   )r   r   ÚLLVMPY_CreateObjectCacheÚ_notify_c_hookÚ_getbuffer_c_hookr1   r2   )r3   Úobjr4   s      r#   r2   Ú_ObjectCacheRef.__init__è   s2   € Ü�g‰g×.Ñ.¬~Ü/@Ø/2ó4ˆô 	�‰×Ñ˜tÕ)r*   c                 ó:   • U R                   R                  U 5        g rC   )r”   ÚLLVMPY_DisposeObjectCacherQ   s    r#   r—   Ú_ObjectCacheRef._disposeî   s   € Ø�
‰
×,Ñ,¨TÕ2r*   r    N)r™   rš   r›   rœ   r�   r2   r—   rŸ   r    r*   r#   r|   r|   ã   s   † ñò*õ3r*   r|   c                   ó>   • \ rS rSrS\R
                  4S\4S\4/rSr	g)Ú_ObjectCacheDatai*  rn   r†   r‡   r    N)
r™   rš   r›   rœ   r   ÚLLVMModuleRefr   r	   Ú_fields_rŸ   r    r*   r#   r­   r­   *  s'   † à	�s×(Ñ(Ð)Ø	�HÐØ	�HÐðƒHr*   r­   rC   )7r   Úctypesr   r   r   r   r   r   r	   r
   r   r   r   r   Úllvmlite.bindingr   r   r   r   ÚLLVMPY_LinkInMCJITr$   r)   r1   r   r|   r®   ÚLLVMTargetMachineRefr   ÚargtypesÚLLVMExecutionEngineRefÚrestyper]   rK   ÚLLVMValueRefrD   rP   rb   ÚLLVMTargetDataRefr&   r8   r?   ÚLLVMObjectFileRefru   r­   Ú_ObjectCacheNotifyFuncÚ_ObjectCacheGetBufferFuncrŠ   r¥   r�   r¦   r¤   ÚLLVMObjectCacheRefrª   r~   r�   r    r*   r#   Ú<module>r½      sa  ðÛ ÷*÷ *÷ *ó *÷ 7Ñ 6ð ‡�× Ò ô2ò,ôo7�c—m‘mô o7ôd3�c—m‘mô 3ð( ×ÑØ×ÑØ
ÙˆHÓð	/€‡�× "Ñ "Ô +ð .1×-GÑ-G€‡�× "Ñ "Ô *ð ×ÑØ×ÑÙˆHÓð(€‡�× Ñ Ô $ð
 '-€‡�× Ñ Ô #ð ×ÑØ×Ñð%€‡�× Ñ Ô !ð
 -0×,FÑ,FØ,/×,<Ñ,<Ø,4ð,6€‡�× Ñ Ô (ð +.×*DÑ*DÐ)E€‡�× Ñ Ô &ð ×Ñð8€‡�× +Ñ +Ô 4ð 7:×6KÑ6K€‡�× +Ñ +Ô 3à68€‡�× *Ñ *Ô 3Ø5:€‡�× *Ñ *Ô 2ð ×ÑØð.€‡�× !Ñ !Ô *ð -5€‡�× !Ñ !Ô )ð ×ÑØð1€‡�× $Ñ $Ô -ð 08€‡�× $Ñ $Ô ,ð ×ÑØ×Ñð.€‡�× !Ñ !Ô *ô�yô ñ # 4¨Ù#*Ð+;Ó#<ó>Ð á% d¨IÙ&-Ð.>Ó&?óAÐ ñ (Ø×,Ñ,ó.€á-Ø×/Ñ/ó1Ð ð .DØ-FØ-6ð-8€‡�×  Ñ  Ô )ð ,/×+AÑ+A€‡�×  Ñ  Ô (à.1×.DÑ.DÐ-E€‡�× !Ñ !Ô *à*-×*DÑ*DØ*-×*@Ñ*@ð*B€‡�× Ñ Ô &ð +3€‡�× Ñ Ô 'Ø,4°hÐ+?€‡�× Ñ Õ (r*   