Ë
    S²jq  ã                  óÎ  — U d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZ d dlmZ d d	lmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z! d d
l"m#Z#m$Z$ erd dl%m&Z& ejN                  dejP                  dejR                  dejT                  dejV                  dejX                  dejZ                  dej\                  dej^                  dej`                  dejb                  dejd                  diZ3ejN                  dejP                  dejR                  dejT                  dejV                  dejX                  dejZ                  dej\                  dej^                  dej`                  dejb                  dejd                  diZ4ejN                  dejP                  dejR                  dejT                  dejV                  dejX                  dejZ                  dej\                  dej^                  dej`                  d ejb                  d!ejd                  d"iZ5	 d6	 	 	 	 	 	 	 d7d#„Z6d8d$„Z7	 	 	 	 	 	 d9d%„Z8d:d&„Z9i a:d'e;d(<   	 	 	 	 	 	 	 	 	 	 d;d)„Z<	 	 	 	 	 	 d<d*„Z=	 d=	 	 	 	 	 d>d+„Z>	 	 	 	 	 	 	 	 	 	 	 	 d?d,„Z?	 	 	 	 	 	 	 	 	 	 	 	 d@d-„Z@dAd.„ZA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dBd/„ZB ed0¬1«       G d2„ d3«      «       ZC	 dC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDd4„ZD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dEd5„ZEy)Fé    )ÚannotationsN)Ú	dataclass)ÚTYPE_CHECKING)Úaten_shimified_opsÚinductor_fallback_ops)ÚDispatcherSignature)ÚCppSignatureÚCppSignatureGroup)Úmethod_with_native_function)ÚArgumentÚBackendIndexÚBaseTyÚBaseTypeÚDispatchKeyÚFunctionSchemaÚis_cuda_dispatch_keyÚListTypeÚNativeFunctionÚNativeFunctionsGroupÚOperatorNameÚOptionalTypeÚTypeÚVariant)ÚFileManagerÚmapMaybe)ÚSequenceÚAtenTensorHandleÚint32_tÚint64_tÚdoublezconst char*ÚAtenGeneratorHandleú
at::TensorÚboolzc10::SymIntzc10::Scalarz::std::string_viewzc10::DeviceIndexzc10::Layoutzc10::MemoryFormatzc10::ScalarTypezat::GeneratorÚresolve_tensor_dispatch_flagsÚ zstatic_cast<c10::DeviceIndex>zstatic_cast<c10::Layout>zstatic_cast<c10::MemoryFormat>zstatic_cast<c10::ScalarType>z&*generator_handle_to_generator_pointerc                óH  — t        | t        «      rÝ| j                  t        v r�| j                  t        j
                  k(  r
|rd|› d�g}n/t        | j                     rt        | j                     › d|› d�n|g}t        | j                     g|gt        | j                     g|fS | j                  t        j                  k(  rddg||dz   gdgd|› d|› d	�gfS t        d
t        | «      › �«      ‚t        | t        «      �rCt        | j                  |«      \  }}}}d}g }	g }
|D �]  }||   dz   ||<   |j                  d«      rM|	j                  d|› d�«       |t!        d«      d }|
j                  d|› d||   › d||dz      › d�«       |dz  }Œm|dk(  r8|	j                  d«       |
j                  d||   › d||dz      › d�«       |dz  }Œª|dk(  r3|	j                  d|› d�«       |
j                  d||   › d�«       |dz  }Œâ|	j                  d|› d�«       |
j                  d|› d||   › d�«       |dz  }�Œ |||	|
fS t        | t"        «      �r4t        | j                  |«      \  }}}}t!        |«      dk7  rt%        dt        | «      › �«      ‚d|d   › d�|d<   |j                  d«       |d   }|j                  |dz   «       |d   }g }|dk(  r:| j&                  €t%        d «      ‚|j                  d!| j&                  › d|› d�«       n_|dk(  r|s|j                  d"|› d|› d#�«       n?|d$k(  r|j                  d%|› d&|› d'|› d|› d(�	«       n|j                  d!|› d|› d|› d#�«       |D �cg c]  }d|› d�‘Œ
 }}||||fS t        d)t        | «      › d*�«      ‚c c}w )+Nz!*tensor_handle_to_tensor_pointer(ú)ú(r   Ú_index_zc10::Devicez)c10::Device(static_cast<c10::DeviceType>(z!), static_cast<c10::DeviceIndex>(z	_index_))zTODO: add support for arg type r   Ú*zc10::ArrayRef<z::std::optional<ú>éÿÿÿÿzpointer_to_optional_list<z>(ú, é   é   z::std::optional<c10::Device>zpointer_to_optional_device(r"   zresolve_tensor_dispatch_flags(zpointer_to_optional<z'ListType with unsupported element type zconst r   Ú_len_r#   zbool ListType must have a sizezpointer_to_list<z#resolve_tensor_list_dispatch_flags(z_len_)z::std::optional<at::Tensor>z
c10::List<z>(c10::ArrayRef<z%>(resolve_tensor_list_dispatch_flags(z_len_)))zArgument type z not supported!)Ú
isinstancer   ÚnameÚbase_type_to_c_typer   ÚTensorÚbase_type_to_callsite_exprÚbase_type_to_aten_typeÚDeviceÚNotImplementedErrorÚreprr   Úconvert_arg_type_and_nameÚelemÚ
startswithÚappendÚlenr   ÚAssertionErrorÚsize)Útypr2   Úis_writeÚcallsite_exprÚc_typesÚnamesÚ
aten_typesÚcallsite_exprsÚjÚnew_aten_typesÚnew_callsite_exprsÚ	aten_typeÚ	base_typeÚ_ÚatypeÚts                   úW/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torchgen/gen_aoti_c_shim.pyr:   r:   S   sŒ  € ô
 �#”xÔ Ø�8‰8Ô*Ñ*Ø�x‰xœ6Ÿ=™=Ò(©Xð $EÀTÀFÈ!Ð!LÐ M‘ô 2°#·(±(Ò;ô 2°#·(±(Ñ;Ð<¸A¸d¸VÀ1ÑEàð!�ô % S§X¡XÑ.Ð/Ø�Ü'¨¯©Ñ1Ð2Øð	ð ð �X‰XœŸ™Ò&à˜IÐ&Ø�t˜iÑ'Ð(Ø�à?À¸vÐEfÐgkÐflÐluÐvðð	ð ô &Ð(GÌÈSË	À{Ð&SÓTÐTÜ	�CœÕ	&Ü5NØ�H‰H�dó6
