
    rh                         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     k/var/www/html/ai-insurance-compliance-backend/venv/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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y)BaseBackend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_stages/   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_mapB   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_attrI   s6    $$$$$;&+,,C
r   c                     |dk(  r| dz  dk(  r|j                  dd      ry|dk(  r)| j                         dz  dk(  r|j                  dd      ryy)	zX
        Return a string unique to each possible specialization of the argument
        r   r=   r   alignFr<   tensor )getdata_ptr)argtykwargss      r   get_arg_specializationz"BaseBackend.get_arg_specializationQ   sQ    
 ;38q=VZZ-G>cllnr1Q66::gu;Ur   )r   r   r   r   r'   staticmethodr   r%   r   r.   dictobjectr1   r4   r7   r   r	   r:   rA   rK   r   r   r   r    r       s    ,y ,T , "	 "  " "c " " "T "f " " 	" 	" 	"4 	" 	" " " "S*_ 5 " "    r   r    )	metaclassN)abcr   r   dataclassesr   enumr   typingr   r   typesr	   rN   r   r   r    r   r   r   <module>rU      sN    ' !    $  t CG Cr   