
    ,i                         d dl mZmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ  ed       G d d	e             Z G d
 de      Z G d de      Zy)    )ABCMetaabstractmethod)	dataclass)Enum)DictUnion)
ModuleTypeT)frozenc                   6    e Zd ZU eed<   eeef   ed<   eed<   y)	GPUTargetbackendarch	warp_sizeN)__name__
__module____qualname__str__annotations__r   int     b/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/triton/backends/compiler.pyr   r      s     L
S/Nr   r   c                       e Zd ZdZdZdZy)Languagez1The input language being compiled by the backend.r      N)r   r   r   __doc__TRITONGLUONr   r   r   r   r      s    ;FEr   r   c                       e Zd ZdZdeddfdZeedefd              Zede	fd       Z
ededefd	       Zed
ededdfd       Zed        Zedee	ef   fd       Zed        Zed        Zed        Zy)BaseBackendTtargetreturnNc                 8    || _         | j                  |      sJ y N)r!   supports_target)selfr!   s     r   __init__zBaseBackend.__init__   s    ##F+++r   c                     t         r$   NotImplementedError)r!   s    r   r%   zBaseBackend.supports_target   
     "!r   c                     t         )z,Returns a unique identifier for this backendr)   r&   s    r   hashzBaseBackend.hash#   r+   r   optionsc                     t         )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&   r/   s     r   parse_optionszBaseBackend.parse_options(   s
     "!r   stagesc                     t         )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&   r2   r/   s      r   
add_stageszBaseBackend.add_stages0   s
     "!r   c                     t         )zK
        Load additional MLIR dialects into the provided `context`
        r)   )r&   contexts     r   load_dialectszBaseBackend.load_dialects<   
    
 "!r   c                     t         )z\
        Return a map of interface modules to their device-specific implementations
        r)   r-   s    r   get_module_mapzBaseBackend.get_module_mapC   r8   r   c                 F    t        | t              sJ g }d| v r|ddggz  }|S )NDztt.divisibility   )
isinstancer   )descrets     r   
parse_attrzBaseBackend.parse_attrJ   s6    $$$$$;&+,,C
r   c                 :    | dz  dk(  r|j                  dd      ryyNr=   r   alignFr<    )getargkwargss     r   get_int_specializationz"BaseBackend.get_int_specializationR   s     8q=VZZ7r   c                 V    | j                         dz  dk(  r|j                  dd      ryyrC   )data_ptrrF   rG   s     r   get_tensor_specializationz%BaseBackend.get_tensor_specializationX   s(    <<>B!#

7E(Br   )r   r   r   %supports_native_tensor_specializationr   r'   staticmethodr   r%   r   r.   dictobjectr1   r4   r7   r   r	   r:   rA   rJ   rM   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	   rQ   r   r   r    r   r   r   <module>rX      sN    ' !    $  t EG Er   