Ñ2ˆ�˜
 Nð ˆØˆØÐØ#ó 	ˆIà  ™ cÑ)ˆG�A‰JØ×#Ñ#Ð$4Ô5à×%Ñ%Ð(8¸¸À1Ð&EÔFØ%¤cÐ*:Ó&;¸bÐA�	Ø"×)Ñ)Ø/°	¨{¸"¸UÀ1¹X¸JÀbÈÈqÐSTÉuÉÈÐVWÐXôð �Q‘‘Ø˜mÒ+à×%Ñ%Ð&DÔEØ"×)Ñ)Ø1°%¸±(°¸2¸eÀAÈÁE¹l¸^È1ÐMôð �Q‘‘Ø˜lÒ*Ø×%Ñ%Ð(8¸¸À1Ð&EÔFØ"×)Ñ)Ð,JÈ5ÐQRÉ8È*ÐTUÐ*VÔWØ�Q‘‘à×%Ñ%Ð(8¸¸À1Ð&EÔFØ"×)Ñ)Ø*¨9¨+°R¸¸a¹°zÀÐCôð �Q‘’ð7	ð< ØØØð	
ð 	
ô 
�CœÕ	"ä(AÀ#Ç(Á(ÈDÓ(QÑ%ˆ�˜
 AÜˆw‹<˜1ÒÜ Ð#JÌ4ÐPSË9È+Ð!VÓWÐWð ˜g a™j˜\¨Ð+ˆ�‰
Ø�‰�yÔ!Ø�Q‰xˆØ�‰�T˜G‘^Ô$à˜1‘ˆØˆØ�FŠ?ð �x‰xÐÜ$Ð%EÓFÐFØ×!Ñ!Ð$4°S·X±X°J¸bÀÀÀaÐ"HÕIØ�lÒ"©8Ø×!Ñ!Ø5°d°V¸2¸d¸VÀ6ÐJõð Ð3Ò3à×!Ñ!Ø˜U˜GÐ#3°E°7Ð:_Ð`dÐ_eÐegÐhlÐgmÐmuÐvõð ×!Ñ!Ð$4°U°G¸2¸d¸VÀ2ÀdÀVÈ6Ð"RÔSà5?Ö@°˜ q c¨Ò+Ð@ˆ
Ð@àØØØð	
ð 	
ô  ¬t°C«y¨k¸ÐIÓ
JÐJùò As   Í2Nc                óX   — t        | |«      D ��cg c]  \  }}|dz   |z   ‘Œ c}}S c c}}w )Nú )Úzip)ÚtypesrE   rA   r2   s       rP   Úzip_type_and_namerU   Ì   s*   € Ü.1°%¸Ó.?×@¡  dˆC�#‰I˜ÓÓ@Ð@ùÓ@s   �&c                óÀ  — g }g }g }| D ]Æ  }|j                   |v rS|j                  �5ddlm} |j	                   ||j                  |j
                  d¬«      «       n|j	                  d«       Œdt        |j
                  |j                   |j                  «      \  }}}	}
