
    9i!n                       % 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
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 J!r!  S S
K"J#r#J$r$  \(       a  S SK%J&r&  S SKJ'r'  \RP                  S\RR                  S\RT                  S\RV                  S\RX                  S\RZ                  S\R\                  S\R^                  S\R`                  S\Rb                  S\Rd                  S\Rf                  S0r4\RP                  S\RR                  S\RT                  S\RV                  S\RX                  S\RZ                  S\R\                  S\R^                  S\R`                  S\Rb                  S\Rd                  S\Rf                  S0r5\RP                  S\RR                  S\RT                  S\RV                  S\RX                  S\RZ                  S\R\                  S\R^                  S\R`                  S \Rb                  S!\Rd                  S"\Rf                  S#0r6 S7       S8S$ jjr7S9S% jr8      S:S& jr9S;S' jr:0 q;S(\<S)'             S<S* jr=      S=S+ jr> S>     S?S, jjr?            S@S- jr@            SAS. jrASBS/ jrB                SCS0 jrC\" S1S29 " S3 S45      5       rD SD                 SES5 jjrE                  SFS6 jrFg)G    )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)Optional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)typr3   is_writecallsite_exprc_typesnames
aten_typescallsite_exprsjnew_aten_typesnew_callsite_exprs	aten_type	base_type_atypets                   X/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/torchgen/gen_aoti_c_shim.pyr;   r;   T   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)typesrE   rA   r3   s       rP   zip_type_and_namerU      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)r3   r>   r;   typerB   extendrU   )
flat_argumentsskipped_argsrT   	new_namesrG   arg	new_typesrE   rM   rJ   s
             rP   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())r3   r   r5   SymIntScalar)rA   vals     rP   convert_return#gen_returns.<locals>.convert_return   s`    88v}}$1#b99XX&U-((XX&U+&&Jr_   F)_functional_sym_constrain_range#_scaled_dot_product_cudnn_attention0_scaled_dot_product_efficient_attention_backward'_scaled_dot_product_efficient_attention#_scaled_dot_product_flash_attention0_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if (z) { *z = z; };)rA   r   re   strreturnru   )	enumeratereturnsr>   r2   rW   r   r3   r4   r9   r:   unambiguous_namer?   rU   )schemarT   rE   idxra   rf   ret_pointer_can_be_nullry   r3   rG   tmprvals               rP   gen_returnsr      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_rM   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     rP   	<genexpr>1gen_declaration_and_definition.<locals>.<genexpr>_  s     :/Qfqj/s   z	
        zL {
            AOTI_TORCH_CONVERT_EXCEPTION_TO_ERROR_CODE({
                z(
                    z
                );
        z#
            });
        }
        zAOTI_TORCH_EXPORT rt   )r3   ry   r   sorteditemsr=   int
ValueErrorAssertionErrorset	is_out_fnr^   	argumentsoutflat_non_outflat_allinplacer   rX   textwrapdedentjoinupdater>   )rz   devicebackend_callversion_info	base_nameindexed_version_infover_strnew_argsver_idedeclarationsdefinitionsrZ   	func_nameargsrG   ret_assignmentsret_declarationsdeclarationrs   ret_assignments_str
definitionr   s                         @rP   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       rP   *gen_static_dispatch_backend_call_signaturer   z  sq     
)
)!&&
1C 55	%%H zzaff''))++$$Nr_   c                   [         R                  " U R                  5      n[        X 5      nUc  UR                  (       aj  U R                  R                  5       (       aK  [        R                  U R                  ;   nU(       d'  UR                  5       nUR                  S5      nSU S3$ SUR                  5        3$ SUR                  R                  5        SUR                  5        3$ )N_symintzat::symint::z<c10::SymInt>zat::z::)r   r   r   r   r   r   r   functionvariantsr3   removesuffixdispatch_keylower)r   backend_indexr   r   has_function_variantr   s         rP    gen_static_dispatch_backend_callr     s     
)
)!&&
1C8@G::!&&++--#*#3#3qzz#A ' $LLN	%229=	%i[>>glln%&&m006689GLLN;KLLr_   c                H   S nUc  U$ 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         rP   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  Uc  SU R                   S3$ g SU R                   SUR                  R                  5        S3$ )Nz#include <ATen/ops/z.h>rM   z_dispatch.h>)r   	root_namer   r   r   s         rP   get_header_for_aotir     sf     /,ASM ((8<<  0-2L2L2R2R2T1UUabbr_   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   r3   overload_name	namespace)r   s    rP   get_fallback_op_namer     s~     99>>'' >>
!DIINN//0$))..2N2N1OP q!4!4 5X>r_   c                    [        XX4U5      nUc  Ub  g U R                  nUc  SOUR                  5       n	[        U U5      n
 U(       a  [	        XX5      u  pU$ [	        XX5      u  pU$ ! [
         a     g f = f)Naten)r   r   r   r   r   r9   )r   r   r   r   r   headerr   r   rz   r   r   r   rM   r   s                 rP   
gen_c_shimr     s     /,ASM !9YYF#+V1C1C1EF3L
;NK :MA  s   A* A* *
A76A7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   Optional[DispatchKey]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       rP   __call__ShimGenerator.__call__  s\    
 112Ft2LM##  KK##
 r_   r   N)r   r   rv   
