ó
    „ñ:i %  ã                   ó:   • S SK r S SKJrJrJrJr   " S S\5      rg)é    N)ÚcontextÚvaluesÚtypesÚ_utilsc                   óÌ   • \ rS rSrS\R
                  4S jrS rS rS r	S r
SS jrSS
 jrS r\S 5       r\S 5       rS rS rSS jrSS jrS rS rS rS rS rS rSrg	)ÚModuleé   Ú c                 óÊ   • X l         Xl        SU l        [        R                  " 5       U l        SU l        [        R                  " 5       U l	        / U l
        0 U l        0 U l        g )Nr
   zunknown-unknown-unknown)r   ÚnameÚdata_layoutr   Ú	NameScopeÚscopeÚtripleÚcollectionsÚOrderedDictÚglobalsÚmetadataÚnamedmetadataÚ_metadatacache)Úselfr   r   s      ÚU/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/llvmlite/ir/module.pyÚ__init__ÚModule.__init__   sR   € ØŒØŒ	ØˆÔÜ×%Ò%Ó'ˆŒ
Ø/ˆŒÜ"×.Ò.Ó0ˆŒàˆŒàˆÔà ˆÕó    c                 ó,  • / nU H‹  nUc  [         R                  " 5       " S 5      nOX[        U[        5      (       a  [        R
                  " X5      nO,[        U[        [        45      (       a  U R                  U5      nUR                  U5        M�     U$ ©N)