|j                  |«       |j                  |«       |j                  |
«       ŒÈ t        ||«      |fS )Nr   )Údefault_exprF)Úsymintzstd::nullopt)
r2   ÚdefaultÚtorchgen.api.cpprW   r=   Útyper:   rB   ÚextendrU   )Úflat_argumentsÚskipped_argsrT   Ú	new_namesrG   ÚargrW   Ú	new_typesrE   rM   rJ   s              rP   Úgen_argumentsrb   Ñ   sÔ   € ð €EØ€IØ "€NØò 2ˆØ�8‰8�|Ñ#ð
 �{‰{Ð&Ý9à×%Ñ%¡l°3·;±;ÀÇÁÐQVÔ&WÕXà×%Ñ% nÔ5ØÜ2KØ�H‰H�c—h‘h §¡ó3
Ñ/ˆ	�5˜!Ð/ð 	�‰�YÔØ×Ñ˜ÔØ×ÑÐ0Õ1ð%2ô& ˜U IÓ.°Ð>Ð>ó    c           
     óv  — g }g }t        | j                  «      D ]Ÿ  \  }}|j                  d|› �«       t        |j                  t
        «      rL|j                  j                  t        v r0|j                  t        |j                  j                     dz   «       Œ€t        dt        |j                  «      › �«      ‚ dd„}d}| j                  j                  «       }dD ]
  }||v sŒd} n g }	t        | j                  «      D ]¨  \  }}t        |«      dk(  rd	nd
|› d�}
t        |j                  t
        «      s!t        dt	        |j                  «      › �«      ‚ ||j                  |
«      }|r"|	j                  d||   › d||   › d|› d�«       ŒŽ|	j                  d||   › d|› d�«       Œª t        ||«      |	fS )NÚretr*   z"TODO: add support for return type c                óÔ   — | j                   t        j                  k(  rd|› d�S | j                   t        j                  k(  r|› d�S | j                   t        j                  k(  r|› d�S |S )Nznew_tensor_handle(std::move(z))z.expect_int()z.toDouble())r2   r   r4   ÚSymIntÚScalar)rA   Úvals     rP   Úconvert_returnz#gen_returns.<locals>.convert_returnü   s`   € Ø�8‰8”v—}‘}Ò$Ø1°#°°bÐ9Ð9Ø�X‰XœŸ™Ò&Ø�U˜-Ð(Ð(Ø�X‰XœŸ™Ò&Ø�U˜+Ð&Ð&àˆJrc   F)Ú_functional_sym_constrain_rangeÚ#_scaled_dot_product_cudnn_attentionÚ0_scaled_dot_product_efficient_attention_backwardÚ'_scaled_dot_product_efficient_attentionÚ#_scaled_dot_product_flash_attentionÚ0_scaled_dot_product_fused_attention_overrideableÚ#_thhn_fused_lstm_cell_backward_implÚconvolution_backwardÚgrid_sampler_2d_backwardÚgrid_sampler_3d_backwardÚlinear_backwardTr.   Ú
tmp_resultz	std::get<z>(tmp_result)z"Expected BaseType for return, got zif (z) { *z = z; }ú;)rA   r   ri   ÚstrÚreturnrx   )Ú	enumerateÚreturnsr=   r1   r[   r   r2   r3   r8   r9   Úunambiguous_namer>   r?   rU   )ÚschemarT   rE   Úidxre   rj   Úret_pointer_can_be_nullr|   r2   rG   ÚtmpÚrvals               rP   Úgen_returnsr‚   ð   s¶  € Ø€EØ€EÜ˜fŸn™nÓ-ò ‰ˆˆSØ�‰�s˜3˜%�[Ô!Ü�c—h‘h¤Ô)¨c¯h©h¯m©mÔ?RÑ.RØ�L‰LÔ,¨S¯X©X¯]©]Ñ;¸cÑAÕBä%Ø4´T¸#¿(¹(³^Ð4DÐEóð ðóð $ÐØ—{‘{×3Ñ3Ó5Ððò ˆð Ð#Ò#Ø&*Ð#Ùðð" !#€NÜ˜fŸn™nÓ-ò >‰ˆˆSÜ! %›j¨Ašo‰l°Y¸s¸eÀ=Ð3QˆÜ˜#Ÿ(™(¤HÔ-Ü Ð#EÄdÈ3Ï8É8ÃnÐEUÐ!VÓWÐWÙ˜cŸh™h¨Ó,ˆÙ"Ø×!Ñ! D¨¨s©¨°F¸5À¹:¸,ÀcÈ$ÈÈtÐ"TÕUà×!Ñ! A e¨C¡j \°°T°F¸!Ð"<Õ=ð>ô ˜U EÓ*¨NÐ:Ð:rc   z+dict[tuple[str, str, str], tuple[str, str]]Údeclaration_definition_cachec                ó’  ‡— | j                   j                  «       }|||ft        v rt        |||f   S dg i}t        |j	                  «       «      D ]Q  \  }}|j                  d«      st        d|› d|› d�«      ‚	 t        |dd  «      }||v rt        |› d|› d�«      ‚|||<   ŒS g }
g }t        «       }t        |j	                  «       d	¬
«      D �]œ  \  }}|dk(  r|n|› d|› �}| j                  «       r>t        g | j                  j                  ¢| j                  j                  ¢|«      \  }}g }nft        | j                  j                  |«      \  }}| j                   j                   j                   rg g fn
t#        | «      \  }}|j%                  |«       t'        j(                  d|› d|› ddj+                  |«      › d�«      }|rdnd}dŠ|rdj+                  ˆfd„|D «       «      nd}t'        j(                  d|› d|› |› ddj+                  |«      › d�«      |z   t'        j(                  d«      z   }|j-                  |«       |
j/                  d|› d�«       |j/                  |«       �ŒŸ dj+                  |
«      dj+                  |«      ft        |||f<   t        |||f   S # t        $ r}	t        d|› d|› d�«      |	‚d }	~	ww xY w)Nr.   ÚvzVersion number for z is z, not starting with 'v'z, not a valid integer after 'v'z for z has already been definedT)ÚreverseÚ_vzAOTITorchError aoti_torch_rM   r(   r-   r'   zauto tmp_result = r%   z		ú
c              3  ó(   •K  — | ]	  }‰|z   –— Œ y ­w©N© )Ú.0ÚrÚindents     €rP   ú	<genexpr>z1gen_declaration_and_definition.<locals>.<genexpr>j  s   øè ø€ Ò: Q�f˜q•jÑ:ùs   ƒz	
        zL {
            AOTI_TORCH_CONVERT_EXCEPTION_TO_ERROR_CODE({
                z(
                    z
                );
        z#
            });
        }
        zAOTI_TORCH_EXPORT rw   )r2   r|   rƒ   ÚsortedÚitemsr<   r?   ÚintÚ