str | None)__name__
__module____qualname____firstlineno____annotations__r   r   __static_attributes__r   r_   rP   r   r     sI    ::@@''44L  
 !r_   r   c                   SR                  [        [        [        UUUUUU5      U 5      5      5      nUc  SOUR	                  5       n	Uc  SOS[        U5       S3n
Uc  SOSnSnU(       a6  UU-   [        R                  " S	5      -   U-   [        R                  " S
5      -   $ UU-   [        R                  " SU(       a  SOS SU	 SU
 S35      -   U-   [        R                  " S5      -   U-   $ )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   ru   r   r   )native_functionsr   r   r   r   r   r   includesbodyr   include_device_functionsaten_warningwarnings                rP   gen_aoti_c_shimr   *  sj    99)& #& !
	
D $+V1C1C1EF  	&s<01>   m  CG
 oo 
 
  oo  	
0 oo #@M_	eg?hhopvow x && '   oo  * +	
r_   c                v  ^^^^^^^^^ 0 mU H9  nUR                  5        H"  n	U	R                  c  M  UTU	R                  '     M7     M;     U GH  mTc  [        O[        m0 n
U H  n	[	        U	5      nUT;   d  M  XU'   M     [        S [        U
R                  5       5       5       5      mTc  SOTR                  5       nSU S3n[        T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b  [/        T5      (       a  UOSmU R                  SU S3UUUUUUUU4S j5        GM     g ! , (       d  f       NX= 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   rM   values      rP   r   (gen_aoti_c_shim_files.<locals>.<genexpr>  s      *
";haE";s   r   r   z.hTr&   r   r   r   c                    > T $ r   r   )
new_headers   rP   <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      rP   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                 :   > [        TTTTT STT" 5       S-   T-   S9$ )NFr   r  )r   )r   r   r   extra_headersr  fallback_ops_dictr  r  s   rP   r  r    s/    O)!*#5)+d2]B	r_   )rv   ru   )	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_filesr0    sY    "$1
((*D''3GQ*4+C+CD + 2 & #/"6<Q 	 	$D*40G++%)'" % %* *
"():";*
 %
!
 !- 4f,:L:L:N %[M4$%&1	

 MM "
%GGLL!4!46FG!)J!Z/#yy#00 * 5 5 7 * 5 5 7)3'/)+  + 0  ,   0N	3 	3  ',@,N,N  	 	k]$'	 		
 &H B % ww||G$7$79IJK:Vs2   53G5(A)G$G5$
G2	.G52G55A H87H8)F)rA   r   r3   ru   rB   r$   rv   z1tuple[list[str], list[str], list[str], list[str]])rT   	list[str]rE   r1  rv   r1  )rY   zSequence[Argument]rZ   zset[str]rv   tuple[list[str], list[str]])rz   r   rv   r2  )
rz   r   r   ru   r   ru   r   dict[str, list[str]]rv   ztuple[str, str])r   z"CppSignature | DispatcherSignaturer   r   rv   r	   r   )r   r   r   zOptional[BackendIndex]rv   ru   )r   r   r   r   r   r   r   r   r   r$   rv   zBackendIndex | None)r   r   r   r   r   r   r   r   r   r$   rv   r   )r   r   rv   ru   )r   r   r   r3  r   r   r   r   r   r   r   r$   r   r$   rv   r   )r&   )r   Sequence[NativeFunction]r   r   r   r   r   r   r   r   r   r$   r   r$   r   ru   rv   ru   )r#  r   r$  zset[Optional[DispatchKey]]r   r4  r   r   r%  zSequence[NativeFunctionsGroup]r&  ru   r   r$   r'  r$   rv   None)G
__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   r   r5   r$   r   rc   rd   floatru   DeviceIndexLayoutMemoryFormat
ScalarType	Generatorr4   r7   r6   r;   rU   r^   r   r   r   r   r   r   r   r   r   r   r   r   r0  r   r_   rP   <module>rF     s   "  	  !   P 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>? ?,3;n MO I NWKWKWK WK '	WK
 WKt	+ $ -1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	|

 "@|
 |
 |
 |
 
|
r_   