r   ÚMetaDataTypeÚ
isinstanceÚstrr   ÚMetaDataStringÚlistÚtupleÚadd_metadataÚappend)r   ÚoperandsÚ	fixed_opsÚops       r   Ú_fix_metadata_operandsÚModule._fix_metadata_operands   s}   € Øˆ	ÛˆBØ‰zä×'Ò'Ô)¨$Ó/‘Ü˜B¤×$Ñ$ä×*Ò*¨4Ó4‘Ü˜B¤¤u ×.Ñ.à×&Ñ& rÓ*�Ø×Ñ˜RÖ ñ ð Ðr   c                 óœ   • / nU HC  u  p4[        U[        [        45      (       a  U R                  U5      nUR	                  X445        ME     U$ r   )r   r"   r#   r$   r%   )r   r&   r'   r   r(   s        r   Ú_fix_di_operandsÚModule._fix_di_operands$   sL   € Øˆ	Û ‰HˆDÜ˜"œt¤U˜m×,Ñ,à×&Ñ& rÓ*�Ø×Ñ˜d˜ZÖ(ñ	 !ð
 Ðr   c                 ó¦   • / nU HH  u  p4US:X  a+  [        U[        R                  5      (       a  UR                  nUR	                  X445        MJ     U$ )NÚencoding)r   r   ÚDITokenÚvaluer%   )r   r&   Ústr_opsr   r(   s        r   Ústr_ditok_operandsÚModule.str_ditok_operands-   sI   € ØˆÛ ‰HˆDØ�zÓ!¤j°´V·^±^×&DÑ&Dà—X‘X�Ø�N‰N˜D˜:Ö&ñ	 !ð
 ˆr   c                 óT  • [        U[        [        45      (       d  [        SU< 35      eU R	                  U5      n[        U5      nX R
                  ;  aC  [        U R                  5      n[        R                  " X[        U5      S9nX@R
                  U'   U$ U R
                  U   nU$ )zÔ
Add an unnamed metadata to the module with the given *operands*
(a sequence of values) or return a previous equivalent metadata.
A MDValue instance is returned, it can then be associated to
e.g. an instruction.
z1expected a list or tuple of metadata values, got ©r   )r   r"   r#   Ú	TypeErrorr)   r   Úlenr   r   ÚMDValuer    )r   r&   ÚkeyÚnÚmds        r   r$   ÚModule.add_metadata6   s�   € ô ˜(¤T¬5 M×2Ñ2ÝÚ(0ð3ó 4ð 4à×.Ñ.¨xÓ8ˆÜ�H‹oˆØ×)Ñ)Ó)Ü�D—M‘MÓ"ˆAÜ—’ ´S¸³VÑ<ˆBØ')×Ñ Ñ$ð ˆ	ð ×$Ñ$ SÑ)ˆBØˆ	r   c           	      óz  • [        [        U R                  UR                  5       5      5      5      n[        [        U R	                  U5      5      5      nXU4nXPR
                  ;  aD  [        U R                  5      n[        R                  " XX[        U5      S9nXpR
                  U'   U$ U R
                  U   nU$ )a3  
Add debug information metadata to the module with the given
*operands* (a dict of values with string keys) or return
a previous equivalent metadata.  *kind* is a string of the
debug information kind (e.g. "DICompileUnit").

A DIValue instance is returned, it can then be associated to e.g.
an instruction.
r6   )r#   Úsortedr,   Úitemsr3   r   r8   r   r   ÚDIValuer    )r   Úkindr&   Úis_distinctÚ
str_op_keyr:   r;   Údis           r   Úadd_debug_infoÚModule.add_debug_infoJ   s¥   € ô œ × 5Ñ 5°h·n±nÓ6FÓ GÓHÓIˆÜœ6 $×"9Ñ"9¸(Ó"CÓDÓEˆ
Ø Ð-ˆØ×)Ñ)Ó)Ü�D—M‘MÓ"ˆAÜ—’ °4ÌÈAËÑOˆBØ')×Ñ Ñ$ð ˆ	ð ×$Ñ$ SÑ)ˆBØˆ	r   Nc                 ó„  • XR                   ;   a  U R                   U   nO$[        R                  " U 5      =o0R                   U'   Uby  [        U[        R                  5      (       d  U R                  U5      n[        UR                  [        R                  5      (       d  [        SU< 35      eUR                  U5        U$ )ae  
Add a named metadata node to the module, if it doesn't exist,
or return the existing node.
If *element* is given, it will append a new element to
the named metadata node.  If *element* is a sequence of values
(rather than a metadata value), a new unnamed node will first be
created.

Example::
    module.add_named_metadata("llvm.ident", ["llvmlite/1.0"])
z%wrong type for metadata element: got )r   r   ÚNamedMetaDatar   ÚValuer$   Útyper   r   r7   Úadd)r   r   ÚelementÚnmds       r   Úadd_named_metadataÚModule.add_named_metadata_   s¢   € ð ×%Ñ%Ó%Ø×$Ñ$ TÑ*‰Cä-3×-AÒ-AÀ$Ó-GÐGˆC×$Ñ$ TÑ*ØÑÜ˜g¤v§|¡|×4Ñ4Ø×+Ñ+¨GÓ4�Ü˜gŸl™l¬E×,>Ñ,>×?Ñ?ÝÚ#*ð!-ó .ð .à�G‰G�GÔØˆ
r   c                 ó    • U R                   U   $ )z‚
Return the metadata node with the given *name*.  KeyError is raised
if no such node exists (contrast with add_named_metadata()).
)r   ©r   r   s     r   Úget_named_metadataÚModule.get_named_metadatax   s   € ð
 ×!Ñ! $Ñ'Ð'r   c                 ó¤   • U R                   R                  5        Vs/ s H&  n[        U[        R                  5      (       d  M$  UPM(     sn$ s  snf )z9
A list of functions declared or defined in this module.
)r   r   r   ÚFunction)r   Úvs     r   Ú	functionsÚModule.functions   sD   € ð
  Ÿ<™<×.Ñ.Ô0ó 3Ò0�aÜ˜a¤§¡×1÷ Ñ0ñ 3ð 	3ùò 3s   �#AÁAc                 ó6   • U R                   R                  5       $ )z.
An iterable of global values in this module.
)r   r   ©r   s    r   Úglobal_valuesÚModule.global_values‡   s   € ð
 �|‰|×"Ñ"Ó$Ð$r   c                 ó    • U R                   U   $ )z
Get a global value by name.
)r   rR   s     r   Ú
get_globalÚModule.get_globalŽ   s   € ð �|‰|˜DÑ!Ð!r   c                 ól   • UR                   U R                  ;  d   eXR                  UR                   '   g)z
Add a new global value.
N)r   r   )r   Úglobalvalues     r   Ú
add_globalÚModule.add_global”   s.   € ð ×Ñ t§|¡|Ó3Ð3Ð3Ø)4�‰�[×%Ñ%Ò&r   c                 ó8   • U R                   R                  U5      $ )z:
Get a unique global name with the following *name* hint.
)r   ÚdeduplicaterR   s     r   Úget_unique_nameÚModule.get_unique_name›   s   € ð �z‰z×%Ñ% dÓ+Ð+r   c                 óH  ^^• UU4S jnTS;   a  TS   R                   /nOT Vs/ s H  ofR                   PM     nnSR                  T/U-   5      nXpR                  ;   a  U R                  U   $ Ub  GO–[        T5      S:X  aG  TS:X  aA  [        R
                  " [        R                  " 5       [        R                  " S5      /5      nGO@[        T5      S:X  aæ  TS:X  a5  [        R
                  " TS   TS   [        R                  " S5      /5      nGOöTS	:X  a  [        R
                  " TS   TS
-  5      nGOÑTS:X  a1  [        R
                  " TS   [        R                  " S5      /5      nGOšTS:X  a-  [        R
                  " [        R                  " S5      T5      nGOg[        R
                  " TS   T5      nGOK[        T5      S
:X  a©  TS:X  a_  TS   [        R                  " S5      TS   [        R                  " S5      /m[        R
                  " [        R                  " 5       T5      nO×TS;   a6  TS   [        R                  " S5      /m[        R
                  " TS   T5      nO›U" 5         O“[        T5      S:X  a}  TS;   aE  T[        R                  " S5      /-   m[        R
                  " [        R                  " 5       T5      nO9TS:X  a$  TS   /S-  m[        R
                  " TS   T5      nOU" 5         OU" 5         [        R                  " XUS9$ s  snf )Nc                  ó6   >• [        ST [        T5      4-  5      e)Nz"unknown intrinsic %r with %d types)ÚNotImplementedErrorr8   )Ú	intrinsicÚtyss   €€r   Ú_errorÚ(Module.declare_intrinsic.<locals>._error¢   s$   ø€ Ü%Ð&JØ)2´C¸³HÐ(=ñ'>ó ?ð ?r   >   úllvm.fmaú	llvm.ctlzú	llvm.cttzr   Ú.zllvm.assumeé   z	llvm.powié    zllvm.powé   zllvm.convert.from.fp16é   zllvm.convert.to.fp16zllvm.memseté   >   rq   rr   é   )zllvm.memcpyzllvm.memmoverp   r6   )
Úintrinsic_nameÚjoinr   r8   r   ÚFunctionTypeÚVoidTypeÚIntTyper   rV   )r   rl   rm   Úfntyrn   ÚsuffixesÚtr   s    ``     r   Údeclare_intrinsicÚModule.declare_intrinsic¡   s�  ù€ ö	?ð Ð>Ó>Ø˜A™×-Ñ-Ð.‰Há25Ó6²#¨Q×(Ô(±#ˆHÐ6Ø�x‰x˜˜ hÑ.Ó/ˆØ—<‘<ÓØ—<‘< Ñ%Ð%àÑáä�‹X˜‹]˜y¨MÓ9Ü×%Ò%¤e§n¢nÓ&6¼¿ºÀqÓ9IÐ8JÓKŠDÜ�‹X˜‹]Ø˜KÓ'Ü×)Ò)¨#¨a©&°3°q±6¼5¿=º=ÈÓ;LÐ2MÓN’Ø˜jÓ(Ü×)Ò)¨#¨a©&°#¸±'Ó:’ØÐ6Ó6Ü×)Ò)¨#¨a©&´5·=²=ÀÓ3DÐ2EÓF’ØÐ4Ó4Ü×)Ò)¬%¯-ª-¸Ó*;¸SÓA’ä×)Ò)¨#¨a©&°#Ó6’Ü�‹X˜‹]Ø˜MÓ)Ø˜1‘vœuŸ}š}¨QÓ/°°Q±Ü—}’} QÓ'ð)�ä×)Ò)¬%¯.ª.Ó*:¸CÓ@‘ØÐ8Ó8Ø˜1‘vœuŸ}š}¨QÓ/Ð0�Ü×)Ò)¨#¨a©&°#Ó6‘á•Ü�‹X˜‹]ØÐ;Ó;ØœUŸ]š]¨1Ó-Ð.Ñ.�Ü×)Ò)¬%¯.ª.Ó*:¸CÓ@‘Ø˜jÓ(Ø˜1‘v�h ‘l�Ü×)Ò)¨#¨a©&°#Ó6‘á•áŒHÜ�Š˜t°Ñ5Ð5ùòW 7s   ¥Lc                 ó.   • U R                   R                  $ r   )r   Úidentified_typesr[   s    r   Úget_identified_typesÚModule.get_identified_typesÖ   s   € Ø�|‰|×,Ñ,Ð,r   c                 óþ   • U R                  5       R                  5        Vs/ s H  nUR                  5       PM     nnX R                  R                  5        Vs/ s H  n[	        U5      PM     sn-  nU$ s  snf s  snf r   )r†   r   Úget_declarationr   r    )r   ÚitÚlinesrW   s       r   Ú_get_body_linesÚModule._get_body_linesÙ   s}   € ð  ×4Ñ4Ó6×=Ñ=Ô?óAÚ?�Rð ×#Ñ#Ö%Ù?ð 	ð Að 	§,¡,×"5Ñ"5Ô"7Ó8Ò"7˜Q”#�a–&Ñ"7Ñ8Ñ8ˆØˆùò	Aùò 9s   ¡A5ÁA:c           
      ó(  • / nU R                   R                  5        HD  u  p#UR                  SR                  USR	                  S UR
                   5       5      S95        MF     U R                   H  nUR                  [        U5      5        M     U$ )Nz!{name} = !{{ {operands} }}z, c              3   óB   #   • U  H  nUR                  5       v •  M     g 7fr   )Úget_reference)Ú.0Úis     r   Ú	<genexpr>Ú-Module._get_metadata_lines.<locals>.<genexpr>å   s"   é € ð +@Ú4>¨qð ,-¯?©?×+<Ð+<Ú4>ùs   ‚)r   r&   )r   r@   r%   Úformatr{   r&   r   r    )r   ÚmdbufÚkrW   r<   s        r   Ú_get_metadata_linesÚModule._get_metadata_linesá   sŠ   € ØˆØ×&Ñ&×,Ñ,Ö.‰DˆAØ�L‰LÐ6×=Ñ=Ø §¡ñ +@Ø45·J²Jó+@ó "@ð >ð Aö Bñ /ð —-”-ˆBØ�L‰Lœ˜R›Ö!ñ  àˆr   c                 ó@   • SR                  U R                  5       5      $ ©NÚ
)r{   rŒ   r[   s    r   Ú_stringify_bodyÚModule._stringify_bodyë   s   € à�y‰y˜×-Ñ-Ó/Ó0Ð0r   c                 ó@   • SR                  U R                  5       5      $ r›   )r{   r˜   r[   s    r   Ú_stringify_metadataÚModule._stringify_metadataï   s   € à�y‰y˜×1Ñ1Ó3Ó4Ð4r   c                 óÜ   • / nUSU R                   < S3SU R                  < S3SU R                  < S3S/-  nXR                  5       -  nXR	                  5       -  nSR                  U5      $ )Nz; ModuleID = "Ú"ztarget triple = "ztarget datalayout = "r
   rœ   )r   r   r   rŒ   r˜   r{   )r   r‹   s     r   Ú__repr__ÚModule.__repr__ó   sl   € ØˆáØ#'§9¤9Ñ.Ø&*§k¤kÑ3Ø*.×*:Ô*:Ð<Øð	ñ 	ˆð 	×%Ñ%Ó'Ñ'ˆà×)Ñ)Ó+Ñ+ˆà�y‰y˜ÓÐr   )	r   r   r   r   r   r   r   r   r   )Fr   )r
   )© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Úglobal_contextr   r)   r,   r3   r$   rF   rO   rS   ÚpropertyrX   r\   r_   rc   rg   r‚   r†   rŒ   r˜   r�   r    r¤   Ú__static_attributes__r¦   r   r   r   r      s�   † Ø¨×(>Ñ(>ô !òòòòô(ô*ò2(ð ñ3ó ð3ð ñ%ó ð%ò"ò5ô,ô36òj-òòò1ò5õ r   r   )r   Úllvmlite.irr   r   r   r   Úobjectr   r¦   r   r   Ú<module>r°      s   ðÛ ç 6Ó 6ôz ˆVõ z r   