ValueErrorÚsetÚ	is_out_fnrb   Ú	argumentsÚoutÚflat_non_outÚflat_allÚinplacer‚   r\   ÚtextwrapÚdedentÚjoinÚupdater=   )r}   ÚdeviceÚbackend_callÚversion_infoÚ	base_nameÚindexed_version_infoÚver_strÚnew_argsÚver_idÚeÚdeclarationsÚdefinitionsr^   Ú	func_nameÚargsrG   Úret_assignmentsÚret_declarationsÚdeclarationrv   Úret_assignments_strÚ
definitionrŽ   s                         @rP   Úgen_declaration_and_definitionr±   +  sK  ø€ ð —‘×,Ñ,Ó.€Ið 	�6˜<Ð(Ô,HÑHÜ+¨Y¸ÀÐ,MÑNÐNð 34°R°ÐÜ# L×$6Ñ$6Ó$8Ó9ò 0Ñˆ�Ø×!Ñ! #Ô&Ü Ø% i [°°W°IÐ=TÐUóð ð	Ü˜  ˜Ó%ˆFð
 Ð)Ñ)Ü  G 9¨E°)°Ð<UÐ!VÓWÐWØ'/Ð˜VÒ$ð0ð !€LØ€KÜ ›U€Lä"Ð#7×#=Ñ#=Ó#?ÈÔNó /'Ñˆ�ð "(¨1¢‘I°Y°K¸rÀ&ÀÐ2Jˆ	Ø×ÑÔô $1ØG�&×"Ñ"×&Ñ&ÐG¨×)9Ñ)9×)FÑ)FÐGÈó$Ñ ˆD�.ð *,‰Oä#0Ø× Ñ ×)Ñ)¨<ó$Ñ ˆD�.ð
 #ŸK™K×,Ñ,×4Ò4��R‘¼+ÀfÓ:Mñ .Ð˜oð �K‰KÐ(Ô)ä—o‘oØ(¨¨°°)°¸A¸d¿i¹iÈ»oÐ=NÈaÐPó
ˆñ .=Ñ)À"ˆ
Øˆá>MˆD�I‰IÓ:¨/Ô:Ô:ÐSUð 	ô �O‰Oð !	Ø	ˆð à�˜\˜Nð +Ø—Y‘Y˜~Ó.Ð/ð 0	ð	ó ð "ñ"ô �o‰oð ó ñð 	ð 	×Ñ˜HÔ%Ø×ÑÐ0°°¸QÐ?Ô@Ø×Ñ˜:Ö&ð_/'ðd 	�	‰	�,ÓØ�	‰	�+ÓðGÔ  )¨V°\Ð!BÑCô (¨°F¸LÐ(IÑJÐJøôC ò 	Ü Ø% i [°°W°IÐ=\Ð]óàðûð	ús   Á:J%Ê%	KÊ.KËKc                ó:  — t        j                  |j                  «      } t        j                  |dd¬«      }| j
                  r'|j                  j                  «       r|j                  }n|j                  }|€"t        d|j                  j                  › �«      ‚|S )NF)ÚmethodÚfallback_bindingzNo cpp signature found for )r   Úfrom_schemaÚfuncr
   Úfrom_native_functionrX   Ú
