ó
    �~i  ã                   ó˜   • S SK JrJr  S SKJr  S SKJr  S SKJrJ	r	  S SK
Jr  \" SS9 " S S	\5      5       r " S
 S\5      r " S S\S9rg)é    )ÚABCMetaÚabstractmethod)Ú	dataclass)ÚEnum)ÚDictÚUnion)Ú
ModuleTypeT)Úfrozenc                   ó>   • \ rS rSr% \\S'   \\\4   \S'   \\S'   Srg)Ú	GPUTargeté   ÚbackendÚarchÚ	warp_size© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚstrÚ__annotations__r   ÚintÚ__static_attributes__r   ó    ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/triton/backends/compiler.pyr   r      s   ‡ ð ƒLà
��S�‰/ÓØ†Nr   r   c                   ó    • \ rS rSrSrSrSrSrg)ÚLanguageé   z1The input language being compiled by the backend.r   é   r   N)r   r   r   r   Ú__doc__ÚTRITONÚGLUONr   r   r   r   r   r      s   † Ù;Ø€FØƒEr   r   c                   ó  • \ rS rSrSrS\SS4S jr\\S\4S j5       5       r	\S\
4S j5       r\S	\S\4S
 j5       r\S\S	\SS4S j5       r\S 5       r\S\\
\4   4S j5       r\S 5       r\S 5       r\S 5       rSrg)ÚBaseBackendé   TÚtargetÚreturnNc                 ó@   • Xl         U R                  U5      (       d   eg ©N)r&   Úsupports_target)Úselfr&   s     r   Ú__init__ÚBaseBackend.__init__   s   € ØŒØ×#Ñ# F×+Ñ+Ð+Ñ+r   c                 ó   • [         er)   ©ÚNotImplementedError©r&   s    r   r*   ÚBaseBackend.supports_target   ó
   € ô "Ð!r   c                 ó   • [         e)z,Returns a unique identifier for this backendr/   ©r+   s    r   ÚhashÚBaseBackend.hash#   r3   r   Úoptionsc                 ó   • [         e)z¯
Converts an `options` dictionary into an arbitrary object and returns it.
This function may contain target-specific heuristics and check the legality of the provided options
r/   )r+   r8   s     r   Úparse_optionsÚBaseBackend.parse_options(   s
   € ô "Ð!r   Ústagesc                 ó   • [         e)aŸ  
Populates `stages` dictionary with entries of the form:
ir_name [str] => Function[(src: str, metadata: dict) -> str|bytes]
The value of each entry may populate a `metadata` dictionary.
Stages will be run sequentially (in inseriton order) and can communicate using `metadata`.
All stages are expected to return a `str` object, except for the last stage which returns
a `bytes` object for execution by the launcher.
r/   )r+   r<   r8   s      r   Ú
add_stagesÚBaseBackend.add_stages0   s
   € ô "Ð!r   c                 ó   • [         e)z;
Load additional MLIR dialects into the provided `context`
r/   )r+   Úcontexts     r   Úload_dialectsÚBaseBackend.load_dialects<   ó
   € ô
 "Ð!r   c                 ó   • [         e)zL
Return a map of interface modules to their device-specific implementations
r/   r5   s    r   Úget_module_mapÚBaseBackend.get_module_mapC   rD   r   c                 óT   • [        U [        5      (       d   e/ nSU ;   a  USS//-  nU$ )NÚDztt.divisibilityé   )Ú
isinstancer   )ÚdescÚrets     r   Ú
parse_attrÚBaseBackend.parse_attrJ   s9   € ä˜$¤×$Ñ$Ð$Ð$ØˆØ�$‹;ØÐ&¨Ð+Ð,Ñ,ˆCØˆ
r   c                 óF   • U S-  S:X  a  UR                  SS5      (       a  gg©NrJ   r   ÚalignFrI   Ú )Úget©ÚargÚkwargss     r   Úget_int_specializationÚ"BaseBackend.get_int_specializationR   s#   € à�‰8�q‹=˜VŸZ™Z¨°×7Ñ7ØØr   c                 ób   • U R                  5       S-  S:X  a  UR                  SS5      (       a  ggrQ   )Údata_ptrrT   rU   s     r   Úget_tensor_specializationÚ%BaseBackend.get_tensor_specializationX   s+   € à�<‰<‹>˜BÑ !Ó#¨¯
©
°7¸E×(BÑ(BØØr   r1   )r   r   r   r   Ú%supports_native_tensor_specializationr   r,   Ústaticmethodr   r*   r   r6   ÚdictÚobjectr:   r>   rB   r   r	   rF   rN   rX   r\   r   r   r   r   r$   r$      s  † Ø,0Ð)ð,˜yð ,¨Tô ,ð Øð" 	ó "ó ó ð"ð ð"�có "ó ð"ð ð" Tð "¨fó "ó ð"ð ð	" ð 	"°ð 	"¸4ó 	"ó ð	"ð ñ"ó ð"ð ð"  S¨* _Ñ 5ó "ó ð"ð ñó ðð ñó ðð
 ñó ór   r$   )Ú	metaclassN)Úabcr   r   Údataclassesr   Úenumr   Útypingr   r   Útypesr	   ra   r   r   r$   r   r   r   Ú<module>rh      sN   ðß 'Ý !Ý ß Ý ñ �$Ñô�ó ó ðôˆtô ôE˜Gó Er   