
    Thd                       % S SK Jr  S SKrS SKrS SKrS SKJr  S SK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	KJrJrJrJrJrJrJrJrJrJrJrJrJr  S S
K J!r!J"r"  \(       a  S SK#J$r$  \RJ                  S\RL                  S\RN                  S\RP                  S\RR                  S\RT                  S\RV                  S\RX                  S\RZ                  S\R\                  S\R^                  S\R`                  S0r1\RJ                  S\RL                  S\RN                  S\RP                  S\RR                  S\RT                  S\RV                  S\RX                  S\RZ                  S\R\                  S\R^                  S\R`                  S0r2\RJ                  S\RL                  S\RN                  S\RP                  S\RR                  S\RT                  S\RV                  S\RX                  S\RZ                  S\R\                  S \R^                  S!\R`                  S"0r3 S6       S7S# jjr4S8S$ jr5      S9S% jr6S:S& jr70 q8S'\9S('             S;S) jr:      S<S* jr;      S=S+ jr<            S>S, jr=            S?S- jr>S@S. jr?                SAS/ jr@\" S0S19 " S2 S35      5       rA SB                 SCS4 jjrB                  SDS5 jrCg)E    )annotationsN)	dataclass)TYPE_CHECKING)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)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                   [        U [        5      (       a  U R                  [        ;   a  U R                  [        R
                  :X  a  U(       a  SU S3/nO4[        U R                     (       a  [        U R                      SU S3OU/n[        U R                     /U/[        U R                     /U4$ U R                  [        R                  :X  a  SS/XS-   /S/SU SU S	3/4$ [        S
[        U 5       35      e[        U [        5      (       GaE  [        U R                  U5      u  pEpgSn/ n	/ n
U GH  nXH   S-   XH'   UR                  S5      (       aL  U	R                  SU S35        U[!        S5      S nU
R                  SU SXX    SXXS-       S35        US-  nMo  US:X  a7  U	R                  S5        U
R                  SXX    SXXS-       S35        US-  nM  US:X  a3  U	R                  SU S35        U
R                  SXX    S35        US-  nM  U	R                  SU S35        U
R                  SU SXX    S35        US-  nGM     UUU	U
4$ [        U ["        5      (       Ga2  [        U R                  U5      u  pEpm[!        U5      S:X  d   S[        U 5      -   5       eSUS    S3US'   UR                  S5        US   nUR                  US-   5        US   n/ nUS:X  a2  U R$                  c   eUR                  S U R$                   SU S35        OfUS:X  a   U(       d  UR                  S!U SU S"35        O@US#:X  a  UR                  S$U S%U S&U SU S'3	5        OUR                  S U SU SU S"35        U Vs/ s H	  nSU S3PM     nnUUUU4$ [        S([        U 5       S)35      es  snf )*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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   size)typr0   is_writecallsite_exprc_typesnames
aten_typescallsite_exprsjnew_aten_typesnew_callsite_exprs	aten_type	base_type_atypets                   R/var/www/fran/franai/venv/lib/python3.13/site-packages/torchgen/gen_aoti_c_shim.pyr8   r8   R   sq   
 #x  88**xx6==(X $ETF!!L M 2#((; 2#((;<AdV1E! %SXX./'12	  XX&I&i'(?vEfgkflluv	  &(GS	{&STT	C	&	&5NHHd6
2
 #I c)GJ##$455%%(81&EF%c*:&;bA	"))/	{"UXJbSTuVWX Qm+%%&DE"))1%(2eEl^1M Ql*%%(81&EF")),J58*TU*VWQ%%(81&EF"))*9+RzC Q7 $< 	
 	
 
C	"	"(A#((D(Q%
7|q W"KdSVi"WW  gaj\+
y!QxTG^$1F? 88'''!!$4SXXJba"HIl"8!!5dV2dV6J 33!!UG#3E7:_`d_eeghlgmmuv !!$4UG2dV2dV6"RS5?@Zqc+Z
@	
 	
 tCykI
JJ As   N;c                Z    [        X5       VVs/ s H  u  p#US-   U-   PM     snn$ s  snnf )N )zip)typesrB   r>   r0   s       rM   zip_type_and_namerR      s,    .1%.?@.?C#I.?@@@s   'c                B   / n/ n/ nU  H  nUR                   U;   a  UR                  S5        M&  [        UR                  UR                   UR                  5      u  pgpUR                  U5        UR                  U5        UR                  U	5        M     [        X#5      U4$ )Nzstd::nullopt)r0   r;   r8   typer?   extendrR   )
flat_argumentsskipped_argsrQ   	new_namesrD   arg	new_typesrB   rJ   rG   s
             rM   gen_argumentsr[      s     EI "N88|#!!.12KHHchh3
/	! 	Y01  U.>>    c           
     b   / n/ n[        U R                  5       H  u  p4UR                  SU 35        [        UR                  [
        5      (       aO  UR                  R                  [        ;   a1  UR                  [        UR                  R                     S-   5        M  [        S[        UR                  5       35      e   SS jnSnU R                  R                  5       nS H  nX;   d  M
  Sn  O   / n	[        U R                  5       H  u  p4[        U5      S:X  a  S	OS
U S3n
[        UR                  [
        5      (       d   eU" UR                  U
5      nU(       a!  U	R                  SX#    SX#    SU S35        Mx  U	R                  SX#    SU S35        M     [        X5      U	4$ )Nretr(   z"TODO: add support for return type c                    U R                   [        R                  :X  a  SU S3$ U R                   [        R                  :X  a  U S3$ U R                   [        R                  :X  a  U S3$ U$ )Nznew_tensor_handle(std::move(z))z.expect_int()z.toDouble())r0   r   r2   SymIntScalar)r>   vals     rM   convert_return#gen_returns.<locals>.convert_return   s`    88v}}$1#b99XX&U-((XX&U+&&Jr\   F)#_scaled_dot_product_flash_attention'_scaled_dot_product_efficient_attention#_scaled_dot_product_cudnn_attention0_scaled_dot_product_fused_attention_overrideableconvolution_backwardTr,   
tmp_resultz	std::get<z>(tmp_result)zif (z) { *z = z; };)r>   r   rb   strreturnrl   )	enumeratereturnsr;   r/   rT   r   r0   r1   r6   r7   unambiguous_namer<   rR   )schemarQ   rB   idxr^   rc   ret_pointer_can_be_nullrp   r0   rD   tmprvals               rM   gen_returnsrv      s   EEfnn-s3%[!chh))chhmm?R.RLL,SXX]];cAB%4T#((^4DE  . ${{335 #&*# !#Nfnn-!%jAolYse=3Q#((H----chh,"!!DF5:,c$t"TU!!Aej\TF!"<= . U*N::r\   z+dict[tuple[str, str, str], tuple[str, str]]declaration_definition_cachec                  ^ U R                   R                  5       nXAU4[        ;   a  [        XAU4   $ S/ 0n[        UR	                  5       5       HN  u  pgUR                  S5      (       d   SU SU S35       e [        USS  5      nX;  d   U SU S35       eXuU'   MP     / n
/ n[        5       n[        UR	                  5       S	S
9 GH  u  pUS:X  a  UOU SU 3nU R                  5       (       a=  [        / U R                  R                  QU R                  R                  QU5      u  p/ nOj[        U R                  R                  U5      u  pU R                   R                   R                   (       a  / / 4O
[#        U 5      u  nnUR%                  U5        [&        R(                  " SU SU SSR+                  U5       S35      nU(       a  SOSnSmU(       a  SR+                  U4S jU 5       5      OSn[&        R(                  " SU SU U SSR+                  U5       S35      U-   [&        R(                  " S5      -   nUR-                  U5        U
R/                  SU S35        UR/                  U5        GM     SR+                  U
5      SR+                  U5      4[        XAU4'   [        XAU4   $ ! [         a  n	[        SU SU S35      U	eS n	A	ff = f)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_rJ   r&   r+   r%   zauto tmp_result = r#   z		
c              3  .   >#    U  H
  nTU-   v   M     g 7fN ).0rindents     rM   	<genexpr>1gen_declaration_and_definition.<locals>.<genexpr>W  s     :/Qfqj/s   z	
        zL {
            AOTI_TORCH_CONVERT_EXCEPTION_TO_ERROR_CODE({
                z(
                    z
                );
        z#
            });
        }
        zAOTI_TORCH_EXPORT rk   )r0   rp   rw   sorteditemsr:   int
ValueErrorAssertionErrorset	is_out_fnr[   	argumentsoutflat_non_outflat_allinplacerv   rU   textwrapdedentjoinupdater;   )rq   devicebackend_callversion_info	base_nameindexed_version_infover_strnew_argsver_idedeclarationsdefinitionsrW   	func_nameargsrD   ret_assignmentsret_declarationsdeclarationrj   ret_assignments_str
definitionr   s                         @rM   gen_declaration_and_definitionr     s9    ,,.I 	<(,HH+Y,MNN 34R#L$6$6$89!!#&& 	
!)D	9PQ	
&	%F
 1 	
iuYK'@A	
1 (0V$ : !LK UL"#7#=#=#?N "(1IYKr&2J	 $1G&""&&G)9)9)F)FG$ D *,O#0  ))<$ D
 #KK,,44R+f:M .o KK()oo()Adiio=NaP
 .=)"
>MDII:/::SU 	 OO !		 \N +YY~./ 0		  "" oo   	 	H%0Q?@:&_ Od 			,		+G )\!BC (L(IJJE  	 %i[WI=\]	s   :J66
K KKc                   [         R                  " UR                  5      n [        R                  " USSS9nU R
                  (       a,  UR                  R                  5       (       a  UR                  nOUR                  nUc   eU$ )NF)methodfallback_binding)	r   from_schemafuncr	   from_native_functionsymint
has_symintsymint_signature	signature)sigfcpp_sigscpp_sigs       rM   *gen_static_dispatch_backend_call_signaturer   r  sq     
)
)!&&
1C 55	%%H zzaff''))++$$Nr\   c                    [         R                  " U R                  5      n[        X 5      nSUR                  R                  5        SUR                  5        3$ )Nzat::z::)r   r   r   r   dispatch_keylowerr0   )r   backend_indexr   r   s       rM    gen_static_dispatch_backend_callr     sL     
)
)!&&
1C8@G-,,2245R7GHHr\   c                >   S nX2   R                  U 5      (       dA  U R                  b:  U R                  U;   a*  X2   R                  XR                     5      (       a  X2   nU$ U(       a  U$ U[        R                     R                  U 5      (       a  U[        R                     nU$ U[        R                     R                  U 5      (       a  U[        R                     nU$ U[        R
                     R                  U 5      (       a  U[        R
                     nU$ r~   )
has_kernelstructured_delegater   CompositeExplicitAutograd&CompositeExplicitAutogradNonFunctionalCompositeImplicitAutogradr   func_group_mappingr   backend_indicesextend_aoti_c_shimr   s         rM   get_backend_index_for_aotir     s    M$//55  ,$$(::)44778
 
 (5( !   [BBCNNtTT+K,Q,QRM  >>

*T
 ,BBM  [BBCNNtTT+K,Q,QRMr\   c                |    [        XX#U5      nUc  S $ SU R                   SUR                  R                  5        S3$ )Nz#include <ATen/ops/rJ   z_dispatch.h>)r   	root_namer   r   r   s         rM   get_header_for_aotir     sW     /,ASM
   	 #4>>"2!M4N4N4T4T4V3WWcdr\   c                L   U R                   R                  R                  (       aP  U R                   SU R                   R                  R                   SU R                   R                  R                   3$ U R                   SU R                   R                  R                   S3$ )N.z.default)r   r0   overload_name	namespace)r   s    rM   get_fallback_op_namer     s~     99>>'' >>
!DIINN//0$))..2N2N1OP q!4!4 5X>r\   c                    [        XX4U5      nUc  g U R                  nUR                  5       n	[        U U5      n
 U(       a  [	        XX5      u  pU$ [	        XX5      u  pU$ ! [
         a     g f = fr~   )r   r   r   r   r   r6   )r   r   r   r   r   headerr   r   rq   r   r   r   rJ   r   s                 rM   
gen_c_shimr     s     /,ASM YYF!F3L
;NK :MA  s   A" A" "
A/.A/T)frozenc                  n    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S
\S'   \    SS j5       rSrg)ShimGeneratori  dict[str, dict[str, list[str]]]r   (dict[OperatorName, NativeFunctionsGroup]r   r   r   dict[DispatchKey, BackendIndex]r   r!   r   r   c           	         U R                   [        U5         n[        UUU R                  U R                  U R
                  U R                  U R                  5      nU$ r~   )r   r   r   r   r   r   r   r   )selfr   r   results       rM   __call__ShimGenerator.__call__  s\    
 112Ft2LM##  KK##
 r\   r   N)r   r   rm   
str | None)__name__
__module____qualname____firstlineno____annotations__r
   r   __static_attributes__r   r\   rM   r   r     sI    ::@@44L  
 !r\   r   c                   SR                  [        [        [        UUUUUU5      U 5      5      5      nUR	                  5       n	Sn
U(       a3  U
[
        R                  " S5      -   U-   [
        R                  " S5      -   $ U
[
        R                  " SU(       a  SOS SU	 S	[        U5       S
35      -   U-   [
        R                  " S5      -   U-   $ )Nr|   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/r#   c_shim_z.h>
            #include <torch/csrc/inductor/aoti_torch/utils.h>

            #ifndef AT_PER_OPERATOR_HEADERS
            #include <ATen/zFunctions.h>
            #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   r   r   rl   )native_functionsr   r   r   r   r   r   includesbodyr   warnings              rM   gen_aoti_c_shimr     s    99)& #& !
	
D !FCG
 oo 
 
  oo  	
. oo #@M_	eg?hhopvow x  -. /   oo  ( )	
r\   c                l  ^^^^^^^^ 0 mU H9  nUR                  5        H"  n	U	R                  c  M  UTU	R                  '     M7     M;     U GH  m0 n
U H  n	[        U	5      nU[        ;   d  M  XU'   M      [	        S [        U
R                  5       5       5       5      mSTR                  5        S3n[        T[        TTTSTSS9mU(       a  U R                  UU4S j5        O [        [        R                  R                  U R                  U5      5       nUR                  5       nUT:w  aR  SR                  [         R"                  " UR%                  5       TR%                  5       S	S
SS95      n['        SU S35      e S S S 5        SUUUUU4S jjm[-        T5      (       a  UOSmU R                  STR                  5        S3UUUUUUU4S j5        GM     g ! , (       d  f       Nb= f! [(         a9    [+        [        R                  R                  U R                  U5       S35         Nf = f)Nc              3  *   #    U  H	  u  pUv   M     g 7fr~   r   )r   rJ   values      rM   r   (gen_aoti_c_shim_files.<locals>.<genexpr>q  s      *
";haE";s   r   z.hTr#   r   r   r   c                    > T $ r~   r   )
new_headers   rM   <lambda>'gen_aoti_c_shim_files.<locals>.<lambda>  s    
r\   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            	        > / n T H&  n[        UTTTTS9nUc  M  U R                  U5        M(     SR                  [        [	        U 5      5      5      $ )N)r   r|   )r   r;   r   r   r   )headersr   r   r   r   r   fallback_native_functionsstructured_func_group_dicts      rM   headers_for_aoti/gen_aoti_c_shim_files.<locals>.headers_for_aoti  sY    G1,. #'9 %NN6* 2 99VCL122r\   z.cppc                 B   > [        T[        TTT STT" 5       S-   T-   S9$ )NFr|   r   )r   r   )r   r   r   extra_headersr   r   r   s   rM   r   r     s/    O)%*#5)+d2]B	r\   )rm   rl   )	functionsr   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header_file_nameold_file
old_headerdiffr   r  r   r   r   r   s      `  `         @@@@@@rM   gen_aoti_c_shim_filesr  Z  s3    "$1
((*D''3GQ*4+C+CD + 2 &	$D*40G//%)'" % %* *
"():";*
 %
!
 %\%7%7%9$:"=$%!&1	

 MM "
%GGLL!4!46FG!)J!Z/#yy#00 * 5 5 7 * 5 5 7)3'/)+  + 0  ,   0N	3 	3 /C<.P.P*VXl((*+40	 		
i &: B % ww||G$7$79IJK:Vs2   &3G0A)GG0
G-	)G0-G00A H32H3)F)r>   r   r0   rl   r?   r!   rm   z1tuple[list[str], list[str], list[str], list[str]])rQ   	list[str]rB   r  rm   r  )rV   zSequence[Argument]rW   zset[str]rm   tuple[list[str], list[str]])rq   r   rm   r  )
rq   r   r   rl   r   rl   r   dict[str, list[str]]rm   ztuple[str, str])r   z"CppSignature | DispatcherSignaturer   r   rm   r   )r   r   r   r   rm   rl   )r   r   r   r   r   r   r   r   r   r!   rm   zBackendIndex | None)r   r   r   r   r   r   r   r   r   r!   rm   r   )r   r   rm   rl   )r   r   r   r  r   r   r   r   r   r   r   r!   r   r!   rm   r   )r#   )r   Sequence[NativeFunction]r   r   r   r   r   r   r   r   r   r!   r   r!   r   rl   rm   rl   )r  r   r  zset[DispatchKey]r   r   r   r   r  zSequence[NativeFunctionsGroup]r  rl   r   r!   r  r!   rm   None)D
__future__r   r
  r  r   dataclassesr   typingr   torchgen.aoti.fallback_opsr   torchgen.api.typesr   torchgen.api.types.signaturesr   r	   torchgen.contextr
   torchgen.modelr   r   r   r   r   r   r   r   r   r   r   r   r   torchgen.utilsr   r   collections.abcr   r2   r!   r   r`   ra   floatrl   DeviceIndexLayoutMemoryFormat
ScalarType	Generatorr1   r4   r3   r8   rR   r[   rv   rw   r   r   r   r   r   r   r   r   r   r   r  r   r\   rM   <module>r2     s   "  	  !   < 2 I 8    1 ( MM%
KK
JJ	
MM9
MM8
LL(
JJ
	
MM9

y
+   MM<
KK
JJ	
MM=
MM=
LL(
JJ$
*
MM=
,
(
o   MM2
KK
JJ
MM2
MM2
LL"
JJ
7
MM-
9
5
> ( tK	tK
tK tK 7	tKnA
?&?6>? ?,-;b MO I NWKWKWK WK '	WK
 WKt	+  III 	I#
#@# # 5	#
 # #L
@  5	
  "#
#&# A# 	#
 5# # # #L $  D L
.L
:L
 AL
 	L

 5L
 L
 L
 L
 	L
^q
q
#q
 /q
 5	q

 "@q
 q
 q
 q
 
q
r\   