has_symintÚsymint_signatureÚ	signaturer?   r2   )ÚsigÚfÚcpp_sigsÚcpp_sigs       rP   Ú*gen_static_dispatch_backend_call_signaturer¿   …  s‚   € ô ×
)Ñ
)¨!¯&©&Ó
1€CÜ ×5Ñ5Ø	�%¨%ô€Hð ‡z‚z�a—f‘f×'Ñ'Ô)Ø×+Ñ+‰à×$Ñ$ˆØ€ÜÐ:¸1¿6¹6¿;¹;¸-ÐHÓIÐIØ€Nrc   c                ó´  — t        j                  | j                  «      }t        || «      }|€~|j                  r_| j                  j                  «       rEt        j                  | j                  v }|s'|j                  «       }|j                  d«      }d|› d�S d|j                  «       › �S d|j                  j                  «       › d|j                  «       › �S )NÚ_symintzat::symint::z<c10::SymInt>zat::z::)r   rµ   r¶   r¿   rX   r¸   r   ÚfunctionÚvariantsr2   ÚremovesuffixÚdispatch_keyÚlower)r¼   Úbackend_indexr»   r¾   Úhas_function_variantr¢   s         rP   Ú gen_static_dispatch_backend_callrÉ   –  sÂ   € ô ×
)Ñ
)¨!¯&©&Ó
1€CÜ8¸¸aÓ@€GàÐà�:Š:˜!Ÿ&™&×+Ñ+Ô-Ü#*×#3Ñ#3°q·z±zÐ#AÐ á'ð $ŸL™L›N�	Ø%×2Ñ2°9Ó=�	Ø% i [°Ð>Ð>à�g—l‘l“nÐ%Ð&Ð&à�m×0Ñ0×6Ñ6Ó8Ð9¸¸G¿L¹L»NÐ;KÐLÐLrc   c                ó  — d }|€|S ||   j                  | «      s;| j                  �6| j                  |v r(||   j                  || j                     «      r||   }|S |r|S |t        j                     j                  | «      r|t        j                     }|S |t        j                     j                  | «      r|t        j                     }|S |t        j
                     j                  | «      r|t        j
                     }|S rŠ   )Ú
has_kernelÚstructured_delegater   ÚCompositeExplicitAutogradÚ&CompositeExplicitAutogradNonFunctionalÚCompositeImplicitAutograd©r¶   Úfunc_group_mappingrÅ   Úbackend_indicesÚextend_aoti_c_shimrÇ   s         rP   Úget_backend_index_for_aotirÔ   ±  s$  € ð €MàÐØÐà�|Ñ$×/Ñ/°Ô5Ø× Ñ Ð,Ø×$Ñ$Ð(:Ñ:Ø˜LÑ)×4Ñ4Ø˜t×7Ñ7Ñ8ô
ð (¨Ñ5ˆð( Ðñ! Ø Ð àœ[×BÑBÑC×NÑNÈtÔTà+¬K×,QÑ,QÑRˆMð Ðð Ü×>Ñ>ñ
ç
‰*�TÓ
ðð ,Ü×BÑBñˆMð Ðð œ[×BÑBÑC×NÑNÈtÔTØ+¬K×,QÑ,QÑRˆMàÐrc   c                ó    — t        | ||||«      }|€|€d| j                  › d�S y d| j                  › d|j                  j                  «       › d�S )Nz#include <ATen/ops/z.h>rM   z_dispatch.h>)rÔ   Ú	root_namerÅ   rÆ   rÐ   s         rP   Úget_header_for_aotir×   Û  sk   € ô /ØÐ  ,°ÐASó€Mð ÐØÐØ(¨¯©Ð(8¸Ð<Ð<Øà  §¡Ð 0°°-×2LÑ2L×2RÑ2RÓ2TÐ1UÐUaÐbÐbrc   c                óB  — | j                   j                  j                  rP| j                  › d| j                   j                  j                  › d| j                   j                  j                  › �S | j                  › d| j                   j                  j                  › d�S )Nú.z.default)r¶   r2   Úoverload_nameÚ	namespace)r¶   s    rP   Úget_fallback_op_namerÜ   í  s~   € ð �9‰9�>‰>×'Ò'ð �>‰>Ð
˜!˜DŸI™IŸN™N×/Ñ/Ð0°°$·)±)·.±.×2NÑ2NÐ1OÐPðð —‘Ð˜q §¡§¡×!4Ñ!4Ð 5°XÐ>ðrc   c                óò   — t        | ||||«      }|€|�y | j                  }|€dn|j                  «       }	t        | |«      }
	 |rt	        ||	|
|«      \  }}|S t	        ||	|
|«      \  }}|S # t
        $ r Y y w xY w)NÚaten)rÔ   r¶   rÆ   rÉ   r±   r8   )r¶   r¡   rÑ   rÅ   rÒ   ÚheaderrÓ   rÇ   r}   rŸ   r    r®   rM   r°   s                 rP   Ú
