
    <ЦiC                    t   % S SK J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
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  S S	KJr  \(       a  S S
KJr  \R>                  S\R@                  S\RB                  S\RD                  S\RF                  S\RH                  S\RJ                  S\RL                  S\RN                  S\RP                  S\RR                  S\RT                  S0r+\R>                  S\R@                  S\RB                  S\RD                  S\RF                  S\RH                  S\RJ                  S\RL                  S\RN                  S\RP                  S\RR                  S\RT                  S0r,\R>                  S\R@                  S\RB                  S\RD                  S\RF                  S\RH                  S\RJ                  S\RL                  S\RN                  S\RP                  S\RR                  S \RT                  S!0r-      S4S" jr.S5S# jr/S6S$ jr0S7S% jr10 q2S&\3S''           S8S( jr4      S9S) jr5      S:S* jr6            S;S+ jr7            S<S, jr8S=S- jr9              S>S. jr:\" S/S09 " S1 S25      5       r; S?               S@S3 jjr<g)A    )annotationsN)	dataclass)TYPE_CHECKING)DispatcherSignature)CppSignatureCppSignatureGroup)method_with_native_function)ArgumentBackendIndexBaseTyBaseTypeDispatchKeyFunctionSchemaListTypeNativeFunctionNativeFunctionsGroupOperatorNameOptionalTypeType)mapMaybe)SequenceAtenTensorHandleint32_tint64_tdoublezconst char*AtenGeneratorHandlez
at::Tensorboolzc10::SymIntzc10::Scalarzc10::string_viewzc10::DeviceIndexzc10::Layoutzc10::MemoryFormatzc10::ScalarTypezat::Generatorz *tensor_handle_to_tensor_pointer 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                     /U/[        U R                     /[
        U R                     (       a  [
        U R                      SU S3/4$ 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a
  [        U R                  U5      u  p#pES
n/ n/ nU H  n	X&   S-   X&'   U	R                  S5      (       aL  UR                  SU	 S35        U	[        S5      S n
UR                  SU
 SX6    SX6S-       S35        US-  nMn  U	S:X  a7  UR                  S5        UR                  SX6    SX6S-       S35        US-  nM  UR                  SU	 S35        UR                  SU	 SX6    S35        US-  nM     UUUU4$ [        U [         5      (       Ga  [        U R                  U5      u  p#pK[        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        OCUS:X  a"  UR                  SU 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$ g s  snf )$N()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(zpointer_to_optional<z'ListType with unsupported element type zconst r   _len_r   zpointer_to_list<z::std::optional<at::Tensor>z
c10::List<z>(c10::ArrayRef<z>(pointer_to_list<z_len_)))z_len_))
isinstancer   namebase_type_to_c_typebase_type_to_aten_typebase_type_to_callsite_exprr   DeviceNotImplementedErrorreprr   convert_arg_type_and_nameelem
startswithappendlenr   size)typr+   c_typesnames
aten_typescallsite_exprsjnew_aten_typesnew_callsite_exprs	aten_type	base_type_atypets                 W/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torchgen/gen_aoti_c_shim.pyr2   r2   N   s    #x  88**$SXX./'12 2#((; 2#((;<AdV1E		 	 		 	 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%%(81&EF"))*9+RzC Q/ $4 	
 	
 
C	"	"(A#((D(Q%
7|q W"KdSVi"WW  gaj\+
y!QxTG^$1F? 88'''!!$4SXXJba"HI33!!UG#3E7:LUGSUVZU[[]^b]cckl !!$4UG2dV2dV6"RS5?@Zqc+Z
@	
 	
7 
#4 As    L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)typesr:   r8   r+   s       rE   zip_type_and_namerJ      s,    .1%.?@.?C#I.?@@@s   'c                    / n/ n/ nU  HY  n[        UR                  UR                  5      u  pVpxUR                  U5        UR                  U5        UR                  U5        M[     [	        X5      U4$ N)r2   typer+   extendrJ   )	flat_argumentsrI   	new_namesr<   arg	new_typesr:   rB   r?   s	            rE   gen_argumentsrS      st    EIN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())r+   r   TensorSymIntScalar)r8   vals     rE   convert_return#gen_returns.<locals>.convert_return   s`    88v}}$1#c::XX&U-((XX&U+&&JrT   F)#_scaled_dot_product_flash_attention'_scaled_dot_product_efficient_attention#_scaled_dot_product_cudnn_attentionconvolution_backwardTr'   
tmp_resultz	std::get<z>(tmp_result)zif (z) { *z = z; };)r8   r   r[   strreturnrd   )	enumeratereturnsr5   r*   rM   r   r+   r,   r0   r1   unambiguous_namer6   rJ   )schemarI   r:   idxrV   r\   ret_pointer_can_be_nullrh   r+   r<   tmprvals               rE   gen_returnsrn      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::rT   z+dict[tuple[str, str, str], tuple[str, str]]declaration_definition_cachec                   U R                   R                  5       nX1U4[        ;   a  [        X1U4   $ U R                  5       (       a<  [	        / U R
                  R                  QU R
                  R                  Q5      u  pE/ nOh[	        U R
                  R                  5      u  pEU R                   R                   R                  (       a  / / 4O
[        U 5      u  pvUR                  U5        SU SU SSR                  U5       S3nU(       a  SOSn	U(       a  SSR                  U5      -   OSn
SU S	U	 U S
[        R                  " SR                  U5      S5       S[        R                  " U
S5       S3
nUU4[        X1U4'   X4$ )NzAOTITorchError aoti_torch_rB   r    r&   r!   zauto tmp_result = r   
z< {
    AOTI_TORCH_CONVERT_EXCEPTION_TO_ERROR_CODE({
        z(
z            z
        );z        z
    });
}
)r+   rh   ro   	is_out_fnrS   	argumentsoutflat_non_outflat_allinplacern   rN   jointextwrapindent)ri   devicebackend_call	func_nameargsr<   ret_assignmentsret_declarationsdeclarationrb   ret_assignments_str
definitions               rE   gen_declaration_and_definitionr      s    ,,.I 	<(,HH+Y,MNN  -Cf""CV%5%5%B%BC 
 &(,V-=-=-F-FG ((00RHk&6I 	* 	$%.vha	{!DIIdOCTTUVK)8%bJ?N$?!;;TV 		\N #	>*N; < =??.
;
< =J 	G )\!BC ""rT   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       rE   *gen_static_dispatch_backend_call_signaturer   (  sq     
)
)!&&
1C 55	%%H zzaff''))++$$NrT   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lowerr+   )r   backend_indexr   r   s       rE    gen_static_dispatch_backend_callr   8  sL     
)
)!&&
1C8@G-,,2245R7GHHrT   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$ rL   )
has_kernelstructured_delegater   CompositeExplicitAutograd&CompositeExplicitAutogradNonFunctionalCompositeImplicitAutogradr   func_group_mappingr   backend_indicesextend_aoti_c_shimr   s         rE   get_backend_index_for_aotir   A  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rT   c                |    [        XX#U5      nUc  S $ SU R                   SUR                  R                  5        S3$ )Nz#include <ATen/ops/rB   z_dispatch.h>)r   	root_namer   r   r   s         rE   get_header_for_aotir   g  sW     /,ASM
   	 #4>>"2!M4N4N4T4T4V3WWcdrT   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   r+   overload_name	namespace)r   s    rE   get_fallback_op_namer   x  s~     99>>'' >>
!DIINN//0$))..2N2N1OP q!4!4 5X>rT   c                    [        XX#U5      nUc  g U R                  nUR                  5       n[        U U5      n	 U(       a  [	        XxU	5      u  pSU
 S3$ [	        XxU	5      u  pU$ ! [
         a     g f = f)NzAOTI_TORCH_EXPORT rc   )r   r   r   r   r   r0   )r   r   r   r   headerr   r   ri   r{   r|   r   rB   r   s                rE   
gen_c_shimr     s     /,ASM YYF!F3L
;NK (}A66:6<XMA s   A& A& &
A32A3T)frozenc                  d    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S\S
'   \    SS j5       rSrg)ShimGeneratori  (dict[OperatorName, NativeFunctionsGroup]r   r   r   dict[DispatchKey, BackendIndex]r   r   r   r   c                    [        UU R                  U R                  U R                  U R                  U R
                  5      nU$ rL   )r   r   r   r   r   r   )selfr   results      rE   __call__ShimGenerator.__call__  sC    
 ##  KK##
 rT    N)r   r   re   
str | None)__name__
__module____qualname____firstlineno____annotations__r	   r   __static_attributes__r   rT   rE   r   r     sC    @@44L  
 !rT   r   c                    SR                  [        [        [        UUUUU5      U 5      5      5      nUR	                  5       nSn	U(       a	  SU	 SU S3$ SU	 SU(       a  SOS SU S	[        U5       S
U SU 3$ )Nrq   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 detailszl

#pragma once

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

#ifdef __cplusplus
extern "C" {
#endif

z,

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

#include <torch/csrc/inductor/aoti_torch/generated/zextend/r   c_shim_zf.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
z/
#endif

using namespace torch::aot_inductor;

)rx   listr   r   r   rd   )
native_functionsr   r   r   r   r   includesbodyr{   warnings
             rE   gen_aoti_c_shimr     s     99& #& !		
D !FCG 	 

   	&	 
4ASIY[3\\cdjck l L!" #
 

 
 #
 	
rT   )r8   r   r+   rd   re   z1tuple[list[str], list[str], list[str], list[str]])rI   	list[str]r:   r   re   r   )rO   zSequence[Argument]re   tuple[list[str], list[str]])ri   r   re   r   )ri   r   r{   rd   r|   rd   re   ztuple[str, str])r   z"CppSignature | DispatcherSignaturer   r   re   r   )r   r   r   r   re   rd   )r   r   r   r   r   r   r   r   r   r   re   zBackendIndex | None)r   r   r   r   r   r   r   r   r   r   re   r   )r   r   re   rd   )r   r   r   r   r   r   r   r   r   r   r   r   re   r   )r   )r   zSequence[NativeFunction]r   r   r   r   r   r   r   r   r   r   r   rd   re   rd   )=
__future__r   ry   dataclassesr   typingr   torchgen.api.typesr   torchgen.api.types.signaturesr   r   torchgen.contextr	   torchgen.modelr
   r   r   r   r   r   r   r   r   r   r   r   torchgen.utilsr   collections.abcr   rX   r   intrY   rZ   floatrd   DeviceIndexLayoutMemoryFormat
ScalarType	Generatorr,   r-   r.   r2   rJ   rS   rn   ro   r   r   r   r   r   r   r   r   r   r   r   rT   rE   <module>r      s   "  !   2 I 8    $ ( MM%
KK
JJ	
MM9
MM8
LL(
JJ
	
MM9

y
+   MM<
KK
JJ	
MM=
MM=
LL(
JJ"
*
MM=
,
(
o   MM5
KK
JJ
MM2
MM2
LL"
JJ
7
MM-
9
5
> "b
	b

b
 7b
JA
?",;` MO I N)#)#$')#7:)#)#X	+  III 	I#
#@# # 5	#
 # #L
@  5	
  " 
 @    5	 
      F $  < A
.A
@A
 A
 5	A

 A
 A
 A
 	A
rT   