gen_c_shimrà   õ  s±   € ô /ØÐ  ,°ÐASó€Mð Ð Ð!9Øà�Y‰Y€FØ#Ð+‰V°×1CÑ1CÓ1E€FÜ3ØØó€Lð
ÙÜ;Ø˜ ¨ló‰NˆK˜ð Ðä:Ø˜ ¨ló‰MˆAˆzð Ðøäò Ùðús   ÁA* ÁA* Á*	A6Á5A6T)Úfrozenc                  ód   — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   d	ed<   e	 	 	 	 dd„«       Zy)ÚShimGeneratorúdict[str, dict[str, list[str]]]r   ú(dict[OperatorName, NativeFunctionsGroup]rÑ   úDispatchKey | NonerÅ   údict[DispatchKey, BackendIndex]rÒ   r#   rß   rÓ   c           	     ó¼   — | j                   t        |«         }t        ||| j                  | j                  | j
                  | j                  | j                  «      }|S rŠ   )r   rÜ   rà   rÑ   rÅ   rÒ   rß   rÓ   )Úselfr¶   r¡   Úresults       rP   Ú__call__zShimGenerator.__call__$  s\   € ð
 ×1Ñ1Ô2FÀtÓ2LÑMˆÜØØØ×#Ñ#Ø×ÑØ× Ñ Ø�K‰KØ×#Ñ#ó
ˆð ˆrc   N)r¶   r   ry   ú
str | None)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   rë   r‹   rc   rP   rã   rã     sI   … à:Ó:Ø@Ó@Ø$Ó$Ø4Ó4ØƒLØÓà ðàðð 
òó !ñrc   rã   c                óº  — dj                  t        t        t        ||||||«      | «      «      «      }|€dn|j	                  «       }	|€dndt        |«      › d�}
|€dnd}d}|r4||z   t        j                  d	«      z   |z   t        j                  d
«      z   S ||z   t        j                  d|rdnd› d|	› d|
› d�«      z   |z   t        j                  d«      z   |z   S )Nrˆ   rÞ   z#include <ATen/Functions.h>z#include <ATen/zFunctions.h>z[

// This file corresponds to the aten_shimified_ops list in torchgen/aoti/fallback_ops.py
r%   zÌ

// WARNING: THIS FILE IS AUTOGENERATED BY torchgen. DO NOT MODIFY BY HAND.
// See https://github.com/pytorch/pytorch/blob/7e86a7c0155295539996e0cf422883571126073e/torchgen/gen.py#L2424-L2436 for detailsz´

            #pragma once

            #include <torch/csrc/inductor/aoti_torch/c/shim.h>

            #ifdef __cplusplus
            extern "C" {
            #endif

            z\

            #ifdef __cplusplus
            } // extern "C"
            #endif
            zA

            #include <torch/csrc/inductor/aoti_torch/generated/zextend/Úc_shim_z{.h>
            #include <torch/csrc/inductor/aoti_torch/utils.h>

            #ifndef AT_PER_OPERATOR_HEADERS
            zï
            #include <ATen/CompositeExplicitAutogradFunctions.h>
            #include <ATen/CompositeExplicitAutogradNonFunctionalFunctions.h>
            #include <ATen/CompositeImplicitAutogradFunctions.h>
            #else
            zn
            #endif // AT_PER_OPERATOR_HEADERS

            using namespace torch::aot_inductor;

            )r�   Úlistr   rã   rÆ   rx   r›   rœ   )Únative_functionsr   rÑ   rÅ   rÒ   rß   rÓ   ÚincludesÚbodyrŸ   Úinclude_device_functionsÚaten_warningÚwarnings                rP   Úgen_aoti_c_shimrú   6  sj  € ð �9‰9ÜÜÜØ)Ø&Ø Ø#ØØ&óð !ó
ó	
ó€Dð $Ð+‰V°×1CÑ1CÓ1E€Fð Ðñ 	&àœs <Ó0Ð1°Ð>ð ð Ðñ mð ð ðC€Gñ
 àØñä�o‰oð 
ó 
ñð ñô �o‰oð ó ñð	
ð0 Øñä�o‰oð #@áM_Á	ÐegÐ?hÐhoÐpvÐowð xð &Ð&ð 'ðó ñð ñô �o‰oð ó ñð* ñ+ð	
rc   c                ó8  ‡‡‡‡‡‡‡‡‡— i Š|D ]4  }|j                  «       D ]  }	|	j                  €Œ|‰|	j                  <    Œ4 Œ6 |D �]  Š‰€t        nt        Ši }
|D ]  }	t	        |	«      }|‰v sŒ|	|
|<   Œ t        d„ t        |
j                  «       «      D «       «      Š‰€dn‰j                  «       }d|› d�}t        ‰‰‰‰‰d‰d¬«      Š|r| j                  |ˆfd„«       n§	 t        t        j                  j                  | j                  |«      «      5 }|j!                  «       }|‰k7  rTd	j                  t#        j$                  |j'                  «       ‰j'                  «       d
dd¬«      «      }t)        d|› d�«      ‚	 d d d «       dˆˆˆˆˆfd„Š‰�t/        ‰«      r|ndŠ| j                  d|› d�ˆˆˆˆˆˆˆˆfd„«       �Œ‚ y # 1 sw Y   ŒHxY w# t*        $ r9 t-        t        j                  j                  | j                  |«      › d�«       Y ŒŒw xY w)Nc              3  ó&   K  — | ]	  \  }}|–— Œ y ­wrŠ   r‹   )rŒ   rM   Úvalues      rP   r�   z(gen_aoti_c_shim_files.<locals>.<genexpr>®  s   è ø€ ò *
Ù�a˜ŒEñ*
ùs   ‚rÞ   rò   z.hTr%   ©rß   rÓ   rõ   c                 ó   •— ‰ S rŠ   r‹   )Ú
new_headers   €rP   ú<lambda>z'gen_aoti_c_shim_files.<locals>.<lambda>Ä  s   ø€ ˜
€ rc   rˆ   ÚexpectedÚactual)ÚfromfileÚtofileÚlinetermaV  
The generated AOTInductor C shim header files have unexpectedly changed. This
indicates an AOTInductor fallback operator ABI backward compatibility breakage!!!
Only in a limited number of situations, this is allowed:

1. You added a fallback op to the inductor_fallback_ops list in torchgen/aoti/fallback_ops.py.
If that's the case, run `python torchgen/gen.py --update-aoti-c-shim` to add a new entry to
existing C shim header files.

2. You added a new default argument to an existing fallback op. This is clearly a BC breaking
change in the AOTInductor land. You need to annotate the new default argument in
torchgen/aoti/fallback_ops.py, and then run `python torchgen/gen.py --update-aoti-c-shim` to
update the C shim header files by creating different versions of the fallback op. See
https://github.com/pytorch/pytorch/pull/154848 as an example.

z
                    z
 not foundc                 ó¤   •— g } ‰D ]&  }t        |‰‰‰‰¬«      }|€Œ| j                  |«       Œ( dj                  t        t	        | «      «      «      S )N)rÓ   rˆ   )r×   r=   r�   r�   r”   )Úheadersr¶   rß   rÒ   rÅ   rÓ   Úfallback_native_functionsÚstructured_func_group_dicts      €€€€€rP   Úheaders_for_aotiz/gen_aoti_c_shim_files.<locals>.headers_for_aotiï  s^   ø€ ØˆGØ1ò 	+�Ü,ØØ.Ø Ø#Ø'9ô�ð Ñ%Ø—N‘N 6Õ*ð	+ð —9‘9œV¤C¨£LÓ1Ó2Ð2rc   z.cppc                 ó@   •— t        ‰‰‰‰‰ d‰ ‰«       dz   ‰z   ¬«      S )NFrˆ   rþ   )rú   )rÒ   rÅ   rÓ   Úextra_headersr	  Úfallback_ops_dictr  r
  s   €€€€€€€€rP   r  z'gen_aoti_c_shim_files.<locals>.<lambda>  s1   ø€ ”OØ)Ø!Ø*ØØØØ#5Ù)Ó+¨dÑ2°]ÑBô	€ rc   )ry   rx   )Ú	functionsrÌ   r   r   rÜ   Útupler�   r‘   rÆ   rú   ÚwriteÚopenÚosÚpathr�   Úinstall_dirÚreadÚdifflibÚunified_diffÚ
splitlinesÚRuntimeErrorÚFileNotFoundErrorÚprintr   )Úaoti_fmÚaoti_backendsrô   rÒ   Ústructured_native_functionsÚextra_cuda_headersrÓ   Úupdate_aoti_c_shimÚ
func_groupr¶   Ú	fallbacksÚop_nameÚdevice_nameÚheader_file_nameÚold_fileÚ
old_headerÚdiffrÅ   r  r	  r  r  r   r
  s      `  `          @@@@@@@rP   Úgen_aoti_c_shim_filesr*  “  ss  ÿø€ ð "$ÐØ1ò ˆ
Ø×(Ñ(Ó*ò 	ˆDØ×'Ñ'Ñ3ØGQÐ*¨4×+CÑ+CÑDÙñ	ðð &ó k
ˆð #/Ð"6ÕÔ<Qð 	ð ˆ	Ø$ò 	*ˆDÜ*¨4Ó0ˆGØÐ+Ò+Ø%)�	˜'Ò"ð	*ô %*ñ *
Ü"(¨¯©Ó):Ó";ô*
ó %
Ð!ð
 !-Ð 4‘f¸,×:LÑ:LÓ:Nˆð % [ M°Ð4ÐÜ$Ø%ØØ&ØØØØ1Øô	
ˆ
ñ Ø�M‰MØ Û"õð
%ÜÜ—G‘G—L‘L ×!4Ñ!4Ð6FÓGóð  àØ!)§¡£�Jà! ZÒ/Ø#Ÿy™yÜ#×0Ñ0Ø *× 5Ñ 5Ó 7Ø *× 5Ñ 5Ó 7Ø)3Ø'/Ø)+ôó ˜ô +ð 0ð €ð ð,ó ð ð 0÷ ÷N	3ñ 	3ð  Ð'Ô,@ÀÔ,Nñ àð 	ð 	�‰Ø�k�] $Ð'÷	ò 	ö	
ñk
÷H ð  ûôB %ò ÜÜ—w‘w—|‘| G×$7Ñ$7Ð9IÓJÐKÈ:ÐVöðús+   Ã&3GÄA*GÆGÇG	ÇGÇ?HÈH)F)rA   r   r2   rx   rB   r#   ry   z1tuple[list[str], list[str], list[str], list[str]])rT   ú	list[str]rE   r+  ry   r+  )r]   zSequence[Argument]r^   zset[str]ry   útuple[list[str], list[str]])r}   r   ry   r,  )
r}   r   rŸ   rx   r    rx   r¡   údict[str, list[str]]ry   ztuple[str, str])r»   z"CppSignature | DispatcherSignaturer¼   r   ry   r	   rŠ   )r¼   r   rÇ   úBackendIndex | Nonery   rx   )r¶   r   rÑ   rå   rÅ   ræ   rÒ   rç   rÓ   r#   ry   r.  )r¶   r   rÑ   rå   rÅ   ræ   rÒ   rç   rÓ   r#   ry   rì   )r¶   r   ry   rx   )r¶   r   r¡   r-  rÑ   rå   rÅ   ræ   rÒ   rç   rß   r#   rÓ   r#   ry   rì   )r%   )rô   úSequence[NativeFunction]r   rä   rÑ   rå   rÅ   ræ   rÒ   rç   rß   r#   rÓ   r#   rõ   rx   ry   rx   )r  r   r  zset[DispatchKey | None]rô   r/  rÒ   rç   r  zSequence[NativeFunctionsGroup]r   rx   rÓ   r#   r!  r#   ry   ÚNone)FÚ
__future__r   r  r  r›   Údataclassesr   Útypingr   Útorchgen.aoti.fallback_opsr   r   Útorchgen.api.typesr   Útorchgen.api.types.signaturesr	   r
   Útorchgen.contextr   Útorchgen.modelr   r   r   r   r   r   r   r   r   r   r   r   r   r   Útorchgen.utilsr   r   Úcollections.abcr   r4   r#   r’   rg   rh   Úfloatrx   ÚDeviceIndexÚLayoutÚMemoryFormatÚ
ScalarTypeÚ	Generatorr3   r6   r5   r:   rU   rb   r‚   rƒ   rð   r±   r¿   rÉ   rÔ   r×   rÜ   rà   rã   rú   r*  r‹   rc   rP   ú<module>rA     sŽ  ðÞ "ã Û 	Û Ý !Ý  ç PÝ 2ß IÝ 8÷÷ ÷ ÷ ÷  1ñ Ý(ð ‡M�MÐ%Ø
‡K�K�Ø
‡J�J�	Ø
‡M�M�9Ø
‡M�M�8Ø
‡L�L�(Ø
‡J�J�Ø
×Ñ˜	Ø
‡M�M�9Ø
×Ñ˜Ø
×Ñ�yØ
×ÑÐ+ðÐ ð  ‡M�M�<Ø
‡K�K�Ø
‡J�J�	Ø
‡M�M�=Ø
‡M�M�=Ø
‡L�L�(Ø
‡J�JÐ$Ø
×ÑÐ*Ø
‡M�M�=Ø
×ÑÐ,Ø
×ÑÐ(Ø
×Ñ�oðÐ ð  ‡M�MÐ2Ø
‡K�K�Ø
‡J�J�Ø
‡M�M�2Ø
‡M�M�2Ø
‡L�L�"Ø
‡J�J�Ø
×ÑÐ7Ø
‡M�MÐ-Ø
×ÑÐ9Ø
×ÑÐ5Ø
×ÑÐ>ðÐ ð( ðvKØ	ðvKà
ðvKð ðvKð 7ó	vKórAð
?Ø&ð?Ø6>ð?à ó?ó>4;ðp MOÐ ÐIÓ NðWKØðWKàðWKð ðWKð 'ð	WKð
 óWKðtØ	+ðàðð óð& *.ðMØðMà&ðMð 	óMð6'Ø
ð'à@ð'ð %ð'ð 5ð	'ð
 ð'ð ó'ðTcØ
ðcà@ðcð %ðcð 5ð	cð
 ðcð ócó$ð#Ø
ð#à&ð#ð Að#ð %ð	#ð
 5ð#ð ð#ð ð#ð ó#ñL �$Ô÷ð ó ððD ðZ
Ø.ðZ
à:ðZ
ð AðZ
ð %ð	Z
ð
 5ðZ
ð ðZ
ð ðZ
ð ðZ
ð 	óZ
ðz|
Øð|
à*ð|
ð /ð|
ð 5ð	|
ð
 "@ð|
ð ð|
ð ð|
ð ð|
ð 
ô|
rc   