diff --git a/include/torch-mlir/Dialect/Torch/IR/GeneratedTorchOps.td b/include/torch-mlir/Dialect/Torch/IR/GeneratedTorchOps.td index f951de9af795..952e48554822 100644 --- a/include/torch-mlir/Dialect/Torch/IR/GeneratedTorchOps.td +++ b/include/torch-mlir/Dialect/Torch/IR/GeneratedTorchOps.td @@ -22,7 +22,8 @@ def Torch_AtenHardtanhOp : Torch_Op<"aten.hardtanh", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::hardtanh : (Tensor, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -71,7 +72,8 @@ def Torch_AtenHardtanh_Op : Torch_Op<"aten.hardtanh_", [ def Torch_AtenEluOp : Torch_Op<"aten.elu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::elu : (Tensor, Scalar, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -122,7 +124,8 @@ def Torch_AtenElu_Op : Torch_Op<"aten.elu_", [ def Torch_AtenReluOp : Torch_Op<"aten.relu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::relu : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -167,7 +170,8 @@ def Torch_AtenRelu_Op : Torch_Op<"aten.relu_", [ def Torch_AtenRelu6Op : Torch_Op<"aten.relu6", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::relu6 : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -212,7 +216,8 @@ def Torch_AtenRelu6_Op : Torch_Op<"aten.relu6_", [ def Torch_AtenLeakyReluOp : Torch_Op<"aten.leaky_relu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::leaky_relu : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -259,7 +264,8 @@ def Torch_AtenLeakyRelu_Op : Torch_Op<"aten.leaky_relu_", [ def Torch_AtenRreluOp : Torch_Op<"aten.rrelu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::rrelu : (Tensor, Scalar, Scalar, bool, Generator?) -> (Tensor)`"; let arguments = (ins @@ -312,7 +318,8 @@ def Torch_AtenRrelu_Op : Torch_Op<"aten.rrelu_", [ def Torch_AtenRreluWithNoiseOp : Torch_Op<"aten.rrelu_with_noise", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::rrelu_with_noise : (Tensor, Tensor, Scalar, Scalar, bool, Generator?) -> (Tensor)`"; let arguments = (ins @@ -367,7 +374,8 @@ def Torch_AtenRreluWithNoise_Op : Torch_Op<"aten.rrelu_with_noise_", [ def Torch_AtenCeluOp : Torch_Op<"aten.celu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::celu : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -414,7 +422,8 @@ def Torch_AtenCelu_Op : Torch_Op<"aten.celu_", [ def Torch_AtenSeluOp : Torch_Op<"aten.selu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::selu : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -459,7 +468,8 @@ def Torch_AtenSelu_Op : Torch_Op<"aten.selu_", [ def Torch_AtenSigmoidOp : Torch_Op<"aten.sigmoid", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sigmoid : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -504,7 +514,8 @@ def Torch_AtenSigmoid_Op : Torch_Op<"aten.sigmoid_", [ def Torch_AtenSinhOp : Torch_Op<"aten.sinh", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sinh : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -549,7 +560,8 @@ def Torch_AtenSinh_Op : Torch_Op<"aten.sinh_", [ def Torch_AtenSgnOp : Torch_Op<"aten.sgn", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sgn : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -594,7 +606,8 @@ def Torch_AtenSgn_Op : Torch_Op<"aten.sgn_", [ def Torch_AtenHardsigmoidOp : Torch_Op<"aten.hardsigmoid", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::hardsigmoid : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -639,7 +652,8 @@ def Torch_AtenHardsigmoid_Op : Torch_Op<"aten.hardsigmoid_", [ def Torch_AtenHardswishOp : Torch_Op<"aten.hardswish", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::hardswish : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -684,7 +698,8 @@ def Torch_AtenHardswish_Op : Torch_Op<"aten.hardswish_", [ def Torch_AtenErfOp : Torch_Op<"aten.erf", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::erf : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -729,7 +744,8 @@ def Torch_AtenErf_Op : Torch_Op<"aten.erf_", [ def Torch_AtenErfinvOp : Torch_Op<"aten.erfinv", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::erfinv : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -774,7 +790,8 @@ def Torch_AtenErfinv_Op : Torch_Op<"aten.erfinv_", [ def Torch_AtenSiluOp : Torch_Op<"aten.silu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::silu : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -819,7 +836,8 @@ def Torch_AtenSilu_Op : Torch_Op<"aten.silu_", [ def Torch_AtenSinOp : Torch_Op<"aten.sin", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sin : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -864,7 +882,8 @@ def Torch_AtenSin_Op : Torch_Op<"aten.sin_", [ def Torch_AtenAsinOp : Torch_Op<"aten.asin", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::asin : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -909,7 +928,8 @@ def Torch_AtenAsin_Op : Torch_Op<"aten.asin_", [ def Torch_AtenAsinhOp : Torch_Op<"aten.asinh", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::asinh : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -954,7 +974,8 @@ def Torch_AtenAsinh_Op : Torch_Op<"aten.asinh_", [ def Torch_AtenExpOp : Torch_Op<"aten.exp", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::exp : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -999,7 +1020,8 @@ def Torch_AtenExp_Op : Torch_Op<"aten.exp_", [ def Torch_AtenExp2Op : Torch_Op<"aten.exp2", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::exp2 : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1044,7 +1066,8 @@ def Torch_AtenExp2_Op : Torch_Op<"aten.exp2_", [ def Torch_AtenExpm1Op : Torch_Op<"aten.expm1", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::expm1 : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1089,7 +1112,8 @@ def Torch_AtenExpm1_Op : Torch_Op<"aten.expm1_", [ def Torch_AtenCosOp : Torch_Op<"aten.cos", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::cos : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1134,7 +1158,8 @@ def Torch_AtenCos_Op : Torch_Op<"aten.cos_", [ def Torch_AtenCoshOp : Torch_Op<"aten.cosh", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::cosh : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1179,7 +1204,8 @@ def Torch_AtenCosh_Op : Torch_Op<"aten.cosh_", [ def Torch_AtenAcosOp : Torch_Op<"aten.acos", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::acos : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1224,7 +1250,8 @@ def Torch_AtenAcos_Op : Torch_Op<"aten.acos_", [ def Torch_AtenAcoshOp : Torch_Op<"aten.acosh", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::acosh : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1269,7 +1296,8 @@ def Torch_AtenAcosh_Op : Torch_Op<"aten.acosh_", [ def Torch_AtenTanOp : Torch_Op<"aten.tan", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tan : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1314,7 +1342,8 @@ def Torch_AtenTan_Op : Torch_Op<"aten.tan_", [ def Torch_AtenTanhOp : Torch_Op<"aten.tanh", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tanh : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1359,7 +1388,8 @@ def Torch_AtenTanh_Op : Torch_Op<"aten.tanh_", [ def Torch_AtenAtanOp : Torch_Op<"aten.atan", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::atan : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1404,7 +1434,8 @@ def Torch_AtenAtan_Op : Torch_Op<"aten.atan_", [ def Torch_AtenAtanhOp : Torch_Op<"aten.atanh", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::atanh : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1449,7 +1480,8 @@ def Torch_AtenAtanh_Op : Torch_Op<"aten.atanh_", [ def Torch_AtenAtan2Op : Torch_Op<"aten.atan2", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::atan2 : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -1496,7 +1528,8 @@ def Torch_AtenAtan2_Op : Torch_Op<"aten.atan2_", [ def Torch_AtenNegOp : Torch_Op<"aten.neg", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::neg : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1541,7 +1574,8 @@ def Torch_AtenNeg_Op : Torch_Op<"aten.neg_", [ def Torch_AtenFracOp : Torch_Op<"aten.frac", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::frac : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1586,7 +1620,8 @@ def Torch_AtenFrac_Op : Torch_Op<"aten.frac_", [ def Torch_AtenBitwiseNotOp : Torch_Op<"aten.bitwise_not", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bitwise_not : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1631,7 +1666,8 @@ def Torch_AtenBitwiseNot_Op : Torch_Op<"aten.bitwise_not_", [ def Torch_AtenDivTensorOp : Torch_Op<"aten.div.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::div.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -1678,7 +1714,8 @@ def Torch_AtenDiv_TensorOp : Torch_Op<"aten.div_.Tensor", [ def Torch_AtenLogicalOrOp : Torch_Op<"aten.logical_or", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::logical_or : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -1725,7 +1762,8 @@ def Torch_AtenLogicalOr_Op : Torch_Op<"aten.logical_or_", [ def Torch_AtenLogicalAndOp : Torch_Op<"aten.logical_and", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::logical_and : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -1772,7 +1810,8 @@ def Torch_AtenLogicalAnd_Op : Torch_Op<"aten.logical_and_", [ def Torch_AtenLogicalXorOp : Torch_Op<"aten.logical_xor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::logical_xor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -1819,7 +1858,8 @@ def Torch_AtenLogicalXor_Op : Torch_Op<"aten.logical_xor_", [ def Torch_AtenLogicalNotOp : Torch_Op<"aten.logical_not", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::logical_not : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -1864,7 +1904,8 @@ def Torch_AtenLogicalNot_Op : Torch_Op<"aten.logical_not_", [ def Torch_AtenLerpTensorOp : Torch_Op<"aten.lerp.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::lerp.Tensor : (Tensor, Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -1913,7 +1954,8 @@ def Torch_AtenLerp_TensorOp : Torch_Op<"aten.lerp_.Tensor", [ def Torch_AtenLerpScalarOp : Torch_Op<"aten.lerp.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::lerp.Scalar : (Tensor, Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -1962,7 +2004,8 @@ def Torch_AtenLerp_ScalarOp : Torch_Op<"aten.lerp_.Scalar", [ def Torch_AtenGtTensorOp : Torch_Op<"aten.gt.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::gt.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -2009,7 +2052,8 @@ def Torch_AtenGt_TensorOp : Torch_Op<"aten.gt_.Tensor", [ def Torch_AtenGeTensorOp : Torch_Op<"aten.ge.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ge.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -2056,7 +2100,8 @@ def Torch_AtenGe_TensorOp : Torch_Op<"aten.ge_.Tensor", [ def Torch_AtenLtTensorOp : Torch_Op<"aten.lt.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::lt.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -2103,7 +2148,8 @@ def Torch_AtenLt_TensorOp : Torch_Op<"aten.lt_.Tensor", [ def Torch_AtenLeTensorOp : Torch_Op<"aten.le.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::le.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -2150,7 +2196,8 @@ def Torch_AtenLe_TensorOp : Torch_Op<"aten.le_.Tensor", [ def Torch_AtenNeTensorOp : Torch_Op<"aten.ne.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ne.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -2197,7 +2244,8 @@ def Torch_AtenNe_TensorOp : Torch_Op<"aten.ne_.Tensor", [ def Torch_AtenDivScalarOp : Torch_Op<"aten.div.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::div.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -2244,7 +2292,8 @@ def Torch_AtenDiv_ScalarOp : Torch_Op<"aten.div_.Scalar", [ def Torch_AtenFmodScalarOp : Torch_Op<"aten.fmod.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fmod.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -2291,7 +2340,8 @@ def Torch_AtenFmod_ScalarOp : Torch_Op<"aten.fmod_.Scalar", [ def Torch_AtenMaskedFillScalarOp : Torch_Op<"aten.masked_fill.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::masked_fill.Scalar : (Tensor, Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -2340,7 +2390,8 @@ def Torch_AtenMaskedFill_ScalarOp : Torch_Op<"aten.masked_fill_.Scalar", [ def Torch_AtenClampOp : Torch_Op<"aten.clamp", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::clamp : (Tensor, Scalar?, Scalar?) -> (Tensor)`"; let arguments = (ins @@ -2389,7 +2440,8 @@ def Torch_AtenClamp_Op : Torch_Op<"aten.clamp_", [ def Torch_AtenClampTensorOp : Torch_Op<"aten.clamp.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::clamp.Tensor : (Tensor, Tensor?, Tensor?) -> (Tensor)`"; let arguments = (ins @@ -2438,7 +2490,8 @@ def Torch_AtenClamp_TensorOp : Torch_Op<"aten.clamp_.Tensor", [ def Torch_AtenClampMinOp : Torch_Op<"aten.clamp_min", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::clamp_min : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -2485,7 +2538,8 @@ def Torch_AtenClampMin_Op : Torch_Op<"aten.clamp_min_", [ def Torch_AtenClampMinTensorOp : Torch_Op<"aten.clamp_min.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::clamp_min.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -2532,7 +2586,8 @@ def Torch_AtenClampMin_TensorOp : Torch_Op<"aten.clamp_min_.Tensor", [ def Torch_AtenClampMaxOp : Torch_Op<"aten.clamp_max", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::clamp_max : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -2579,7 +2634,8 @@ def Torch_AtenClampMax_Op : Torch_Op<"aten.clamp_max_", [ def Torch_AtenClampMaxTensorOp : Torch_Op<"aten.clamp_max.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::clamp_max.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -2626,7 +2682,8 @@ def Torch_AtenClampMax_TensorOp : Torch_Op<"aten.clamp_max_.Tensor", [ def Torch_AtenLog2Op : Torch_Op<"aten.log2", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::log2 : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -2671,7 +2728,8 @@ def Torch_AtenLog2_Op : Torch_Op<"aten.log2_", [ def Torch_AtenLog10Op : Torch_Op<"aten.log10", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::log10 : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -2716,7 +2774,8 @@ def Torch_AtenLog10_Op : Torch_Op<"aten.log10_", [ def Torch_AtenSqrtOp : Torch_Op<"aten.sqrt", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sqrt : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -2761,7 +2820,8 @@ def Torch_AtenSqrt_Op : Torch_Op<"aten.sqrt_", [ def Torch_AtenLog1pOp : Torch_Op<"aten.log1p", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::log1p : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -2806,7 +2866,8 @@ def Torch_AtenLog1p_Op : Torch_Op<"aten.log1p_", [ def Torch_AtenLogitOp : Torch_Op<"aten.logit", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::logit : (Tensor, float?) -> (Tensor)`"; let arguments = (ins @@ -2853,7 +2914,8 @@ def Torch_AtenLogit_Op : Torch_Op<"aten.logit_", [ def Torch_AtenRsqrtOp : Torch_Op<"aten.rsqrt", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::rsqrt : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -2898,7 +2960,8 @@ def Torch_AtenRsqrt_Op : Torch_Op<"aten.rsqrt_", [ def Torch_AtenAbsOp : Torch_Op<"aten.abs", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::abs : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -2943,7 +3006,8 @@ def Torch_AtenAbs_Op : Torch_Op<"aten.abs_", [ def Torch_AtenReciprocalOp : Torch_Op<"aten.reciprocal", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::reciprocal : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -2988,7 +3052,8 @@ def Torch_AtenReciprocal_Op : Torch_Op<"aten.reciprocal_", [ def Torch_AtenBitwiseAndTensorOp : Torch_Op<"aten.bitwise_and.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bitwise_and.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -3035,7 +3100,8 @@ def Torch_AtenBitwiseAnd_TensorOp : Torch_Op<"aten.bitwise_and_.Tensor", [ def Torch_AtenBitwiseAndScalarOp : Torch_Op<"aten.bitwise_and.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bitwise_and.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -3082,7 +3148,8 @@ def Torch_AtenBitwiseAnd_ScalarOp : Torch_Op<"aten.bitwise_and_.Scalar", [ def Torch_AtenBitwiseOrTensorOp : Torch_Op<"aten.bitwise_or.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bitwise_or.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -3129,7 +3196,8 @@ def Torch_AtenBitwiseOr_TensorOp : Torch_Op<"aten.bitwise_or_.Tensor", [ def Torch_AtenBitwiseXorTensorOp : Torch_Op<"aten.bitwise_xor.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bitwise_xor.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -3176,7 +3244,8 @@ def Torch_AtenBitwiseXor_TensorOp : Torch_Op<"aten.bitwise_xor_.Tensor", [ def Torch_AtenBitwiseLeftShiftTensorOp : Torch_Op<"aten.bitwise_left_shift.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bitwise_left_shift.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -3223,7 +3292,8 @@ def Torch_AtenBitwiseLeftShift_TensorOp : Torch_Op<"aten.bitwise_left_shift_.Ten def Torch_AtenBitwiseRightShiftTensorOp : Torch_Op<"aten.bitwise_right_shift.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bitwise_right_shift.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -3270,7 +3340,8 @@ def Torch_AtenBitwiseRightShift_TensorOp : Torch_Op<"aten.bitwise_right_shift_.T def Torch_AtenThresholdOp : Torch_Op<"aten.threshold", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::threshold : (Tensor, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -3319,7 +3390,8 @@ def Torch_AtenThreshold_Op : Torch_Op<"aten.threshold_", [ def Torch_AtenSquareOp : Torch_Op<"aten.square", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::square : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -3364,7 +3436,8 @@ def Torch_AtenSquare_Op : Torch_Op<"aten.square_", [ def Torch_AtenZeroOp : Torch_Op<"aten.zero", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::zero : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -3409,7 +3482,8 @@ def Torch_AtenZero_Op : Torch_Op<"aten.zero_", [ def Torch_AtenFillScalarOp : Torch_Op<"aten.fill.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fill.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -3456,7 +3530,8 @@ def Torch_AtenFill_ScalarOp : Torch_Op<"aten.fill_.Scalar", [ def Torch_AtenFillTensorOp : Torch_Op<"aten.fill.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fill.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -3503,7 +3578,8 @@ def Torch_AtenFill_TensorOp : Torch_Op<"aten.fill_.Tensor", [ def Torch_AtenCopysignTensorOp : Torch_Op<"aten.copysign.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::copysign.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -3549,7 +3625,8 @@ def Torch_AtenCopysign_TensorOp : Torch_Op<"aten.copysign_.Tensor", [ def Torch_AtenUnsqueezeOp : Torch_Op<"aten.unsqueeze", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::unsqueeze : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -3597,7 +3674,8 @@ def Torch_AtenUnsqueeze_Op : Torch_Op<"aten.unsqueeze_", [ def Torch_AtenDivTensorModeOp : Torch_Op<"aten.div.Tensor_mode", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::div.Tensor_mode : (Tensor, Tensor, str?) -> (Tensor)`"; let arguments = (ins @@ -3648,7 +3726,8 @@ def Torch_AtenDiv_TensorModeOp : Torch_Op<"aten.div_.Tensor_mode", [ def Torch_AtenDivScalarModeOp : Torch_Op<"aten.div.Scalar_mode", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::div.Scalar_mode : (Tensor, Scalar, str?) -> (Tensor)`"; let arguments = (ins @@ -3698,7 +3777,8 @@ def Torch_AtenDiv_ScalarModeOp : Torch_Op<"aten.div_.Scalar_mode", [ def Torch_AtenMulTensorOp : Torch_Op<"aten.mul.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mul.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -3747,7 +3827,8 @@ def Torch_AtenMul_TensorOp : Torch_Op<"aten.mul_.Tensor", [ def Torch_AtenAddTensorOp : Torch_Op<"aten.add.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::add.Tensor : (Tensor, Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -3798,7 +3879,8 @@ def Torch_AtenAdd_TensorOp : Torch_Op<"aten.add_.Tensor", [ def Torch_AtenSubTensorOp : Torch_Op<"aten.sub.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sub.Tensor : (Tensor, Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -3849,7 +3931,8 @@ def Torch_AtenSub_TensorOp : Torch_Op<"aten.sub_.Tensor", [ def Torch_AtenAddScalarOp : Torch_Op<"aten.add.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::add.Scalar : (Tensor, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -3900,7 +3983,8 @@ def Torch_AtenAdd_ScalarOp : Torch_Op<"aten.add_.Scalar", [ def Torch_AtenSubScalarOp : Torch_Op<"aten.sub.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sub.Scalar : (Tensor, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -3951,7 +4035,8 @@ def Torch_AtenSub_ScalarOp : Torch_Op<"aten.sub_.Scalar", [ def Torch_AtenMulScalarOp : Torch_Op<"aten.mul.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mul.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -4000,7 +4085,8 @@ def Torch_AtenMul_ScalarOp : Torch_Op<"aten.mul_.Scalar", [ def Torch_AtenLdexpTensorOp : Torch_Op<"aten.ldexp.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ldexp.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -4024,7 +4110,8 @@ def Torch_AtenLdexpTensorOp : Torch_Op<"aten.ldexp.Tensor", [ def Torch_AtenSignbitOp : Torch_Op<"aten.signbit", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::signbit : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -4047,7 +4134,8 @@ def Torch_AtenSignbitOp : Torch_Op<"aten.signbit", [ def Torch_AtenEqTensorOp : Torch_Op<"aten.eq.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::eq.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -4095,7 +4183,8 @@ def Torch_AtenEq_TensorOp : Torch_Op<"aten.eq_.Tensor", [ def Torch_AtenLeScalarOp : Torch_Op<"aten.le.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::le.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -4143,7 +4232,8 @@ def Torch_AtenLe_ScalarOp : Torch_Op<"aten.le_.Scalar", [ def Torch_AtenLtScalarOp : Torch_Op<"aten.lt.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::lt.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -4191,7 +4281,8 @@ def Torch_AtenLt_ScalarOp : Torch_Op<"aten.lt_.Scalar", [ def Torch_AtenGtScalarOp : Torch_Op<"aten.gt.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::gt.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -4239,7 +4330,8 @@ def Torch_AtenGt_ScalarOp : Torch_Op<"aten.gt_.Scalar", [ def Torch_AtenGeScalarOp : Torch_Op<"aten.ge.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ge.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -4287,7 +4379,8 @@ def Torch_AtenGe_ScalarOp : Torch_Op<"aten.ge_.Scalar", [ def Torch_AtenEqScalarOp : Torch_Op<"aten.eq.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::eq.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -4335,7 +4428,8 @@ def Torch_AtenEq_ScalarOp : Torch_Op<"aten.eq_.Scalar", [ def Torch_AtenNeScalarOp : Torch_Op<"aten.ne.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ne.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -4383,7 +4477,8 @@ def Torch_AtenNe_ScalarOp : Torch_Op<"aten.ne_.Scalar", [ def Torch_AtenLogOp : Torch_Op<"aten.log", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::log : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -4429,7 +4524,8 @@ def Torch_AtenLog_Op : Torch_Op<"aten.log_", [ def Torch_AtenFloorOp : Torch_Op<"aten.floor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::floor : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -4475,7 +4571,8 @@ def Torch_AtenFloor_Op : Torch_Op<"aten.floor_", [ def Torch_AtenCeilOp : Torch_Op<"aten.ceil", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ceil : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -4521,7 +4618,8 @@ def Torch_AtenCeil_Op : Torch_Op<"aten.ceil_", [ def Torch_AtenRoundOp : Torch_Op<"aten.round", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::round : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -4567,7 +4665,8 @@ def Torch_AtenRound_Op : Torch_Op<"aten.round_", [ def Torch_AtenTruncOp : Torch_Op<"aten.trunc", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::trunc : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -4613,7 +4712,8 @@ def Torch_AtenTrunc_Op : Torch_Op<"aten.trunc_", [ def Torch_AtenSignOp : Torch_Op<"aten.sign", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sign : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -4659,7 +4759,8 @@ def Torch_AtenSign_Op : Torch_Op<"aten.sign_", [ def Torch_AtenMaskedFillTensorOp : Torch_Op<"aten.masked_fill.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::masked_fill.Tensor : (Tensor, Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -4709,7 +4810,8 @@ def Torch_AtenMaskedFill_TensorOp : Torch_Op<"aten.masked_fill_.Tensor", [ def Torch_AtenAddcmulOp : Torch_Op<"aten.addcmul", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::addcmul : (Tensor, Tensor, Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -4760,7 +4862,8 @@ def Torch_AtenAddcmul_Op : Torch_Op<"aten.addcmul_", [ def Torch_AtenAddcdivOp : Torch_Op<"aten.addcdiv", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::addcdiv : (Tensor, Tensor, Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -4811,7 +4914,8 @@ def Torch_AtenAddcdiv_Op : Torch_Op<"aten.addcdiv_", [ def Torch_AtenFakeQuantizePerTensorAffineOp : Torch_Op<"aten.fake_quantize_per_tensor_affine", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fake_quantize_per_tensor_affine : (Tensor, float, int, int, int) -> (Tensor)`"; let arguments = (ins @@ -4838,7 +4942,8 @@ def Torch_AtenFakeQuantizePerTensorAffineOp : Torch_Op<"aten.fake_quantize_per_t def Torch_AtenFakeQuantizePerTensorAffineCachemaskOp : Torch_Op<"aten.fake_quantize_per_tensor_affine_cachemask", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fake_quantize_per_tensor_affine_cachemask : (Tensor, float, int, int, int) -> (Tensor, Tensor)`"; let arguments = (ins @@ -4866,7 +4971,8 @@ def Torch_AtenFakeQuantizePerTensorAffineCachemaskOp : Torch_Op<"aten.fake_quant def Torch_AtenFakeQuantizePerTensorAffineTensorQparamsOp : Torch_Op<"aten.fake_quantize_per_tensor_affine.tensor_qparams", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fake_quantize_per_tensor_affine.tensor_qparams : (Tensor, Tensor, Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -4893,7 +4999,8 @@ def Torch_AtenFakeQuantizePerTensorAffineTensorQparamsOp : Torch_Op<"aten.fake_q def Torch_Aten_FakeQuantizePerTensorAffineCachemaskTensorQparamsOp : Torch_Op<"aten._fake_quantize_per_tensor_affine_cachemask_tensor_qparams", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_fake_quantize_per_tensor_affine_cachemask_tensor_qparams : (Tensor, Tensor, Tensor, Tensor, int, int) -> (Tensor, Tensor)`"; let arguments = (ins @@ -4922,7 +5029,8 @@ def Torch_Aten_FakeQuantizePerTensorAffineCachemaskTensorQparamsOp : Torch_Op<"a def Torch_AtenFakeQuantizePerChannelAffineOp : Torch_Op<"aten.fake_quantize_per_channel_affine", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fake_quantize_per_channel_affine : (Tensor, Tensor, Tensor, int, int, int) -> (Tensor)`"; let arguments = (ins @@ -4950,7 +5058,8 @@ def Torch_AtenFakeQuantizePerChannelAffineOp : Torch_Op<"aten.fake_quantize_per_ def Torch_AtenFakeQuantizePerChannelAffineCachemaskOp : Torch_Op<"aten.fake_quantize_per_channel_affine_cachemask", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fake_quantize_per_channel_affine_cachemask : (Tensor, Tensor, Tensor, int, int, int) -> (Tensor, Tensor)`"; let arguments = (ins @@ -4979,7 +5088,8 @@ def Torch_AtenFakeQuantizePerChannelAffineCachemaskOp : Torch_Op<"aten.fake_quan def Torch_AtenIsfiniteOp : Torch_Op<"aten.isfinite", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::isfinite : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -5002,7 +5112,8 @@ def Torch_AtenIsfiniteOp : Torch_Op<"aten.isfinite", [ def Torch_AtenMaximumOp : Torch_Op<"aten.maximum", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::maximum : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5026,7 +5137,8 @@ def Torch_AtenMaximumOp : Torch_Op<"aten.maximum", [ def Torch_AtenMinimumOp : Torch_Op<"aten.minimum", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::minimum : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5050,7 +5162,8 @@ def Torch_AtenMinimumOp : Torch_Op<"aten.minimum", [ def Torch_AtenFmaxOp : Torch_Op<"aten.fmax", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fmax : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5074,7 +5187,8 @@ def Torch_AtenFmaxOp : Torch_Op<"aten.fmax", [ def Torch_AtenFminOp : Torch_Op<"aten.fmin", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fmin : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5098,7 +5212,8 @@ def Torch_AtenFminOp : Torch_Op<"aten.fmin", [ def Torch_AtenMishOp : Torch_Op<"aten.mish", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mish : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -5121,7 +5236,8 @@ def Torch_AtenMishOp : Torch_Op<"aten.mish", [ def Torch_AtenXlogyTensorOp : Torch_Op<"aten.xlogy.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::xlogy.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5145,7 +5261,8 @@ def Torch_AtenXlogyTensorOp : Torch_Op<"aten.xlogy.Tensor", [ def Torch_AtenRsubScalarOp : Torch_Op<"aten.rsub.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::rsub.Scalar : (Tensor, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -5172,7 +5289,8 @@ def Torch_AtenRsubScalarOp : Torch_Op<"aten.rsub.Scalar", [ def Torch_AtenGeluOp : Torch_Op<"aten.gelu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::gelu : (Tensor, str) -> (Tensor)`"; let arguments = (ins @@ -5196,7 +5314,8 @@ def Torch_AtenGeluOp : Torch_Op<"aten.gelu", [ def Torch_AtenPowTensorScalarOp : Torch_Op<"aten.pow.Tensor_Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::pow.Tensor_Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -5220,7 +5339,8 @@ def Torch_AtenPowTensorScalarOp : Torch_Op<"aten.pow.Tensor_Scalar", [ def Torch_AtenPowTensorTensorOp : Torch_Op<"aten.pow.Tensor_Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::pow.Tensor_Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5244,7 +5364,8 @@ def Torch_AtenPowTensorTensorOp : Torch_Op<"aten.pow.Tensor_Tensor", [ def Torch_AtenPowScalarOp : Torch_Op<"aten.pow.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::pow.Scalar : (Scalar, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5268,7 +5389,8 @@ def Torch_AtenPowScalarOp : Torch_Op<"aten.pow.Scalar", [ def Torch_AtenFloatPowerTensorTensorOp : Torch_Op<"aten.float_power.Tensor_Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::float_power.Tensor_Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5292,7 +5414,8 @@ def Torch_AtenFloatPowerTensorTensorOp : Torch_Op<"aten.float_power.Tensor_Tenso def Torch_AtenThresholdBackwardOp : Torch_Op<"aten.threshold_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::threshold_backward : (Tensor, Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -5317,7 +5440,8 @@ def Torch_AtenThresholdBackwardOp : Torch_Op<"aten.threshold_backward", [ def Torch_AtenFloorDivideOp : Torch_Op<"aten.floor_divide", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::floor_divide : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5341,7 +5465,8 @@ def Torch_AtenFloorDivideOp : Torch_Op<"aten.floor_divide", [ def Torch_AtenSoftplusOp : Torch_Op<"aten.softplus", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::softplus : (Tensor, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -5366,7 +5491,8 @@ def Torch_AtenSoftplusOp : Torch_Op<"aten.softplus", [ def Torch_AtenPreluOp : Torch_Op<"aten.prelu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::prelu : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5390,7 +5516,8 @@ def Torch_AtenPreluOp : Torch_Op<"aten.prelu", [ def Torch_AtenRad2degOp : Torch_Op<"aten.rad2deg", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::rad2deg : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -5413,7 +5540,8 @@ def Torch_AtenRad2degOp : Torch_Op<"aten.rad2deg", [ def Torch_AtenComplexOp : Torch_Op<"aten.complex", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::complex : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5436,7 +5564,8 @@ def Torch_AtenComplexOp : Torch_Op<"aten.complex", [ def Torch_AtenRealOp : Torch_Op<"aten.real", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::real : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -5458,7 +5587,8 @@ def Torch_AtenRealOp : Torch_Op<"aten.real", [ def Torch_AtenImagOp : Torch_Op<"aten.imag", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::imag : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -5480,7 +5610,8 @@ def Torch_AtenImagOp : Torch_Op<"aten.imag", [ def Torch_AtenViewAsComplexOp : Torch_Op<"aten.view_as_complex", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::view_as_complex : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -5502,7 +5633,8 @@ def Torch_AtenViewAsComplexOp : Torch_Op<"aten.view_as_complex", [ def Torch_AtenViewAsRealOp : Torch_Op<"aten.view_as_real", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::view_as_real : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -5525,7 +5657,8 @@ def Torch_AtenViewAsRealOp : Torch_Op<"aten.view_as_real", [ def Torch_AtenIscloseOp : Torch_Op<"aten.isclose", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::isclose : (Tensor, Tensor, float, float, bool) -> (Tensor)`"; let arguments = (ins @@ -5552,7 +5685,8 @@ def Torch_AtenIscloseOp : Torch_Op<"aten.isclose", [ def Torch_AtenGluOp : Torch_Op<"aten.glu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::glu : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -5576,7 +5710,8 @@ def Torch_AtenGluOp : Torch_Op<"aten.glu", [ def Torch_AtenLogSigmoidOp : Torch_Op<"aten.log_sigmoid", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::log_sigmoid : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -5599,7 +5734,8 @@ def Torch_AtenLogSigmoidOp : Torch_Op<"aten.log_sigmoid", [ def Torch_AtenHardshrinkOp : Torch_Op<"aten.hardshrink", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::hardshrink : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -5623,7 +5759,8 @@ def Torch_AtenHardshrinkOp : Torch_Op<"aten.hardshrink", [ def Torch_AtenSoftshrinkOp : Torch_Op<"aten.softshrink", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::softshrink : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -5647,7 +5784,8 @@ def Torch_AtenSoftshrinkOp : Torch_Op<"aten.softshrink", [ def Torch_AtenPolarOp : Torch_Op<"aten.polar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::polar : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -5671,7 +5809,8 @@ def Torch_AtenPolarOp : Torch_Op<"aten.polar", [ def Torch_AtenUnbindCopyIntOp : Torch_Op<"aten.unbind_copy.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::unbind_copy.int : (Tensor, int) -> (Tensor[])`"; let arguments = (ins @@ -5695,7 +5834,8 @@ def Torch_AtenUnbindCopyIntOp : Torch_Op<"aten.unbind_copy.int", [ def Torch_AtenSplitCopyTensorOp : Torch_Op<"aten.split_copy.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::split_copy.Tensor : (Tensor, int, int) -> (Tensor[])`"; let arguments = (ins @@ -5720,7 +5860,8 @@ def Torch_AtenSplitCopyTensorOp : Torch_Op<"aten.split_copy.Tensor", [ def Torch_AtenSplitWithSizesCopyOp : Torch_Op<"aten.split_with_sizes_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::split_with_sizes_copy : (Tensor, int[], int) -> (Tensor[])`"; let arguments = (ins @@ -5745,7 +5886,8 @@ def Torch_AtenSplitWithSizesCopyOp : Torch_Op<"aten.split_with_sizes_copy", [ def Torch_AtenUniformOp : Torch_Op<"aten.uniform", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::uniform : (Tensor, float, float, Generator?) -> (Tensor)`"; let arguments = (ins @@ -5796,7 +5938,8 @@ def Torch_AtenUniform_Op : Torch_Op<"aten.uniform_", [ def Torch_AtenRandLikeOp : Torch_Op<"aten.rand_like", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::rand_like : (Tensor, int?, int?, Device?, bool?, int?) -> (Tensor)`"; let arguments = (ins @@ -5824,7 +5967,8 @@ def Torch_AtenRandLikeOp : Torch_Op<"aten.rand_like", [ def Torch_AtenRandOp : Torch_Op<"aten.rand", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::rand : (int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -5851,7 +5995,8 @@ def Torch_AtenRandOp : Torch_Op<"aten.rand", [ def Torch_AtenBernoulliOp : Torch_Op<"aten.bernoulli", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bernoulli : (Tensor, Generator?) -> (Tensor)`"; let arguments = (ins @@ -5898,7 +6043,8 @@ def Torch_AtenBernoulli_FloatOp : Torch_Op<"aten.bernoulli_.float", [ def Torch_AtenBernoulliPOp : Torch_Op<"aten.bernoulli.p", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bernoulli.p : (Tensor, float, Generator?) -> (Tensor)`"; let arguments = (ins @@ -5923,7 +6069,8 @@ def Torch_AtenBernoulliPOp : Torch_Op<"aten.bernoulli.p", [ def Torch_AtenExponentialOp : Torch_Op<"aten.exponential", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::exponential : (Tensor, float, Generator?) -> (Tensor)`"; let arguments = (ins @@ -5948,7 +6095,8 @@ def Torch_AtenExponentialOp : Torch_Op<"aten.exponential", [ def Torch_AtenMultinomialOp : Torch_Op<"aten.multinomial", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::multinomial : (Tensor, int, bool, Generator?) -> (Tensor)`"; let arguments = (ins @@ -5974,7 +6122,8 @@ def Torch_AtenMultinomialOp : Torch_Op<"aten.multinomial", [ def Torch_AtenRandintLowOp : Torch_Op<"aten.randint.low", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::randint.low : (int, int, int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -6003,7 +6152,8 @@ def Torch_AtenRandintLowOp : Torch_Op<"aten.randint.low", [ def Torch_AtenRandintOp : Torch_Op<"aten.randint", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::randint : (int, int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -6031,7 +6181,8 @@ def Torch_AtenRandintOp : Torch_Op<"aten.randint", [ def Torch_AtenBernoulliTensorOp : Torch_Op<"aten.bernoulli.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bernoulli.Tensor : (Tensor, Tensor, Generator?) -> (Tensor)`"; let arguments = (ins @@ -6080,7 +6231,8 @@ def Torch_AtenBernoulli_TensorOp : Torch_Op<"aten.bernoulli_.Tensor", [ def Torch_AtenRandnOp : Torch_Op<"aten.randn", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::randn : (int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -6107,7 +6259,8 @@ def Torch_AtenRandnOp : Torch_Op<"aten.randn", [ def Torch_AtenRandnGeneratorOp : Torch_Op<"aten.randn.generator", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::randn.generator : (int[], Generator?, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -6135,7 +6288,8 @@ def Torch_AtenRandnGeneratorOp : Torch_Op<"aten.randn.generator", [ def Torch_AtenRandnLikeOp : Torch_Op<"aten.randn_like", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::randn_like : (Tensor, int?, int?, Device?, bool?, int?) -> (Tensor)`"; let arguments = (ins @@ -6163,7 +6317,8 @@ def Torch_AtenRandnLikeOp : Torch_Op<"aten.randn_like", [ def Torch_AtenRandomOp : Torch_Op<"aten.random", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::random : (Tensor, Generator?) -> (Tensor)`"; let arguments = (ins @@ -6187,7 +6342,8 @@ def Torch_AtenRandomOp : Torch_Op<"aten.random", [ def Torch_AtenRandomFromOp : Torch_Op<"aten.random.from", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::random.from : (Tensor, int, int?, Generator?) -> (Tensor)`"; let arguments = (ins @@ -6213,7 +6369,8 @@ def Torch_AtenRandomFromOp : Torch_Op<"aten.random.from", [ def Torch_AtenTriuOp : Torch_Op<"aten.triu", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::triu : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -6260,7 +6417,8 @@ def Torch_AtenTriu_Op : Torch_Op<"aten.triu_", [ def Torch_AtenTrilOp : Torch_Op<"aten.tril", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tril : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -6307,7 +6465,8 @@ def Torch_AtenTril_Op : Torch_Op<"aten.tril_", [ def Torch_AtenIndexPutOp : Torch_Op<"aten.index_put", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::index_put : (Tensor, Tensor?[], Tensor, bool) -> (Tensor)`"; let arguments = (ins @@ -6358,7 +6517,8 @@ def Torch_AtenIndexPut_Op : Torch_Op<"aten.index_put_", [ def Torch_AtenIndexPutHackedTwinOp : Torch_Op<"aten.index_put.hacked_twin", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::index_put.hacked_twin : (Tensor, Tensor[], Tensor, bool) -> (Tensor)`"; let arguments = (ins @@ -6409,7 +6569,8 @@ def Torch_AtenIndexPut_HackedTwinOp : Torch_Op<"aten.index_put_.hacked_twin", [ def Torch_Aten_UnsafeIndexPutHackedTwinOp : Torch_Op<"aten._unsafe_index_put.hacked_twin", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_unsafe_index_put.hacked_twin : (Tensor, Tensor[], Tensor, bool) -> (Tensor)`"; let arguments = (ins @@ -6435,7 +6596,8 @@ def Torch_Aten_UnsafeIndexPutHackedTwinOp : Torch_Op<"aten._unsafe_index_put.hac def Torch_AtenLinearOp : Torch_Op<"aten.linear", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::linear : (Tensor, Tensor, Tensor?) -> (Tensor)`"; let arguments = (ins @@ -6460,7 +6622,8 @@ def Torch_AtenLinearOp : Torch_Op<"aten.linear", [ def Torch_AtenMmOp : Torch_Op<"aten.mm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mm : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -6484,7 +6647,8 @@ def Torch_AtenMmOp : Torch_Op<"aten.mm", [ def Torch_Aten_IntMmOp : Torch_Op<"aten._int_mm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_int_mm : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -6508,7 +6672,8 @@ def Torch_Aten_IntMmOp : Torch_Op<"aten._int_mm", [ def Torch_AtenAddmmOp : Torch_Op<"aten.addmm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::addmm : (Tensor, Tensor, Tensor, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -6535,7 +6700,8 @@ def Torch_AtenAddmmOp : Torch_Op<"aten.addmm", [ def Torch_AtenMatmulOp : Torch_Op<"aten.matmul", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::matmul : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -6559,7 +6725,8 @@ def Torch_AtenMatmulOp : Torch_Op<"aten.matmul", [ def Torch_AtenMvOp : Torch_Op<"aten.mv", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mv : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -6583,7 +6750,8 @@ def Torch_AtenMvOp : Torch_Op<"aten.mv", [ def Torch_AtenDotOp : Torch_Op<"aten.dot", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::dot : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -6608,7 +6776,8 @@ def Torch_AtenDotOp : Torch_Op<"aten.dot", [ def Torch_AtenOuterOp : Torch_Op<"aten.outer", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::outer : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -6632,7 +6801,8 @@ def Torch_AtenOuterOp : Torch_Op<"aten.outer", [ def Torch_AtenCosineSimilarityOp : Torch_Op<"aten.cosine_similarity", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::cosine_similarity : (Tensor, Tensor, int, float) -> (Tensor)`"; let arguments = (ins @@ -6658,7 +6828,8 @@ def Torch_AtenCosineSimilarityOp : Torch_Op<"aten.cosine_similarity", [ def Torch_AtenConv3dOp : Torch_Op<"aten.conv3d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv3d : (Tensor, Tensor, Tensor?, int[], int[], int[], int) -> (Tensor)`"; let arguments = (ins @@ -6687,7 +6858,8 @@ def Torch_AtenConv3dOp : Torch_Op<"aten.conv3d", [ def Torch_AtenConv3dPaddingOp : Torch_Op<"aten.conv3d.padding", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv3d.padding : (Tensor, Tensor, Tensor?, int[], str, int[], int) -> (Tensor)`"; let arguments = (ins @@ -6716,7 +6888,8 @@ def Torch_AtenConv3dPaddingOp : Torch_Op<"aten.conv3d.padding", [ def Torch_AtenConv2dOp : Torch_Op<"aten.conv2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv2d : (Tensor, Tensor, Tensor?, int[], int[], int[], int) -> (Tensor)`"; let arguments = (ins @@ -6745,7 +6918,8 @@ def Torch_AtenConv2dOp : Torch_Op<"aten.conv2d", [ def Torch_AtenConv2dPaddingOp : Torch_Op<"aten.conv2d.padding", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv2d.padding : (Tensor, Tensor, Tensor?, int[], str, int[], int) -> (Tensor)`"; let arguments = (ins @@ -6774,7 +6948,8 @@ def Torch_AtenConv2dPaddingOp : Torch_Op<"aten.conv2d.padding", [ def Torch_AtenConv1dOp : Torch_Op<"aten.conv1d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv1d : (Tensor, Tensor, Tensor?, int[], int[], int[], int) -> (Tensor)`"; let arguments = (ins @@ -6803,7 +6978,8 @@ def Torch_AtenConv1dOp : Torch_Op<"aten.conv1d", [ def Torch_AtenConv1dPaddingOp : Torch_Op<"aten.conv1d.padding", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv1d.padding : (Tensor, Tensor, Tensor?, int[], str, int[], int) -> (Tensor)`"; let arguments = (ins @@ -6832,7 +7008,8 @@ def Torch_AtenConv1dPaddingOp : Torch_Op<"aten.conv1d.padding", [ def Torch_AtenConvTranspose1dOp : Torch_Op<"aten.conv_transpose1d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv_transpose1d : (Tensor, Tensor, Tensor?, int[], int[], int[], int, int[]) -> (Tensor)`"; let arguments = (ins @@ -6862,7 +7039,8 @@ def Torch_AtenConvTranspose1dOp : Torch_Op<"aten.conv_transpose1d", [ def Torch_AtenConvTranspose2dInputOp : Torch_Op<"aten.conv_transpose2d.input", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv_transpose2d.input : (Tensor, Tensor, Tensor?, int[], int[], int[], int, int[]) -> (Tensor)`"; let arguments = (ins @@ -6892,7 +7070,8 @@ def Torch_AtenConvTranspose2dInputOp : Torch_Op<"aten.conv_transpose2d.input", [ def Torch_AtenConvTranspose3dInputOp : Torch_Op<"aten.conv_transpose3d.input", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv_transpose3d.input : (Tensor, Tensor, Tensor?, int[], int[], int[], int, int[]) -> (Tensor)`"; let arguments = (ins @@ -6922,7 +7101,8 @@ def Torch_AtenConvTranspose3dInputOp : Torch_Op<"aten.conv_transpose3d.input", [ def Torch_AtenConvTbcOp : Torch_Op<"aten.conv_tbc", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv_tbc : (Tensor, Tensor, Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -6948,7 +7128,8 @@ def Torch_AtenConvTbcOp : Torch_Op<"aten.conv_tbc", [ def Torch_AtenConvTbcBackwardOp : Torch_Op<"aten.conv_tbc_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::conv_tbc_backward : (Tensor, Tensor, Tensor, Tensor, int) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -6977,7 +7158,8 @@ def Torch_AtenConvTbcBackwardOp : Torch_Op<"aten.conv_tbc_backward", [ def Torch_AtenConvolutionOp : Torch_Op<"aten.convolution", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::convolution : (Tensor, Tensor, Tensor?, int[], int[], int[], bool, int[], int) -> (Tensor)`"; let arguments = (ins @@ -7008,7 +7190,8 @@ def Torch_AtenConvolutionOp : Torch_Op<"aten.convolution", [ def Torch_Aten_ConvolutionOp : Torch_Op<"aten._convolution", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_convolution : (Tensor, Tensor, Tensor?, int[], int[], int[], bool, int[], int, bool, bool, bool, bool) -> (Tensor)`"; let arguments = (ins @@ -7043,7 +7226,8 @@ def Torch_Aten_ConvolutionOp : Torch_Op<"aten._convolution", [ def Torch_Aten_ConvolutionDeprecatedOp : Torch_Op<"aten._convolution.deprecated", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_convolution.deprecated : (Tensor, Tensor, Tensor?, int[], int[], int[], bool, int[], int, bool, bool, bool) -> (Tensor)`"; let arguments = (ins @@ -7077,7 +7261,8 @@ def Torch_Aten_ConvolutionDeprecatedOp : Torch_Op<"aten._convolution.deprecated" def Torch_AtenRollOp : Torch_Op<"aten.roll", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::roll : (Tensor, int[], int[]) -> (Tensor)`"; let arguments = (ins @@ -7102,7 +7287,8 @@ def Torch_AtenRollOp : Torch_Op<"aten.roll", [ def Torch_AtenConvolutionBackwardOp : Torch_Op<"aten.convolution_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::convolution_backward : (Tensor, Tensor, Tensor, int[]?, int[], int[], int[], bool, int[], int, bool[]) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -7137,7 +7323,8 @@ def Torch_AtenConvolutionBackwardOp : Torch_Op<"aten.convolution_backward", [ def Torch_AtenFlipOp : Torch_Op<"aten.flip", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::flip : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -7161,7 +7348,8 @@ def Torch_AtenFlipOp : Torch_Op<"aten.flip", [ def Torch_AtenNativeBatchNormOp : Torch_Op<"aten.native_batch_norm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::native_batch_norm : (Tensor, Tensor?, Tensor?, Tensor?, Tensor?, bool, float, float) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -7193,7 +7381,8 @@ def Torch_AtenNativeBatchNormOp : Torch_Op<"aten.native_batch_norm", [ def Torch_AtenBatchNormOp : Torch_Op<"aten.batch_norm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::batch_norm : (Tensor, Tensor?, Tensor?, Tensor?, Tensor?, bool, float, float, bool) -> (Tensor)`"; let arguments = (ins @@ -7224,7 +7413,8 @@ def Torch_AtenBatchNormOp : Torch_Op<"aten.batch_norm", [ def Torch_AtenInstanceNormOp : Torch_Op<"aten.instance_norm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::instance_norm : (Tensor, Tensor?, Tensor?, Tensor?, Tensor?, bool, float, float, bool) -> (Tensor)`"; let arguments = (ins @@ -7255,7 +7445,8 @@ def Torch_AtenInstanceNormOp : Torch_Op<"aten.instance_norm", [ def Torch_AtenNativeGroupNormOp : Torch_Op<"aten.native_group_norm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::native_group_norm : (Tensor, Tensor?, Tensor?, int, int, int, int, float) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -7287,7 +7478,8 @@ def Torch_AtenNativeGroupNormOp : Torch_Op<"aten.native_group_norm", [ def Torch_AtenGroupNormOp : Torch_Op<"aten.group_norm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::group_norm : (Tensor, int, Tensor?, Tensor?, float, bool) -> (Tensor)`"; let arguments = (ins @@ -7315,7 +7507,8 @@ def Torch_AtenGroupNormOp : Torch_Op<"aten.group_norm", [ def Torch_AtenLayerNormOp : Torch_Op<"aten.layer_norm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::layer_norm : (Tensor, int[], Tensor?, Tensor?, float, bool) -> (Tensor)`"; let arguments = (ins @@ -7343,7 +7536,8 @@ def Torch_AtenLayerNormOp : Torch_Op<"aten.layer_norm", [ def Torch_AtenRenormOp : Torch_Op<"aten.renorm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::renorm : (Tensor, Scalar, int, Scalar) -> (Tensor)`"; let arguments = (ins @@ -7370,7 +7564,8 @@ def Torch_AtenRenormOp : Torch_Op<"aten.renorm", [ def Torch_AtenNormScalarOp : Torch_Op<"aten.norm.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::norm.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -7395,7 +7590,8 @@ def Torch_AtenNormScalarOp : Torch_Op<"aten.norm.Scalar", [ def Torch_AtenNormScalarOptDimOp : Torch_Op<"aten.norm.ScalarOpt_dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::norm.ScalarOpt_dim : (Tensor, Scalar?, int[], bool) -> (Tensor)`"; let arguments = (ins @@ -7421,7 +7617,8 @@ def Torch_AtenNormScalarOptDimOp : Torch_Op<"aten.norm.ScalarOpt_dim", [ def Torch_AtenNormalFunctionalOp : Torch_Op<"aten.normal_functional", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::normal_functional : (Tensor, float, float, Generator?) -> (Tensor)`"; let arguments = (ins @@ -7447,7 +7644,8 @@ def Torch_AtenNormalFunctionalOp : Torch_Op<"aten.normal_functional", [ def Torch_AtenNativeLayerNormOp : Torch_Op<"aten.native_layer_norm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::native_layer_norm : (Tensor, int[], Tensor?, Tensor?, float) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -7476,7 +7674,8 @@ def Torch_AtenNativeLayerNormOp : Torch_Op<"aten.native_layer_norm", [ def Torch_AtenMaxPool1dOp : Torch_Op<"aten.max_pool1d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max_pool1d : (Tensor, int[], int[], int[], int[], bool) -> (Tensor)`"; let arguments = (ins @@ -7504,7 +7703,8 @@ def Torch_AtenMaxPool1dOp : Torch_Op<"aten.max_pool1d", [ def Torch_AtenMaxPool1dWithIndicesOp : Torch_Op<"aten.max_pool1d_with_indices", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max_pool1d_with_indices : (Tensor, int[], int[], int[], int[], bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -7533,7 +7733,8 @@ def Torch_AtenMaxPool1dWithIndicesOp : Torch_Op<"aten.max_pool1d_with_indices", def Torch_AtenMaxPool2dOp : Torch_Op<"aten.max_pool2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max_pool2d : (Tensor, int[], int[], int[], int[], bool) -> (Tensor)`"; let arguments = (ins @@ -7561,7 +7762,8 @@ def Torch_AtenMaxPool2dOp : Torch_Op<"aten.max_pool2d", [ def Torch_AtenMaxUnpool2dOp : Torch_Op<"aten.max_unpool2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max_unpool2d : (Tensor, Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -7586,7 +7788,8 @@ def Torch_AtenMaxUnpool2dOp : Torch_Op<"aten.max_unpool2d", [ def Torch_AtenMaxPool2dWithIndicesOp : Torch_Op<"aten.max_pool2d_with_indices", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max_pool2d_with_indices : (Tensor, int[], int[], int[], int[], bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -7616,7 +7819,8 @@ def Torch_AtenMaxPool2dWithIndicesOp : Torch_Op<"aten.max_pool2d_with_indices", def Torch_AtenMaxPool2dWithIndicesBackwardOp : Torch_Op<"aten.max_pool2d_with_indices_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max_pool2d_with_indices_backward : (Tensor, Tensor, int[], int[], int[], int[], bool, Tensor) -> (Tensor)`"; let arguments = (ins @@ -7646,7 +7850,8 @@ def Torch_AtenMaxPool2dWithIndicesBackwardOp : Torch_Op<"aten.max_pool2d_with_in def Torch_AtenMaxPool3dOp : Torch_Op<"aten.max_pool3d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max_pool3d : (Tensor, int[], int[], int[], int[], bool) -> (Tensor)`"; let arguments = (ins @@ -7674,7 +7879,8 @@ def Torch_AtenMaxPool3dOp : Torch_Op<"aten.max_pool3d", [ def Torch_AtenMaxUnpool3dOp : Torch_Op<"aten.max_unpool3d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max_unpool3d : (Tensor, Tensor, int[], int[], int[]) -> (Tensor)`"; let arguments = (ins @@ -7701,7 +7907,8 @@ def Torch_AtenMaxUnpool3dOp : Torch_Op<"aten.max_unpool3d", [ def Torch_AtenMaxPool3dWithIndicesOp : Torch_Op<"aten.max_pool3d_with_indices", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max_pool3d_with_indices : (Tensor, int[], int[], int[], int[], bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -7731,7 +7938,8 @@ def Torch_AtenMaxPool3dWithIndicesOp : Torch_Op<"aten.max_pool3d_with_indices", def Torch_AtenMaxPool3dWithIndicesBackwardOp : Torch_Op<"aten.max_pool3d_with_indices_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max_pool3d_with_indices_backward : (Tensor, Tensor, int[], int[], int[], int[], bool, Tensor) -> (Tensor)`"; let arguments = (ins @@ -7761,7 +7969,8 @@ def Torch_AtenMaxPool3dWithIndicesBackwardOp : Torch_Op<"aten.max_pool3d_with_in def Torch_AtenAvgPool1dOp : Torch_Op<"aten.avg_pool1d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::avg_pool1d : (Tensor, int[], int[], int[], bool, bool) -> (Tensor)`"; let arguments = (ins @@ -7789,7 +7998,8 @@ def Torch_AtenAvgPool1dOp : Torch_Op<"aten.avg_pool1d", [ def Torch_AtenAvgPool2dOp : Torch_Op<"aten.avg_pool2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::avg_pool2d : (Tensor, int[], int[], int[], bool, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -7818,7 +8028,8 @@ def Torch_AtenAvgPool2dOp : Torch_Op<"aten.avg_pool2d", [ def Torch_AtenAvgPool2dBackwardOp : Torch_Op<"aten.avg_pool2d_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::avg_pool2d_backward : (Tensor, Tensor, int[], int[], int[], bool, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -7848,7 +8059,8 @@ def Torch_AtenAvgPool2dBackwardOp : Torch_Op<"aten.avg_pool2d_backward", [ def Torch_AtenAvgPool3dOp : Torch_Op<"aten.avg_pool3d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::avg_pool3d : (Tensor, int[], int[], int[], bool, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -7877,7 +8089,8 @@ def Torch_AtenAvgPool3dOp : Torch_Op<"aten.avg_pool3d", [ def Torch_AtenAvgPool3dBackwardOp : Torch_Op<"aten.avg_pool3d_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::avg_pool3d_backward : (Tensor, Tensor, int[], int[], int[], bool, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -7907,7 +8120,8 @@ def Torch_AtenAvgPool3dBackwardOp : Torch_Op<"aten.avg_pool3d_backward", [ def Torch_AtenSoftmaxIntOp : Torch_Op<"aten.softmax.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::softmax.int : (Tensor, int, int?) -> (Tensor)`"; let arguments = (ins @@ -7932,7 +8146,8 @@ def Torch_AtenSoftmaxIntOp : Torch_Op<"aten.softmax.int", [ def Torch_AtenLogSoftmaxIntOp : Torch_Op<"aten.log_softmax.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::log_softmax.int : (Tensor, int, int?) -> (Tensor)`"; let arguments = (ins @@ -7957,7 +8172,8 @@ def Torch_AtenLogSoftmaxIntOp : Torch_Op<"aten.log_softmax.int", [ def Torch_Aten_LogSoftmaxOp : Torch_Op<"aten._log_softmax", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_log_softmax : (Tensor, int, bool) -> (Tensor)`"; let arguments = (ins @@ -7982,7 +8198,8 @@ def Torch_Aten_LogSoftmaxOp : Torch_Op<"aten._log_softmax", [ def Torch_AtenScatterSrcOp : Torch_Op<"aten.scatter.src", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::scatter.src : (Tensor, int, Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -8033,7 +8250,8 @@ def Torch_AtenScatter_SrcOp : Torch_Op<"aten.scatter_.src", [ def Torch_AtenScatterValueOp : Torch_Op<"aten.scatter.value", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::scatter.value : (Tensor, int, Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -8084,7 +8302,8 @@ def Torch_AtenScatter_ValueOp : Torch_Op<"aten.scatter_.value", [ def Torch_AtenMaskedScatterOp : Torch_Op<"aten.masked_scatter", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::masked_scatter : (Tensor, Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -8133,7 +8352,8 @@ def Torch_AtenMaskedScatter_Op : Torch_Op<"aten.masked_scatter_", [ def Torch_Aten__InterpolateSizeListScaleListOp : Torch_Op<"aten.__interpolate.size_list_scale_list", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__interpolate.size_list_scale_list : (Tensor, int[]?, float[]?, str, bool?, bool?, bool) -> (Tensor)`"; let arguments = (ins @@ -8162,7 +8382,8 @@ def Torch_Aten__InterpolateSizeListScaleListOp : Torch_Op<"aten.__interpolate.si def Torch_AtenAdaptiveAvgPool1dOp : Torch_Op<"aten.adaptive_avg_pool1d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::adaptive_avg_pool1d : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -8186,7 +8407,8 @@ def Torch_AtenAdaptiveAvgPool1dOp : Torch_Op<"aten.adaptive_avg_pool1d", [ def Torch_AtenAdaptiveAvgPool2dOp : Torch_Op<"aten.adaptive_avg_pool2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::adaptive_avg_pool2d : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -8210,7 +8432,8 @@ def Torch_AtenAdaptiveAvgPool2dOp : Torch_Op<"aten.adaptive_avg_pool2d", [ def Torch_Aten_AdaptiveAvgPool2dOp : Torch_Op<"aten._adaptive_avg_pool2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_adaptive_avg_pool2d : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -8235,7 +8458,8 @@ def Torch_Aten_AdaptiveAvgPool2dOp : Torch_Op<"aten._adaptive_avg_pool2d", [ def Torch_Aten_AdaptiveAvgPool2dBackwardOp : Torch_Op<"aten._adaptive_avg_pool2d_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_adaptive_avg_pool2d_backward : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -8259,7 +8483,8 @@ def Torch_Aten_AdaptiveAvgPool2dBackwardOp : Torch_Op<"aten._adaptive_avg_pool2d def Torch_AtenAdaptiveAvgPool3dOp : Torch_Op<"aten.adaptive_avg_pool3d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::adaptive_avg_pool3d : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -8283,7 +8508,8 @@ def Torch_AtenAdaptiveAvgPool3dOp : Torch_Op<"aten.adaptive_avg_pool3d", [ def Torch_Aten_AdaptiveAvgPool3dOp : Torch_Op<"aten._adaptive_avg_pool3d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_adaptive_avg_pool3d : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -8307,7 +8533,8 @@ def Torch_Aten_AdaptiveAvgPool3dOp : Torch_Op<"aten._adaptive_avg_pool3d", [ def Torch_Aten_AdaptiveAvgPool3dBackwardOp : Torch_Op<"aten._adaptive_avg_pool3d_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_adaptive_avg_pool3d_backward : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -8331,7 +8558,8 @@ def Torch_Aten_AdaptiveAvgPool3dBackwardOp : Torch_Op<"aten._adaptive_avg_pool3d def Torch_AtenAdaptiveMaxPool1dOp : Torch_Op<"aten.adaptive_max_pool1d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::adaptive_max_pool1d : (Tensor, int[]) -> (Tensor, Tensor)`"; let arguments = (ins @@ -8356,7 +8584,8 @@ def Torch_AtenAdaptiveMaxPool1dOp : Torch_Op<"aten.adaptive_max_pool1d", [ def Torch_AtenAdaptiveMaxPool2dOp : Torch_Op<"aten.adaptive_max_pool2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::adaptive_max_pool2d : (Tensor, int[]) -> (Tensor, Tensor)`"; let arguments = (ins @@ -8381,7 +8610,8 @@ def Torch_AtenAdaptiveMaxPool2dOp : Torch_Op<"aten.adaptive_max_pool2d", [ def Torch_AtenAdaptiveMaxPool3dOp : Torch_Op<"aten.adaptive_max_pool3d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::adaptive_max_pool3d : (Tensor, int[]) -> (Tensor, Tensor)`"; let arguments = (ins @@ -8406,7 +8636,8 @@ def Torch_AtenAdaptiveMaxPool3dOp : Torch_Op<"aten.adaptive_max_pool3d", [ def Torch_AtenTopkOp : Torch_Op<"aten.topk", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::topk : (Tensor, int, int, bool, bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -8433,7 +8664,8 @@ def Torch_AtenTopkOp : Torch_Op<"aten.topk", [ def Torch_AtenTransposeIntOp : Torch_Op<"aten.transpose.int", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::transpose.int : (Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -8459,7 +8691,8 @@ def Torch_AtenTransposeIntOp : Torch_Op<"aten.transpose.int", [ def Torch_AtenPixelShuffleOp : Torch_Op<"aten.pixel_shuffle", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::pixel_shuffle : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -8482,7 +8715,8 @@ def Torch_AtenPixelShuffleOp : Torch_Op<"aten.pixel_shuffle", [ def Torch_AtenPermuteOp : Torch_Op<"aten.permute", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::permute : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -8506,7 +8740,8 @@ def Torch_AtenPermuteOp : Torch_Op<"aten.permute", [ def Torch_AtenMovedimIntOp : Torch_Op<"aten.movedim.int", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::movedim.int : (Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -8531,7 +8766,8 @@ def Torch_AtenMovedimIntOp : Torch_Op<"aten.movedim.int", [ def Torch_AtenBmmOp : Torch_Op<"aten.bmm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bmm : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -8555,7 +8791,8 @@ def Torch_AtenBmmOp : Torch_Op<"aten.bmm", [ def Torch_AtenCumsumOp : Torch_Op<"aten.cumsum", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::cumsum : (Tensor, int, int?) -> (Tensor)`"; let arguments = (ins @@ -8580,7 +8817,8 @@ def Torch_AtenCumsumOp : Torch_Op<"aten.cumsum", [ def Torch_AtenCumprodOp : Torch_Op<"aten.cumprod", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::cumprod : (Tensor, int, int?) -> (Tensor)`"; let arguments = (ins @@ -8605,7 +8843,8 @@ def Torch_AtenCumprodOp : Torch_Op<"aten.cumprod", [ def Torch_AtenFloorDivideScalarOp : Torch_Op<"aten.floor_divide.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::floor_divide.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -8629,7 +8868,8 @@ def Torch_AtenFloorDivideScalarOp : Torch_Op<"aten.floor_divide.Scalar", [ def Torch_AtenLogsumexpOp : Torch_Op<"aten.logsumexp", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::logsumexp : (Tensor, int[], bool) -> (Tensor)`"; let arguments = (ins @@ -8654,7 +8894,8 @@ def Torch_AtenLogsumexpOp : Torch_Op<"aten.logsumexp", [ def Torch_AtenMeanDimOp : Torch_Op<"aten.mean.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mean.dim : (Tensor, int[]?, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -8680,7 +8921,8 @@ def Torch_AtenMeanDimOp : Torch_Op<"aten.mean.dim", [ def Torch_Aten__And__TensorOp : Torch_Op<"aten.__and__.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__and__.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -8704,7 +8946,8 @@ def Torch_Aten__And__TensorOp : Torch_Op<"aten.__and__.Tensor", [ def Torch_Aten__And__ScalarOp : Torch_Op<"aten.__and__.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__and__.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -8729,7 +8972,8 @@ def Torch_Aten__And__ScalarOp : Torch_Op<"aten.__and__.Scalar", [ def Torch_Aten__Or__TensorOp : Torch_Op<"aten.__or__.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__or__.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -8754,7 +8998,8 @@ def Torch_Aten__Or__TensorOp : Torch_Op<"aten.__or__.Tensor", [ def Torch_Aten__Lshift__ScalarOp : Torch_Op<"aten.__lshift__.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__lshift__.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -8778,7 +9023,8 @@ def Torch_Aten__Lshift__ScalarOp : Torch_Op<"aten.__lshift__.Scalar", [ def Torch_Aten__Rshift__ScalarOp : Torch_Op<"aten.__rshift__.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__rshift__.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -8802,7 +9048,8 @@ def Torch_Aten__Rshift__ScalarOp : Torch_Op<"aten.__rshift__.Scalar", [ def Torch_Aten_SoftmaxOp : Torch_Op<"aten._softmax", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_softmax : (Tensor, int, bool) -> (Tensor)`"; let arguments = (ins @@ -8827,7 +9074,8 @@ def Torch_Aten_SoftmaxOp : Torch_Op<"aten._softmax", [ def Torch_Aten_SafeSoftmaxOp : Torch_Op<"aten._safe_softmax", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_safe_softmax : (Tensor, int, int?) -> (Tensor)`"; let arguments = (ins @@ -8852,7 +9100,8 @@ def Torch_Aten_SafeSoftmaxOp : Torch_Op<"aten._safe_softmax", [ def Torch_AtenMeanOp : Torch_Op<"aten.mean", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mean : (Tensor, int?) -> (Tensor)`"; let arguments = (ins @@ -8876,7 +9125,8 @@ def Torch_AtenMeanOp : Torch_Op<"aten.mean", [ def Torch_AtenStdOp : Torch_Op<"aten.std", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::std : (Tensor, bool) -> (Tensor)`"; let arguments = (ins @@ -8900,7 +9150,8 @@ def Torch_AtenStdOp : Torch_Op<"aten.std", [ def Torch_AtenStdDimOp : Torch_Op<"aten.std.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::std.dim : (Tensor, int[]?, bool, bool) -> (Tensor)`"; let arguments = (ins @@ -8926,7 +9177,8 @@ def Torch_AtenStdDimOp : Torch_Op<"aten.std.dim", [ def Torch_AtenStdCorrectionOp : Torch_Op<"aten.std.correction", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::std.correction : (Tensor, int[]?, Scalar?, bool) -> (Tensor)`"; let arguments = (ins @@ -8952,7 +9204,8 @@ def Torch_AtenStdCorrectionOp : Torch_Op<"aten.std.correction", [ def Torch_AtenVarOp : Torch_Op<"aten.var", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::var : (Tensor, bool) -> (Tensor)`"; let arguments = (ins @@ -8976,7 +9229,8 @@ def Torch_AtenVarOp : Torch_Op<"aten.var", [ def Torch_AtenVarDimOp : Torch_Op<"aten.var.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::var.dim : (Tensor, int[]?, bool, bool) -> (Tensor)`"; let arguments = (ins @@ -9002,7 +9256,8 @@ def Torch_AtenVarDimOp : Torch_Op<"aten.var.dim", [ def Torch_AtenVarCorrectionOp : Torch_Op<"aten.var.correction", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::var.correction : (Tensor, int[]?, Scalar?, bool) -> (Tensor)`"; let arguments = (ins @@ -9028,7 +9283,8 @@ def Torch_AtenVarCorrectionOp : Torch_Op<"aten.var.correction", [ def Torch_AtenVarMeanCorrectionOp : Torch_Op<"aten.var_mean.correction", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::var_mean.correction : (Tensor, int[]?, Scalar?, bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -9055,7 +9311,8 @@ def Torch_AtenVarMeanCorrectionOp : Torch_Op<"aten.var_mean.correction", [ def Torch_AtenVarMeanOp : Torch_Op<"aten.var_mean", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::var_mean : (Tensor, bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -9080,7 +9337,8 @@ def Torch_AtenVarMeanOp : Torch_Op<"aten.var_mean", [ def Torch_AtenVarMeanDimOp : Torch_Op<"aten.var_mean.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::var_mean.dim : (Tensor, int[]?, bool, bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -9107,7 +9365,8 @@ def Torch_AtenVarMeanDimOp : Torch_Op<"aten.var_mean.dim", [ def Torch_AtenNllLoss2dForwardOp : Torch_Op<"aten.nll_loss2d_forward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::nll_loss2d_forward : (Tensor, Tensor, Tensor?, int, int) -> (Tensor, Tensor)`"; let arguments = (ins @@ -9135,7 +9394,8 @@ def Torch_AtenNllLoss2dForwardOp : Torch_Op<"aten.nll_loss2d_forward", [ def Torch_AtenNllLoss2dBackwardOp : Torch_Op<"aten.nll_loss2d_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::nll_loss2d_backward : (Tensor, Tensor, Tensor, Tensor?, int, int, Tensor) -> (Tensor)`"; let arguments = (ins @@ -9164,7 +9424,8 @@ def Torch_AtenNllLoss2dBackwardOp : Torch_Op<"aten.nll_loss2d_backward", [ def Torch_AtenNllLossForwardOp : Torch_Op<"aten.nll_loss_forward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::nll_loss_forward : (Tensor, Tensor, Tensor?, int, int) -> (Tensor, Tensor)`"; let arguments = (ins @@ -9192,7 +9453,8 @@ def Torch_AtenNllLossForwardOp : Torch_Op<"aten.nll_loss_forward", [ def Torch_AtenNllLossBackwardOp : Torch_Op<"aten.nll_loss_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::nll_loss_backward : (Tensor, Tensor, Tensor, Tensor?, int, int, Tensor) -> (Tensor)`"; let arguments = (ins @@ -9221,7 +9483,8 @@ def Torch_AtenNllLossBackwardOp : Torch_Op<"aten.nll_loss_backward", [ def Torch_AtenBincountOp : Torch_Op<"aten.bincount", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bincount : (Tensor, Tensor?, int) -> (Tensor)`"; let arguments = (ins @@ -9246,7 +9509,8 @@ def Torch_AtenBincountOp : Torch_Op<"aten.bincount", [ def Torch_AtenLinalgVectorNormOp : Torch_Op<"aten.linalg_vector_norm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::linalg_vector_norm : (Tensor, Scalar, int[]?, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -9273,7 +9537,8 @@ def Torch_AtenLinalgVectorNormOp : Torch_Op<"aten.linalg_vector_norm", [ def Torch_AtenLinalgNormOp : Torch_Op<"aten.linalg_norm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::linalg_norm : (Tensor, Scalar?, int[]?, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -9300,7 +9565,8 @@ def Torch_AtenLinalgNormOp : Torch_Op<"aten.linalg_norm", [ def Torch_AtenLinalgQrOp : Torch_Op<"aten.linalg_qr", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::linalg_qr : (Tensor, str) -> (Tensor, Tensor)`"; let arguments = (ins @@ -9325,7 +9591,8 @@ def Torch_AtenLinalgQrOp : Torch_Op<"aten.linalg_qr", [ def Torch_AtenLinalgDetOp : Torch_Op<"aten.linalg_det", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::linalg_det : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -9348,7 +9615,8 @@ def Torch_AtenLinalgDetOp : Torch_Op<"aten.linalg_det", [ def Torch_Aten_LinalgDetOp : Torch_Op<"aten._linalg_det", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_linalg_det : (Tensor) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -9373,7 +9641,8 @@ def Torch_Aten_LinalgDetOp : Torch_Op<"aten._linalg_det", [ def Torch_AtenLinalgSlogdetOp : Torch_Op<"aten.linalg_slogdet", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::linalg_slogdet : (Tensor) -> (Tensor, Tensor)`"; let arguments = (ins @@ -9397,7 +9666,8 @@ def Torch_AtenLinalgSlogdetOp : Torch_Op<"aten.linalg_slogdet", [ def Torch_AtenFrobeniusNormDimOp : Torch_Op<"aten.frobenius_norm.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::frobenius_norm.dim : (Tensor, int[], bool) -> (Tensor)`"; let arguments = (ins @@ -9422,7 +9692,8 @@ def Torch_AtenFrobeniusNormDimOp : Torch_Op<"aten.frobenius_norm.dim", [ def Torch_AtenMseLossOp : Torch_Op<"aten.mse_loss", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mse_loss : (Tensor, Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -9447,7 +9718,8 @@ def Torch_AtenMseLossOp : Torch_Op<"aten.mse_loss", [ def Torch_AtenMseLossBackwardOp : Torch_Op<"aten.mse_loss_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mse_loss_backward : (Tensor, Tensor, Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -9473,7 +9745,8 @@ def Torch_AtenMseLossBackwardOp : Torch_Op<"aten.mse_loss_backward", [ def Torch_AtenL1LossOp : Torch_Op<"aten.l1_loss", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::l1_loss : (Tensor, Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -9498,7 +9771,8 @@ def Torch_AtenL1LossOp : Torch_Op<"aten.l1_loss", [ def Torch_AtenUpsampleNearest2dBackwardOp : Torch_Op<"aten.upsample_nearest2d_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::upsample_nearest2d_backward : (Tensor, int[], int[], float?, float?) -> (Tensor)`"; let arguments = (ins @@ -9525,7 +9799,8 @@ def Torch_AtenUpsampleNearest2dBackwardOp : Torch_Op<"aten.upsample_nearest2d_ba def Torch_AtenCrossEntropyLossOp : Torch_Op<"aten.cross_entropy_loss", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::cross_entropy_loss : (Tensor, Tensor, Tensor?, int, int, float) -> (Tensor)`"; let arguments = (ins @@ -9553,7 +9828,8 @@ def Torch_AtenCrossEntropyLossOp : Torch_Op<"aten.cross_entropy_loss", [ def Torch_AtenNonzeroOp : Torch_Op<"aten.nonzero", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::nonzero : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -9576,7 +9852,8 @@ def Torch_AtenNonzeroOp : Torch_Op<"aten.nonzero", [ def Torch_AtenNonzeroNumpyOp : Torch_Op<"aten.nonzero_numpy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::nonzero_numpy : (Tensor) -> (Tensor[])`"; let arguments = (ins @@ -9599,7 +9876,8 @@ def Torch_AtenNonzeroNumpyOp : Torch_Op<"aten.nonzero_numpy", [ def Torch_AtenNonzeroStaticOp : Torch_Op<"aten.nonzero_static", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::nonzero_static : (Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -9624,7 +9902,8 @@ def Torch_AtenNonzeroStaticOp : Torch_Op<"aten.nonzero_static", [ def Torch_AtenBinaryCrossEntropyOp : Torch_Op<"aten.binary_cross_entropy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::binary_cross_entropy : (Tensor, Tensor, Tensor?, int) -> (Tensor)`"; let arguments = (ins @@ -9650,7 +9929,8 @@ def Torch_AtenBinaryCrossEntropyOp : Torch_Op<"aten.binary_cross_entropy", [ def Torch_AtenBinaryCrossEntropyBackwardOp : Torch_Op<"aten.binary_cross_entropy_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::binary_cross_entropy_backward : (Tensor, Tensor, Tensor, Tensor?, int) -> (Tensor)`"; let arguments = (ins @@ -9677,7 +9957,8 @@ def Torch_AtenBinaryCrossEntropyBackwardOp : Torch_Op<"aten.binary_cross_entropy def Torch_AtenBinaryCrossEntropyWithLogitsOp : Torch_Op<"aten.binary_cross_entropy_with_logits", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::binary_cross_entropy_with_logits : (Tensor, Tensor, Tensor?, Tensor?, int) -> (Tensor)`"; let arguments = (ins @@ -9704,7 +9985,8 @@ def Torch_AtenBinaryCrossEntropyWithLogitsOp : Torch_Op<"aten.binary_cross_entro def Torch_AtenLogSigmoidForwardOp : Torch_Op<"aten.log_sigmoid_forward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::log_sigmoid_forward : (Tensor) -> (Tensor, Tensor)`"; let arguments = (ins @@ -9728,7 +10010,8 @@ def Torch_AtenLogSigmoidForwardOp : Torch_Op<"aten.log_sigmoid_forward", [ def Torch_AtenLogSigmoidBackwardOp : Torch_Op<"aten.log_sigmoid_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::log_sigmoid_backward : (Tensor, Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -9753,7 +10036,8 @@ def Torch_AtenLogSigmoidBackwardOp : Torch_Op<"aten.log_sigmoid_backward", [ def Torch_AtenSigmoidBackwardOp : Torch_Op<"aten.sigmoid_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sigmoid_backward : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -9777,7 +10061,8 @@ def Torch_AtenSigmoidBackwardOp : Torch_Op<"aten.sigmoid_backward", [ def Torch_AtenCosineEmbeddingLossOp : Torch_Op<"aten.cosine_embedding_loss", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::cosine_embedding_loss : (Tensor, Tensor, Tensor, float, int) -> (Tensor)`"; let arguments = (ins @@ -9804,7 +10089,8 @@ def Torch_AtenCosineEmbeddingLossOp : Torch_Op<"aten.cosine_embedding_loss", [ def Torch_AtenDiagEmbedOp : Torch_Op<"aten.diag_embed", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::diag_embed : (Tensor, int, int, int) -> (Tensor)`"; let arguments = (ins @@ -9830,7 +10116,8 @@ def Torch_AtenDiagEmbedOp : Torch_Op<"aten.diag_embed", [ def Torch_Aten_WeightNormInterfaceOp : Torch_Op<"aten._weight_norm_interface", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_weight_norm_interface : (Tensor, Tensor, int) -> (Tensor, Tensor)`"; let arguments = (ins @@ -9856,7 +10143,8 @@ def Torch_Aten_WeightNormInterfaceOp : Torch_Op<"aten._weight_norm_interface", [ def Torch_AtenRot90Op : Torch_Op<"aten.rot90", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::rot90 : (Tensor, int, int[]) -> (Tensor)`"; let arguments = (ins @@ -9882,7 +10170,8 @@ def Torch_AtenRot90Op : Torch_Op<"aten.rot90", [ def Torch_AtenConstantPadNdOp : Torch_Op<"aten.constant_pad_nd", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::constant_pad_nd : (Tensor, int[], Scalar) -> (Tensor)`"; let arguments = (ins @@ -9907,7 +10196,8 @@ def Torch_AtenConstantPadNdOp : Torch_Op<"aten.constant_pad_nd", [ def Torch_AtenReplicationPad2dOp : Torch_Op<"aten.replication_pad2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::replication_pad2d : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -9931,7 +10221,8 @@ def Torch_AtenReplicationPad2dOp : Torch_Op<"aten.replication_pad2d", [ def Torch_AtenReflectionPad1dOp : Torch_Op<"aten.reflection_pad1d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::reflection_pad1d : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -9955,7 +10246,8 @@ def Torch_AtenReflectionPad1dOp : Torch_Op<"aten.reflection_pad1d", [ def Torch_AtenReflectionPad2dOp : Torch_Op<"aten.reflection_pad2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::reflection_pad2d : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -9979,7 +10271,8 @@ def Torch_AtenReflectionPad2dOp : Torch_Op<"aten.reflection_pad2d", [ def Torch_AtenPadOp : Torch_Op<"aten.pad", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::pad : (Tensor, int[], str, float?) -> (Tensor)`"; let arguments = (ins @@ -10004,7 +10297,8 @@ def Torch_AtenPadOp : Torch_Op<"aten.pad", [ def Torch_AtenSqueezeDimOp : Torch_Op<"aten.squeeze.dim", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::squeeze.dim : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -10028,7 +10322,8 @@ def Torch_AtenSqueezeDimOp : Torch_Op<"aten.squeeze.dim", [ def Torch_AtenSqueezeOp : Torch_Op<"aten.squeeze", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::squeeze : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10051,7 +10346,8 @@ def Torch_AtenSqueezeOp : Torch_Op<"aten.squeeze", [ def Torch_AtenFlattenUsingIntsOp : Torch_Op<"aten.flatten.using_ints", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::flatten.using_ints : (Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -10076,7 +10372,8 @@ def Torch_AtenFlattenUsingIntsOp : Torch_Op<"aten.flatten.using_ints", [ def Torch_AtenUnflattenIntOp : Torch_Op<"aten.unflatten.int", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::unflatten.int : (Tensor, int, int[]) -> (Tensor)`"; let arguments = (ins @@ -10103,7 +10400,8 @@ def Torch_AtenUnflattenIntOp : Torch_Op<"aten.unflatten.int", [ def Torch_AtenDimOp : Torch_Op<"aten.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::dim : (Tensor) -> (int)`"; let arguments = (ins @@ -10127,7 +10425,8 @@ def Torch_AtenDimOp : Torch_Op<"aten.dim", [ def Torch_AtenSizeOp : Torch_Op<"aten.size", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::size : (Tensor) -> (int[])`"; let arguments = (ins @@ -10151,7 +10450,8 @@ def Torch_AtenSizeOp : Torch_Op<"aten.size", [ def Torch_AtenBoolTensorOp : Torch_Op<"aten.Bool.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::Bool.Tensor : (Tensor) -> (bool)`"; let arguments = (ins @@ -10174,7 +10474,8 @@ def Torch_AtenBoolTensorOp : Torch_Op<"aten.Bool.Tensor", [ def Torch_AtenIsFloatingPointOp : Torch_Op<"aten.is_floating_point", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::is_floating_point : (Tensor) -> (bool)`"; let arguments = (ins @@ -10198,7 +10499,8 @@ def Torch_AtenIsFloatingPointOp : Torch_Op<"aten.is_floating_point", [ def Torch_AtenOnesOp : Torch_Op<"aten.ones", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ones : (int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -10226,7 +10528,8 @@ def Torch_AtenOnesOp : Torch_Op<"aten.ones", [ def Torch_AtenNewOnesOp : Torch_Op<"aten.new_ones", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::new_ones : (Tensor, int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -10254,7 +10557,8 @@ def Torch_AtenNewOnesOp : Torch_Op<"aten.new_ones", [ def Torch_AtenZerosOp : Torch_Op<"aten.zeros", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::zeros : (int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -10282,7 +10586,8 @@ def Torch_AtenZerosOp : Torch_Op<"aten.zeros", [ def Torch_AtenNewZerosOp : Torch_Op<"aten.new_zeros", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::new_zeros : (Tensor, int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -10310,7 +10615,8 @@ def Torch_AtenNewZerosOp : Torch_Op<"aten.new_zeros", [ def Torch_AtenEyeOp : Torch_Op<"aten.eye", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::eye : (int, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -10337,7 +10643,8 @@ def Torch_AtenEyeOp : Torch_Op<"aten.eye", [ def Torch_AtenEyeMOp : Torch_Op<"aten.eye.m", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::eye.m : (int, int, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -10365,7 +10672,8 @@ def Torch_AtenEyeMOp : Torch_Op<"aten.eye.m", [ def Torch_AtenTensorOp : Torch_Op<"aten.tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tensor : (t[], int?, Device?, bool) -> (Tensor)`"; let arguments = (ins @@ -10392,7 +10700,8 @@ def Torch_AtenTensorOp : Torch_Op<"aten.tensor", [ def Torch_AtenTensorBoolOp : Torch_Op<"aten.tensor.bool", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tensor.bool : (bool, int?, Device?, bool) -> (Tensor)`"; let arguments = (ins @@ -10418,7 +10727,8 @@ def Torch_AtenTensorBoolOp : Torch_Op<"aten.tensor.bool", [ def Torch_AtenTensorIntOp : Torch_Op<"aten.tensor.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tensor.int : (int, int?, Device?, bool) -> (Tensor)`"; let arguments = (ins @@ -10445,7 +10755,8 @@ def Torch_AtenTensorIntOp : Torch_Op<"aten.tensor.int", [ def Torch_AtenScalarTensorOp : Torch_Op<"aten.scalar_tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::scalar_tensor : (Scalar, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -10472,7 +10783,8 @@ def Torch_AtenScalarTensorOp : Torch_Op<"aten.scalar_tensor", [ def Torch_Aten_ShapeAsTensorOp : Torch_Op<"aten._shape_as_tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_shape_as_tensor : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10496,7 +10808,8 @@ def Torch_Aten_ShapeAsTensorOp : Torch_Op<"aten._shape_as_tensor", [ def Torch_AtenIsnanOp : Torch_Op<"aten.isnan", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::isnan : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10519,7 +10832,8 @@ def Torch_AtenIsnanOp : Torch_Op<"aten.isnan", [ def Torch_AtenIsinfOp : Torch_Op<"aten.isinf", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::isinf : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10542,7 +10856,8 @@ def Torch_AtenIsinfOp : Torch_Op<"aten.isinf", [ def Torch_AtenIsneginfOp : Torch_Op<"aten.isneginf", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::isneginf : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10565,7 +10880,8 @@ def Torch_AtenIsneginfOp : Torch_Op<"aten.isneginf", [ def Torch_AtenIsposinfOp : Torch_Op<"aten.isposinf", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::isposinf : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10588,7 +10904,8 @@ def Torch_AtenIsposinfOp : Torch_Op<"aten.isposinf", [ def Torch_AtenAllOp : Torch_Op<"aten.all", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::all : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10611,7 +10928,8 @@ def Torch_AtenAllOp : Torch_Op<"aten.all", [ def Torch_AtenAllBoolOp : Torch_Op<"aten.all.bool", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::all.bool : (bool[]) -> (bool)`"; let arguments = (ins @@ -10634,7 +10952,8 @@ def Torch_AtenAllBoolOp : Torch_Op<"aten.all.bool", [ def Torch_AtenAllDimOp : Torch_Op<"aten.all.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::all.dim : (Tensor, int, bool) -> (Tensor)`"; let arguments = (ins @@ -10659,7 +10978,8 @@ def Torch_AtenAllDimOp : Torch_Op<"aten.all.dim", [ def Torch_AtenAnyOp : Torch_Op<"aten.any", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::any : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10682,7 +11002,8 @@ def Torch_AtenAnyOp : Torch_Op<"aten.any", [ def Torch_AtenAnyDimOp : Torch_Op<"aten.any.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::any.dim : (Tensor, int, bool) -> (Tensor)`"; let arguments = (ins @@ -10707,7 +11028,8 @@ def Torch_AtenAnyDimOp : Torch_Op<"aten.any.dim", [ def Torch_AtenArangeOp : Torch_Op<"aten.arange", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::arange : (Scalar, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -10734,7 +11056,8 @@ def Torch_AtenArangeOp : Torch_Op<"aten.arange", [ def Torch_AtenArangeStartOp : Torch_Op<"aten.arange.start", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::arange.start : (Scalar, Scalar, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -10762,7 +11085,8 @@ def Torch_AtenArangeStartOp : Torch_Op<"aten.arange.start", [ def Torch_AtenArangeStartStepOp : Torch_Op<"aten.arange.start_step", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::arange.start_step : (Scalar, Scalar, Scalar, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -10815,7 +11139,8 @@ def Torch_AtenArangeStartOutOp : Torch_Op<"aten.arange.start_out", [ def Torch_AtenArgmaxOp : Torch_Op<"aten.argmax", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::argmax : (Tensor, int?, bool) -> (Tensor)`"; let arguments = (ins @@ -10840,7 +11165,8 @@ def Torch_AtenArgmaxOp : Torch_Op<"aten.argmax", [ def Torch_AtenArgminOp : Torch_Op<"aten.argmin", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::argmin : (Tensor, int?, bool) -> (Tensor)`"; let arguments = (ins @@ -10865,7 +11191,8 @@ def Torch_AtenArgminOp : Torch_Op<"aten.argmin", [ def Torch_AtenOneHotOp : Torch_Op<"aten.one_hot", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::one_hot : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -10889,7 +11216,8 @@ def Torch_AtenOneHotOp : Torch_Op<"aten.one_hot", [ def Torch_AtenAtleast1dOp : Torch_Op<"aten.atleast_1d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::atleast_1d : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10912,7 +11240,8 @@ def Torch_AtenAtleast1dOp : Torch_Op<"aten.atleast_1d", [ def Torch_AtenAtleast2dOp : Torch_Op<"aten.atleast_2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::atleast_2d : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10935,7 +11264,8 @@ def Torch_AtenAtleast2dOp : Torch_Op<"aten.atleast_2d", [ def Torch_AtenEinsumOp : Torch_Op<"aten.einsum", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::einsum : (str, Tensor[], int[]?) -> (Tensor)`"; let arguments = (ins @@ -10960,7 +11290,8 @@ def Torch_AtenEinsumOp : Torch_Op<"aten.einsum", [ def Torch_AtenTraceOp : Torch_Op<"aten.trace", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::trace : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -10983,7 +11314,8 @@ def Torch_AtenTraceOp : Torch_Op<"aten.trace", [ def Torch_AtenBucketizeTensorOp : Torch_Op<"aten.bucketize.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::bucketize.Tensor : (Tensor, Tensor, bool, bool) -> (Tensor)`"; let arguments = (ins @@ -11009,7 +11341,8 @@ def Torch_AtenBucketizeTensorOp : Torch_Op<"aten.bucketize.Tensor", [ def Torch_AtenCloneOp : Torch_Op<"aten.clone", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::clone : (Tensor, int?) -> (Tensor)`"; let arguments = (ins @@ -11034,7 +11367,8 @@ def Torch_AtenCloneOp : Torch_Op<"aten.clone", [ def Torch_AtenLiftFreshCopyOp : Torch_Op<"aten.lift_fresh_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::lift_fresh_copy : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -11056,7 +11390,8 @@ def Torch_AtenLiftFreshCopyOp : Torch_Op<"aten.lift_fresh_copy", [ def Torch_AtenContiguousOp : Torch_Op<"aten.contiguous", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::contiguous : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -11080,7 +11415,8 @@ def Torch_AtenContiguousOp : Torch_Op<"aten.contiguous", [ def Torch_AtenCopyOp : Torch_Op<"aten.copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::copy : (Tensor, Tensor, bool) -> (Tensor)`"; let arguments = (ins @@ -11129,7 +11465,8 @@ def Torch_AtenCopy_Op : Torch_Op<"aten.copy_", [ def Torch_Aten_ToCopyOp : Torch_Op<"aten._to_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_to_copy : (Tensor, int?, int?, Device?, bool?, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -11157,7 +11494,8 @@ def Torch_Aten_ToCopyOp : Torch_Op<"aten._to_copy", [ def Torch_AtenDetachOp : Torch_Op<"aten.detach", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::detach : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -11181,7 +11519,8 @@ def Torch_AtenDetachOp : Torch_Op<"aten.detach", [ def Torch_AtenDeviceWithIndexOp : Torch_Op<"aten.device.with_index", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::device.with_index : (str, int) -> (Device)`"; let arguments = (ins @@ -11205,7 +11544,8 @@ def Torch_AtenDeviceWithIndexOp : Torch_Op<"aten.device.with_index", [ def Torch_AtenCudaOp : Torch_Op<"aten.cuda", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::cuda : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -11229,7 +11569,8 @@ def Torch_AtenCudaOp : Torch_Op<"aten.cuda", [ def Torch_AtenEmbeddingOp : Torch_Op<"aten.embedding", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::embedding : (Tensor, Tensor, int, bool, bool) -> (Tensor)`"; let arguments = (ins @@ -11256,7 +11597,8 @@ def Torch_AtenEmbeddingOp : Torch_Op<"aten.embedding", [ def Torch_AtenEmbeddingBagPaddingIdxOp : Torch_Op<"aten.embedding_bag.padding_idx", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::embedding_bag.padding_idx : (Tensor, Tensor, Tensor, bool, int, bool, Tensor?, bool, int?) -> (Tensor, Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -11290,7 +11632,8 @@ def Torch_AtenEmbeddingBagPaddingIdxOp : Torch_Op<"aten.embedding_bag.padding_id def Torch_Aten_EmbeddingBagOp : Torch_Op<"aten._embedding_bag", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_embedding_bag : (Tensor, Tensor, Tensor, bool, int, bool, Tensor?, bool, int) -> (Tensor, Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -11324,7 +11667,8 @@ def Torch_Aten_EmbeddingBagOp : Torch_Op<"aten._embedding_bag", [ def Torch_AtenEmptyLikeOp : Torch_Op<"aten.empty_like", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::empty_like : (Tensor, int?, int?, Device?, bool?, int?) -> (Tensor)`"; let arguments = (ins @@ -11352,7 +11696,8 @@ def Torch_AtenEmptyLikeOp : Torch_Op<"aten.empty_like", [ def Torch_AtenNewEmptyOp : Torch_Op<"aten.new_empty", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::new_empty : (Tensor, int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -11380,7 +11725,8 @@ def Torch_AtenNewEmptyOp : Torch_Op<"aten.new_empty", [ def Torch_AtenNewEmptyStridedOp : Torch_Op<"aten.new_empty_strided", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::new_empty_strided : (Tensor, int[], int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -11409,7 +11755,8 @@ def Torch_AtenNewEmptyStridedOp : Torch_Op<"aten.new_empty_strided", [ def Torch_AtenZerosLikeOp : Torch_Op<"aten.zeros_like", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::zeros_like : (Tensor, int?, int?, Device?, bool?, int?) -> (Tensor)`"; let arguments = (ins @@ -11437,7 +11784,8 @@ def Torch_AtenZerosLikeOp : Torch_Op<"aten.zeros_like", [ def Torch_AtenOnesLikeOp : Torch_Op<"aten.ones_like", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ones_like : (Tensor, int?, int?, Device?, bool?, int?) -> (Tensor)`"; let arguments = (ins @@ -11465,7 +11813,8 @@ def Torch_AtenOnesLikeOp : Torch_Op<"aten.ones_like", [ def Torch_AtenEmptyMemoryFormatOp : Torch_Op<"aten.empty.memory_format", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::empty.memory_format : (int[], int?, int?, Device?, bool?, int?) -> (Tensor)`"; let arguments = (ins @@ -11493,7 +11842,8 @@ def Torch_AtenEmptyMemoryFormatOp : Torch_Op<"aten.empty.memory_format", [ def Torch_AtenEmptyStridedOp : Torch_Op<"aten.empty_strided", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::empty_strided : (int[], int[], int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -11520,7 +11870,8 @@ def Torch_AtenEmptyStridedOp : Torch_Op<"aten.empty_strided", [ def Torch_AtenExpandOp : Torch_Op<"aten.expand", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::expand : (Tensor, int[], bool) -> (Tensor)`"; let arguments = (ins @@ -11544,7 +11895,8 @@ def Torch_AtenExpandOp : Torch_Op<"aten.expand", [ def Torch_AtenExpandAsOp : Torch_Op<"aten.expand_as", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::expand_as : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -11567,7 +11919,8 @@ def Torch_AtenExpandAsOp : Torch_Op<"aten.expand_as", [ def Torch_AtenBroadcastToOp : Torch_Op<"aten.broadcast_to", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::broadcast_to : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -11592,7 +11945,8 @@ def Torch_AtenBroadcastToOp : Torch_Op<"aten.broadcast_to", [ def Torch_AtenIndexTensorOp : Torch_Op<"aten.index.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::index.Tensor : (Tensor, Tensor?[]) -> (Tensor)`"; let arguments = (ins @@ -11616,7 +11970,8 @@ def Torch_AtenIndexTensorOp : Torch_Op<"aten.index.Tensor", [ def Torch_AtenIndexTensorHackedTwinOp : Torch_Op<"aten.index.Tensor_hacked_twin", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::index.Tensor_hacked_twin : (Tensor, Tensor[]) -> (Tensor)`"; let arguments = (ins @@ -11640,7 +11995,8 @@ def Torch_AtenIndexTensorHackedTwinOp : Torch_Op<"aten.index.Tensor_hacked_twin" def Torch_AtenIndexSelectOp : Torch_Op<"aten.index_select", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::index_select : (Tensor, int, Tensor) -> (Tensor)`"; let arguments = (ins @@ -11666,7 +12022,8 @@ def Torch_AtenIndexSelectOp : Torch_Op<"aten.index_select", [ def Torch_Aten_IndexPutImplOp : Torch_Op<"aten._index_put_impl", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_index_put_impl : (Tensor, Tensor?[], Tensor, bool, bool) -> (Tensor)`"; let arguments = (ins @@ -11719,7 +12076,8 @@ def Torch_Aten_IndexPutImpl_Op : Torch_Op<"aten._index_put_impl_", [ def Torch_AtenItemOp : Torch_Op<"aten.item", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::item : (Tensor) -> (Scalar)`"; let arguments = (ins @@ -11743,7 +12101,8 @@ def Torch_AtenItemOp : Torch_Op<"aten.item", [ def Torch_AtenMaskedSelectOp : Torch_Op<"aten.masked_select", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::masked_select : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -11767,7 +12126,8 @@ def Torch_AtenMaskedSelectOp : Torch_Op<"aten.masked_select", [ def Torch_AtenNumelOp : Torch_Op<"aten.numel", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::numel : (Tensor) -> (int)`"; let arguments = (ins @@ -11791,7 +12151,8 @@ def Torch_AtenNumelOp : Torch_Op<"aten.numel", [ def Torch_AtenRepeatOp : Torch_Op<"aten.repeat", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::repeat : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -11815,7 +12176,8 @@ def Torch_AtenRepeatOp : Torch_Op<"aten.repeat", [ def Torch_AtenRepeatInterleaveSelfIntOp : Torch_Op<"aten.repeat_interleave.self_int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::repeat_interleave.self_int : (Tensor, int, int?, int?) -> (Tensor)`"; let arguments = (ins @@ -11841,7 +12203,8 @@ def Torch_AtenRepeatInterleaveSelfIntOp : Torch_Op<"aten.repeat_interleave.self_ def Torch_AtenTileOp : Torch_Op<"aten.tile", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tile : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -11864,7 +12227,8 @@ def Torch_AtenTileOp : Torch_Op<"aten.tile", [ def Torch_AtenReshapeOp : Torch_Op<"aten.reshape", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::reshape : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -11888,7 +12252,8 @@ def Torch_AtenReshapeOp : Torch_Op<"aten.reshape", [ def Torch_AtenReshapeAsOp : Torch_Op<"aten.reshape_as", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::reshape_as : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -11911,7 +12276,8 @@ def Torch_AtenReshapeAsOp : Torch_Op<"aten.reshape_as", [ def Torch_Aten_ReshapeAliasOp : Torch_Op<"aten._reshape_alias", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_reshape_alias : (Tensor, int[], int[]) -> (Tensor)`"; let arguments = (ins @@ -11936,7 +12302,8 @@ def Torch_Aten_ReshapeAliasOp : Torch_Op<"aten._reshape_alias", [ def Torch_AtenResizeOp : Torch_Op<"aten.resize", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::resize : (Tensor, int[], int?) -> (Tensor)`"; let arguments = (ins @@ -11983,7 +12350,8 @@ def Torch_AtenResize_Op : Torch_Op<"aten.resize_", [ def Torch_AtenSelectIntOp : Torch_Op<"aten.select.int", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::select.int : (Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -12009,7 +12377,8 @@ def Torch_AtenSelectIntOp : Torch_Op<"aten.select.int", [ def Torch_AtenSizeIntOp : Torch_Op<"aten.size.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::size.int : (Tensor, int) -> (int)`"; let arguments = (ins @@ -12034,7 +12403,8 @@ def Torch_AtenSizeIntOp : Torch_Op<"aten.size.int", [ def Torch_AtenSumOp : Torch_Op<"aten.sum", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sum : (Tensor, int?) -> (Tensor)`"; let arguments = (ins @@ -12058,7 +12428,8 @@ def Torch_AtenSumOp : Torch_Op<"aten.sum", [ def Torch_AtenSumDimIntListOp : Torch_Op<"aten.sum.dim_IntList", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sum.dim_IntList : (Tensor, int[]?, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -12084,7 +12455,8 @@ def Torch_AtenSumDimIntListOp : Torch_Op<"aten.sum.dim_IntList", [ def Torch_AtenProdDimIntOp : Torch_Op<"aten.prod.dim_int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::prod.dim_int : (Tensor, int, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -12110,7 +12482,8 @@ def Torch_AtenProdDimIntOp : Torch_Op<"aten.prod.dim_int", [ def Torch_AtenProdOp : Torch_Op<"aten.prod", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::prod : (Tensor, int?) -> (Tensor)`"; let arguments = (ins @@ -12134,7 +12507,8 @@ def Torch_AtenProdOp : Torch_Op<"aten.prod", [ def Torch_AtenMaxOp : Torch_Op<"aten.max", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -12157,7 +12531,8 @@ def Torch_AtenMaxOp : Torch_Op<"aten.max", [ def Torch_AtenMaxOtherOp : Torch_Op<"aten.max.other", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max.other : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -12182,7 +12557,8 @@ def Torch_AtenMaxOtherOp : Torch_Op<"aten.max.other", [ def Torch_AtenMaxDimOp : Torch_Op<"aten.max.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::max.dim : (Tensor, int, bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -12208,7 +12584,8 @@ def Torch_AtenMaxDimOp : Torch_Op<"aten.max.dim", [ def Torch_AtenAmaxOp : Torch_Op<"aten.amax", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::amax : (Tensor, int[], bool) -> (Tensor)`"; let arguments = (ins @@ -12233,7 +12610,8 @@ def Torch_AtenAmaxOp : Torch_Op<"aten.amax", [ def Torch_AtenMinOp : Torch_Op<"aten.min", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::min : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -12256,7 +12634,8 @@ def Torch_AtenMinOp : Torch_Op<"aten.min", [ def Torch_AtenMinOtherOp : Torch_Op<"aten.min.other", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::min.other : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -12281,7 +12660,8 @@ def Torch_AtenMinOtherOp : Torch_Op<"aten.min.other", [ def Torch_AtenMinDimOp : Torch_Op<"aten.min.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::min.dim : (Tensor, int, bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -12307,7 +12687,8 @@ def Torch_AtenMinDimOp : Torch_Op<"aten.min.dim", [ def Torch_AtenAminOp : Torch_Op<"aten.amin", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::amin : (Tensor, int[], bool) -> (Tensor)`"; let arguments = (ins @@ -12332,7 +12713,8 @@ def Torch_AtenAminOp : Torch_Op<"aten.amin", [ def Torch_AtenAminmaxOp : Torch_Op<"aten.aminmax", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::aminmax : (Tensor, int?, bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -12357,7 +12739,8 @@ def Torch_AtenAminmaxOp : Torch_Op<"aten.aminmax", [ def Torch_AtenToDtypeOp : Torch_Op<"aten.to.dtype", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::to.dtype : (Tensor, int, bool, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -12384,7 +12767,8 @@ def Torch_AtenToDtypeOp : Torch_Op<"aten.to.dtype", [ def Torch_AtenToDtypeLayoutOp : Torch_Op<"aten.to.dtype_layout", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::to.dtype_layout : (Tensor, int?, int?, Device?, bool?, bool, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -12415,7 +12799,8 @@ def Torch_AtenToDtypeLayoutOp : Torch_Op<"aten.to.dtype_layout", [ def Torch_AtenToOtherOp : Torch_Op<"aten.to.other", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::to.other : (Tensor, Tensor, bool, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -12442,7 +12827,8 @@ def Torch_AtenToOtherOp : Torch_Op<"aten.to.other", [ def Torch_AtenToPrimDeviceOp : Torch_Op<"aten.to.prim_Device", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::to.prim_Device : (Tensor, Device?, int?, bool, bool) -> (Tensor)`"; let arguments = (ins @@ -12468,7 +12854,8 @@ def Torch_AtenToPrimDeviceOp : Torch_Op<"aten.to.prim_Device", [ def Torch_AtenToDeviceOp : Torch_Op<"aten.to.device", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::to.device : (Tensor, Device, int, bool, bool, int?) -> (Tensor)`"; let arguments = (ins @@ -12496,7 +12883,8 @@ def Torch_AtenToDeviceOp : Torch_Op<"aten.to.device", [ def Torch_Aten_CastFloatOp : Torch_Op<"aten._cast_Float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_cast_Float : (Tensor, bool) -> (Tensor)`"; let arguments = (ins @@ -12521,7 +12909,8 @@ def Torch_Aten_CastFloatOp : Torch_Op<"aten._cast_Float", [ def Torch_Aten_CastLongOp : Torch_Op<"aten._cast_Long", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_cast_Long : (Tensor, bool) -> (Tensor)`"; let arguments = (ins @@ -12546,7 +12935,8 @@ def Torch_Aten_CastLongOp : Torch_Op<"aten._cast_Long", [ def Torch_AtenTypeAsOp : Torch_Op<"aten.type_as", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::type_as : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -12569,7 +12959,8 @@ def Torch_AtenTypeAsOp : Torch_Op<"aten.type_as", [ def Torch_AtenViewOp : Torch_Op<"aten.view", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::view : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -12593,7 +12984,8 @@ def Torch_AtenViewOp : Torch_Op<"aten.view", [ def Torch_AtenViewDtypeOp : Torch_Op<"aten.view.dtype", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::view.dtype : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -12617,7 +13009,8 @@ def Torch_AtenViewDtypeOp : Torch_Op<"aten.view.dtype", [ def Torch_Aten_UnsafeViewOp : Torch_Op<"aten._unsafe_view", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_unsafe_view : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -12641,7 +13034,8 @@ def Torch_Aten_UnsafeViewOp : Torch_Op<"aten._unsafe_view", [ def Torch_AtenWhereSelfOp : Torch_Op<"aten.where.self", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::where.self : (Tensor, Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -12667,7 +13061,8 @@ def Torch_AtenWhereSelfOp : Torch_Op<"aten.where.self", [ def Torch_AtenWhereScalarOp : Torch_Op<"aten.where.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::where.Scalar : (Tensor, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -12694,7 +13089,8 @@ def Torch_AtenWhereScalarOp : Torch_Op<"aten.where.Scalar", [ def Torch_AtenWhereScalarOtherOp : Torch_Op<"aten.where.ScalarOther", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::where.ScalarOther : (Tensor, Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -12720,7 +13116,8 @@ def Torch_AtenWhereScalarOtherOp : Torch_Op<"aten.where.ScalarOther", [ def Torch_AtenWhereScalarSelfOp : Torch_Op<"aten.where.ScalarSelf", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::where.ScalarSelf : (Tensor, Scalar, Tensor) -> (Tensor)`"; let arguments = (ins @@ -12746,7 +13143,8 @@ def Torch_AtenWhereScalarSelfOp : Torch_Op<"aten.where.ScalarSelf", [ def Torch_AtenNanToNumOp : Torch_Op<"aten.nan_to_num", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::nan_to_num : (Tensor, float?, float?, float?) -> (Tensor)`"; let arguments = (ins @@ -12771,7 +13169,8 @@ def Torch_AtenNanToNumOp : Torch_Op<"aten.nan_to_num", [ def Torch_AtenSliceTensorOp : Torch_Op<"aten.slice.Tensor", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::slice.Tensor : (Tensor, int, int?, int?, int) -> (Tensor)`"; let arguments = (ins @@ -12799,7 +13198,8 @@ def Torch_AtenSliceTensorOp : Torch_Op<"aten.slice.Tensor", [ def Torch_AtenLenTensorOp : Torch_Op<"aten.len.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::len.Tensor : (Tensor) -> (int)`"; let arguments = (ins @@ -12821,7 +13221,8 @@ def Torch_AtenLenTensorOp : Torch_Op<"aten.len.Tensor", [ def Torch_AtenCpuOp : Torch_Op<"aten.cpu", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::cpu : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -12844,7 +13245,8 @@ def Torch_AtenCpuOp : Torch_Op<"aten.cpu", [ def Torch_AtenGatherOp : Torch_Op<"aten.gather", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::gather : (Tensor, int, Tensor, bool) -> (Tensor)`"; let arguments = (ins @@ -12870,7 +13272,8 @@ def Torch_AtenGatherOp : Torch_Op<"aten.gather", [ def Torch_AtenScatterAddOp : Torch_Op<"aten.scatter_add", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::scatter_add : (Tensor, int, Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -12921,7 +13324,8 @@ def Torch_AtenScatterAdd_Op : Torch_Op<"aten.scatter_add_", [ def Torch_AtenScatterReduceTwoOp : Torch_Op<"aten.scatter_reduce.two", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::scatter_reduce.two : (Tensor, int, Tensor, Tensor, str, bool) -> (Tensor)`"; let arguments = (ins @@ -12976,7 +13380,8 @@ def Torch_AtenScatterReduce_TwoOp : Torch_Op<"aten.scatter_reduce_.two", [ def Torch_AtenIntImplicitOp : Torch_Op<"aten.IntImplicit", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::IntImplicit : (Tensor) -> (int)`"; let arguments = (ins @@ -13000,7 +13405,8 @@ def Torch_AtenIntImplicitOp : Torch_Op<"aten.IntImplicit", [ def Torch_AtenFloatImplicitOp : Torch_Op<"aten.FloatImplicit", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::FloatImplicit : (Tensor) -> (float)`"; let arguments = (ins @@ -13024,7 +13430,8 @@ def Torch_AtenFloatImplicitOp : Torch_Op<"aten.FloatImplicit", [ def Torch_AtenTensorFloatOp : Torch_Op<"aten.tensor.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tensor.float : (float, int?, Device?, bool) -> (Tensor)`"; let arguments = (ins @@ -13051,7 +13458,8 @@ def Torch_AtenTensorFloatOp : Torch_Op<"aten.tensor.float", [ def Torch_AtenIntTensorOp : Torch_Op<"aten.Int.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::Int.Tensor : (Tensor) -> (int)`"; let arguments = (ins @@ -13076,7 +13484,8 @@ def Torch_AtenIntTensorOp : Torch_Op<"aten.Int.Tensor", [ def Torch_AtenFloatTensorOp : Torch_Op<"aten.Float.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::Float.Tensor : (Tensor) -> (float)`"; let arguments = (ins @@ -13100,7 +13509,8 @@ def Torch_AtenFloatTensorOp : Torch_Op<"aten.Float.Tensor", [ def Torch_AtenDropoutOp : Torch_Op<"aten.dropout", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::dropout : (Tensor, float, bool) -> (Tensor)`"; let arguments = (ins @@ -13149,7 +13559,8 @@ def Torch_AtenDropout_Op : Torch_Op<"aten.dropout_", [ def Torch_AtenNativeDropoutOp : Torch_Op<"aten.native_dropout", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::native_dropout : (Tensor, float, bool?) -> (Tensor, Tensor)`"; let arguments = (ins @@ -13174,7 +13585,8 @@ def Torch_AtenNativeDropoutOp : Torch_Op<"aten.native_dropout", [ def Torch_AtenTOp : Torch_Op<"aten.t", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::t : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -13196,7 +13608,8 @@ def Torch_AtenTOp : Torch_Op<"aten.t", [ def Torch_AtenNumpyTOp : Torch_Op<"aten.numpy_T", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::numpy_T : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -13219,7 +13632,8 @@ def Torch_AtenNumpyTOp : Torch_Op<"aten.numpy_T", [ def Torch_AtenFullOp : Torch_Op<"aten.full", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::full : (int[], Scalar, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -13248,7 +13662,8 @@ def Torch_AtenFullOp : Torch_Op<"aten.full", [ def Torch_AtenFullLikeOp : Torch_Op<"aten.full_like", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::full_like : (Tensor, Scalar, int?, int?, Device?, bool?, int?) -> (Tensor)`"; let arguments = (ins @@ -13277,7 +13692,8 @@ def Torch_AtenFullLikeOp : Torch_Op<"aten.full_like", [ def Torch_AtenNewFullOp : Torch_Op<"aten.new_full", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::new_full : (Tensor, int[], Scalar, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -13306,7 +13722,8 @@ def Torch_AtenNewFullOp : Torch_Op<"aten.new_full", [ def Torch_AtenBaddbmmOp : Torch_Op<"aten.baddbmm", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::baddbmm : (Tensor, Tensor, Tensor, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -13359,7 +13776,8 @@ def Torch_AtenBaddbmm_Op : Torch_Op<"aten.baddbmm_", [ def Torch_AtenHannWindowPeriodicOp : Torch_Op<"aten.hann_window.periodic", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::hann_window.periodic : (int, bool, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -13387,7 +13805,8 @@ def Torch_AtenHannWindowPeriodicOp : Torch_Op<"aten.hann_window.periodic", [ def Torch_AtenFftFftOp : Torch_Op<"aten.fft_fft", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fft_fft : (Tensor, int?, int, str?) -> (Tensor)`"; let arguments = (ins @@ -13413,7 +13832,8 @@ def Torch_AtenFftFftOp : Torch_Op<"aten.fft_fft", [ def Torch_AtenFftRfftOp : Torch_Op<"aten.fft_rfft", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fft_rfft : (Tensor, int?, int, str?) -> (Tensor)`"; let arguments = (ins @@ -13439,7 +13859,8 @@ def Torch_AtenFftRfftOp : Torch_Op<"aten.fft_rfft", [ def Torch_AtenFftIfftOp : Torch_Op<"aten.fft_ifft", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fft_ifft : (Tensor, int?, int, str?) -> (Tensor)`"; let arguments = (ins @@ -13465,7 +13886,8 @@ def Torch_AtenFftIfftOp : Torch_Op<"aten.fft_ifft", [ def Torch_AtenFmodTensorOp : Torch_Op<"aten.fmod.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::fmod.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -13489,7 +13911,8 @@ def Torch_AtenFmodTensorOp : Torch_Op<"aten.fmod.Tensor", [ def Torch_AtenUniqueConsecutiveOp : Torch_Op<"aten.unique_consecutive", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::unique_consecutive : (Tensor, bool, bool, int?) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -13517,7 +13940,8 @@ def Torch_AtenUniqueConsecutiveOp : Torch_Op<"aten.unique_consecutive", [ def Torch_AtenUniqueDimOp : Torch_Op<"aten.unique_dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::unique_dim : (Tensor, int, bool, bool, bool) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -13546,7 +13970,8 @@ def Torch_AtenUniqueDimOp : Torch_Op<"aten.unique_dim", [ def Torch_AtenLinspaceOp : Torch_Op<"aten.linspace", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::linspace : (Scalar, Scalar, int, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -13575,7 +14000,8 @@ def Torch_AtenLinspaceOp : Torch_Op<"aten.linspace", [ def Torch_AtenLinalgCrossOp : Torch_Op<"aten.linalg_cross", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::linalg_cross : (Tensor, Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -13601,7 +14027,8 @@ def Torch_AtenLinalgCrossOp : Torch_Op<"aten.linalg_cross", [ def Torch_AtenCol2imOp : Torch_Op<"aten.col2im", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::col2im : (Tensor, int[], int[], int[], int[], int[]) -> (Tensor)`"; let arguments = (ins @@ -13629,7 +14056,8 @@ def Torch_AtenCol2imOp : Torch_Op<"aten.col2im", [ def Torch_AtenKthvalueOp : Torch_Op<"aten.kthvalue", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::kthvalue : (Tensor, int, int, bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -13657,7 +14085,8 @@ def Torch_AtenKthvalueOp : Torch_Op<"aten.kthvalue", [ def Torch_AtenStftOp : Torch_Op<"aten.stft", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::stft : (Tensor, int, int?, int?, Tensor?, bool, bool?, bool?) -> (Tensor)`"; let arguments = (ins @@ -13687,7 +14116,8 @@ def Torch_AtenStftOp : Torch_Op<"aten.stft", [ def Torch_AtenAliasCopyOp : Torch_Op<"aten.alias_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::alias_copy : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -13709,7 +14139,8 @@ def Torch_AtenAliasCopyOp : Torch_Op<"aten.alias_copy", [ def Torch_AtenAliasOp : Torch_Op<"aten.alias", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::alias : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -13733,7 +14164,8 @@ def Torch_AtenAliasOp : Torch_Op<"aten.alias", [ def Torch_AtenAsStridedCopyOp : Torch_Op<"aten.as_strided_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::as_strided_copy : (Tensor, int[], int[], int?) -> (Tensor)`"; let arguments = (ins @@ -13758,7 +14190,8 @@ def Torch_AtenAsStridedCopyOp : Torch_Op<"aten.as_strided_copy", [ def Torch_AtenAsStridedOp : Torch_Op<"aten.as_strided", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::as_strided : (Tensor, int[], int[], int?) -> (Tensor)`"; let arguments = (ins @@ -13783,7 +14216,8 @@ def Torch_AtenAsStridedOp : Torch_Op<"aten.as_strided", [ def Torch_AtenDiagonalOp : Torch_Op<"aten.diagonal", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::diagonal : (Tensor, int, int, int) -> (Tensor)`"; let arguments = (ins @@ -13809,7 +14243,8 @@ def Torch_AtenDiagonalOp : Torch_Op<"aten.diagonal", [ def Torch_AtenDiagonalCopyOp : Torch_Op<"aten.diagonal_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::diagonal_copy : (Tensor, int, int, int) -> (Tensor)`"; let arguments = (ins @@ -13835,7 +14270,8 @@ def Torch_AtenDiagonalCopyOp : Torch_Op<"aten.diagonal_copy", [ def Torch_AtenExpandCopyOp : Torch_Op<"aten.expand_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::expand_copy : (Tensor, int[], bool) -> (Tensor)`"; let arguments = (ins @@ -13860,7 +14296,8 @@ def Torch_AtenExpandCopyOp : Torch_Op<"aten.expand_copy", [ def Torch_AtenPermuteCopyOp : Torch_Op<"aten.permute_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::permute_copy : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -13884,7 +14321,8 @@ def Torch_AtenPermuteCopyOp : Torch_Op<"aten.permute_copy", [ def Torch_Aten_ReshapeAliasCopyOp : Torch_Op<"aten._reshape_alias_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_reshape_alias_copy : (Tensor, int[], int[]) -> (Tensor)`"; let arguments = (ins @@ -13909,7 +14347,8 @@ def Torch_Aten_ReshapeAliasCopyOp : Torch_Op<"aten._reshape_alias_copy", [ def Torch_AtenSelectCopyIntOp : Torch_Op<"aten.select_copy.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::select_copy.int : (Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -13934,7 +14373,8 @@ def Torch_AtenSelectCopyIntOp : Torch_Op<"aten.select_copy.int", [ def Torch_AtenDetachCopyOp : Torch_Op<"aten.detach_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::detach_copy : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -13957,7 +14397,8 @@ def Torch_AtenDetachCopyOp : Torch_Op<"aten.detach_copy", [ def Torch_AtenSliceCopyTensorOp : Torch_Op<"aten.slice_copy.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::slice_copy.Tensor : (Tensor, int, int?, int?, int) -> (Tensor)`"; let arguments = (ins @@ -13984,7 +14425,8 @@ def Torch_AtenSliceCopyTensorOp : Torch_Op<"aten.slice_copy.Tensor", [ def Torch_AtenSqueezeCopyOp : Torch_Op<"aten.squeeze_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::squeeze_copy : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -14007,7 +14449,8 @@ def Torch_AtenSqueezeCopyOp : Torch_Op<"aten.squeeze_copy", [ def Torch_AtenSqueezeCopyDimOp : Torch_Op<"aten.squeeze_copy.dim", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::squeeze_copy.dim : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -14031,7 +14474,8 @@ def Torch_AtenSqueezeCopyDimOp : Torch_Op<"aten.squeeze_copy.dim", [ def Torch_AtenTCopyOp : Torch_Op<"aten.t_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::t_copy : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -14054,7 +14498,8 @@ def Torch_AtenTCopyOp : Torch_Op<"aten.t_copy", [ def Torch_AtenTransposeCopyIntOp : Torch_Op<"aten.transpose_copy.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::transpose_copy.int : (Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -14079,7 +14524,8 @@ def Torch_AtenTransposeCopyIntOp : Torch_Op<"aten.transpose_copy.int", [ def Torch_AtenUnsqueezeCopyOp : Torch_Op<"aten.unsqueeze_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::unsqueeze_copy : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -14103,7 +14549,8 @@ def Torch_AtenUnsqueezeCopyOp : Torch_Op<"aten.unsqueeze_copy", [ def Torch_AtenViewCopyOp : Torch_Op<"aten.view_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::view_copy : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -14127,7 +14574,8 @@ def Torch_AtenViewCopyOp : Torch_Op<"aten.view_copy", [ def Torch_AtenViewCopyDtypeOp : Torch_Op<"aten.view_copy.dtype", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::view_copy.dtype : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -14150,7 +14598,8 @@ def Torch_AtenViewCopyDtypeOp : Torch_Op<"aten.view_copy.dtype", [ def Torch_AtenUnfoldOp : Torch_Op<"aten.unfold", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::unfold : (Tensor, int, int, int) -> (Tensor)`"; let arguments = (ins @@ -14176,7 +14625,8 @@ def Torch_AtenUnfoldOp : Torch_Op<"aten.unfold", [ def Torch_AtenUnfoldCopyOp : Torch_Op<"aten.unfold_copy", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::unfold_copy : (Tensor, int, int, int) -> (Tensor)`"; let arguments = (ins @@ -14202,7 +14652,8 @@ def Torch_AtenUnfoldCopyOp : Torch_Op<"aten.unfold_copy", [ def Torch_AtenIm2colOp : Torch_Op<"aten.im2col", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::im2col : (Tensor, int[], int[], int[], int[]) -> (Tensor)`"; let arguments = (ins @@ -14229,7 +14680,8 @@ def Torch_AtenIm2colOp : Torch_Op<"aten.im2col", [ def Torch_AtenScatterReduceOp : Torch_Op<"aten.scatter.reduce", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::scatter.reduce : (Tensor, int, Tensor, Tensor, str) -> (Tensor)`"; let arguments = (ins @@ -14256,7 +14708,8 @@ def Torch_AtenScatterReduceOp : Torch_Op<"aten.scatter.reduce", [ def Torch_AtenSelectScatterOp : Torch_Op<"aten.select_scatter", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::select_scatter : (Tensor, Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -14282,7 +14735,8 @@ def Torch_AtenSelectScatterOp : Torch_Op<"aten.select_scatter", [ def Torch_AtenSliceScatterOp : Torch_Op<"aten.slice_scatter", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::slice_scatter : (Tensor, Tensor, int, int?, int?, int) -> (Tensor)`"; let arguments = (ins @@ -14310,7 +14764,8 @@ def Torch_AtenSliceScatterOp : Torch_Op<"aten.slice_scatter", [ def Torch_AtenDiagonalScatterOp : Torch_Op<"aten.diagonal_scatter", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::diagonal_scatter : (Tensor, Tensor, int, int, int) -> (Tensor)`"; let arguments = (ins @@ -14337,7 +14792,8 @@ def Torch_AtenDiagonalScatterOp : Torch_Op<"aten.diagonal_scatter", [ def Torch_AtenAsStridedScatterOp : Torch_Op<"aten.as_strided_scatter", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::as_strided_scatter : (Tensor, Tensor, int[], int[], int?) -> (Tensor)`"; let arguments = (ins @@ -14364,7 +14820,8 @@ def Torch_AtenAsStridedScatterOp : Torch_Op<"aten.as_strided_scatter", [ def Torch_AtenUpsampleNearest1dOp : Torch_Op<"aten.upsample_nearest1d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::upsample_nearest1d : (Tensor, int[], float?) -> (Tensor)`"; let arguments = (ins @@ -14389,7 +14846,8 @@ def Torch_AtenUpsampleNearest1dOp : Torch_Op<"aten.upsample_nearest1d", [ def Torch_AtenUpsampleNearest1dVecOp : Torch_Op<"aten.upsample_nearest1d.vec", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::upsample_nearest1d.vec : (Tensor, int[]?, float[]?) -> (Tensor)`"; let arguments = (ins @@ -14414,7 +14872,8 @@ def Torch_AtenUpsampleNearest1dVecOp : Torch_Op<"aten.upsample_nearest1d.vec", [ def Torch_AtenUpsampleNearest2dOp : Torch_Op<"aten.upsample_nearest2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::upsample_nearest2d : (Tensor, int[], float?, float?) -> (Tensor)`"; let arguments = (ins @@ -14440,7 +14899,8 @@ def Torch_AtenUpsampleNearest2dOp : Torch_Op<"aten.upsample_nearest2d", [ def Torch_AtenUpsampleNearest2dVecOp : Torch_Op<"aten.upsample_nearest2d.vec", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::upsample_nearest2d.vec : (Tensor, int[]?, float[]?) -> (Tensor)`"; let arguments = (ins @@ -14465,7 +14925,8 @@ def Torch_AtenUpsampleNearest2dVecOp : Torch_Op<"aten.upsample_nearest2d.vec", [ def Torch_AtenUpsampleBilinear2dOp : Torch_Op<"aten.upsample_bilinear2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::upsample_bilinear2d : (Tensor, int[], bool, float?, float?) -> (Tensor)`"; let arguments = (ins @@ -14492,7 +14953,8 @@ def Torch_AtenUpsampleBilinear2dOp : Torch_Op<"aten.upsample_bilinear2d", [ def Torch_AtenUpsampleBilinear2dVecOp : Torch_Op<"aten.upsample_bilinear2d.vec", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::upsample_bilinear2d.vec : (Tensor, int[]?, bool, float[]?) -> (Tensor)`"; let arguments = (ins @@ -14518,7 +14980,8 @@ def Torch_AtenUpsampleBilinear2dVecOp : Torch_Op<"aten.upsample_bilinear2d.vec", def Torch_AtenScaledDotProductAttentionOp : Torch_Op<"aten.scaled_dot_product_attention", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::scaled_dot_product_attention : (Tensor, Tensor, Tensor, Tensor?, float, bool, float?, bool) -> (Tensor)`"; let arguments = (ins @@ -14548,7 +15011,8 @@ def Torch_AtenScaledDotProductAttentionOp : Torch_Op<"aten.scaled_dot_product_at def Torch_AtenGridSamplerOp : Torch_Op<"aten.grid_sampler", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::grid_sampler : (Tensor, Tensor, int, int, bool) -> (Tensor)`"; let arguments = (ins @@ -14575,7 +15039,8 @@ def Torch_AtenGridSamplerOp : Torch_Op<"aten.grid_sampler", [ def Torch_Aten_TrilinearOp : Torch_Op<"aten._trilinear", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_trilinear : (Tensor, Tensor, Tensor, int[], int[], int[], int[], int) -> (Tensor)`"; let arguments = (ins @@ -14605,7 +15070,8 @@ def Torch_Aten_TrilinearOp : Torch_Op<"aten._trilinear", [ def Torch_Aten__Contains__StrOp : Torch_Op<"aten.__contains__.str", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__contains__.str : (Dict(str, t), str) -> (bool)`"; let arguments = (ins @@ -14630,7 +15096,8 @@ def Torch_Aten__Contains__StrOp : Torch_Op<"aten.__contains__.str", [ def Torch_Aten__Contains__IntListOp : Torch_Op<"aten.__contains__.int_list", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__contains__.int_list : (int[], int) -> (bool)`"; let arguments = (ins @@ -14654,7 +15121,8 @@ def Torch_Aten__Contains__IntListOp : Torch_Op<"aten.__contains__.int_list", [ def Torch_Aten__Getitem__DictStrOp : Torch_Op<"aten.__getitem__.Dict_str", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__getitem__.Dict_str : (Dict(str, t), str) -> (t)`"; let arguments = (ins @@ -14700,7 +15168,8 @@ def Torch_Aten_SetItemStrOp : Torch_Op<"aten._set_item.str", [ def Torch_AtenKeysStrOp : Torch_Op<"aten.keys.str", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::keys.str : (Dict(str, t)) -> (str[])`"; let arguments = (ins @@ -14722,7 +15191,8 @@ def Torch_AtenKeysStrOp : Torch_Op<"aten.keys.str", [ def Torch_AtenGetDefaultStrOp : Torch_Op<"aten.get.default_str", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::get.default_str : (Dict(str, t), str, t) -> (t)`"; let arguments = (ins @@ -14768,7 +15238,8 @@ def Torch_AtenDeleteDictStrOp : Torch_Op<"aten.Delete.Dict_str", [ def Torch_AtenCatOp : Torch_Op<"aten.cat", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::cat : (Tensor[], int) -> (Tensor)`"; let arguments = (ins @@ -14794,7 +15265,8 @@ def Torch_AtenCatOp : Torch_Op<"aten.cat", [ def Torch_AtenStackOp : Torch_Op<"aten.stack", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::stack : (Tensor[], int) -> (Tensor)`"; let arguments = (ins @@ -14818,7 +15290,8 @@ def Torch_AtenStackOp : Torch_Op<"aten.stack", [ def Torch_AtenHstackOp : Torch_Op<"aten.hstack", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::hstack : (Tensor[]) -> (Tensor)`"; let arguments = (ins @@ -14841,7 +15314,8 @@ def Torch_AtenHstackOp : Torch_Op<"aten.hstack", [ def Torch_AtenColumnStackOp : Torch_Op<"aten.column_stack", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::column_stack : (Tensor[]) -> (Tensor)`"; let arguments = (ins @@ -14886,7 +15360,8 @@ def Torch_AtenAppendTOp : Torch_Op<"aten.append.t", [ def Torch_AtenAddTOp : Torch_Op<"aten.add.t", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::add.t : (t[], t[]) -> (t[])`"; let arguments = (ins @@ -14911,7 +15386,8 @@ def Torch_AtenAddTOp : Torch_Op<"aten.add.t", [ def Torch_AtenEqIntListOp : Torch_Op<"aten.eq.int_list", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::eq.int_list : (int[], int[]) -> (bool)`"; let arguments = (ins @@ -14936,7 +15412,8 @@ def Torch_AtenEqIntListOp : Torch_Op<"aten.eq.int_list", [ def Torch_AtenListTOp : Torch_Op<"aten.list.t", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::list.t : (t[]) -> (t[])`"; let arguments = (ins @@ -14959,7 +15436,8 @@ def Torch_AtenListTOp : Torch_Op<"aten.list.t", [ def Torch_AtenSliceTOp : Torch_Op<"aten.slice.t", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::slice.t : (t[], int?, int?, int) -> (t[])`"; let arguments = (ins @@ -15008,7 +15486,8 @@ def Torch_AtenInsertTOp : Torch_Op<"aten.insert.t", [ def Torch_AtenNeIntListOp : Torch_Op<"aten.ne.int_list", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ne.int_list : (int[], int[]) -> (bool)`"; let arguments = (ins @@ -15032,7 +15511,8 @@ def Torch_AtenNeIntListOp : Torch_Op<"aten.ne.int_list", [ def Torch_AtenAnyBoolOp : Torch_Op<"aten.any.bool", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::any.bool : (bool[]) -> (bool)`"; let arguments = (ins @@ -15078,7 +15558,8 @@ def Torch_AtenSortIntOp : Torch_Op<"aten.sort.int", [ def Torch_AtenSortOp : Torch_Op<"aten.sort", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sort : (Tensor, int, bool) -> (Tensor, Tensor)`"; let arguments = (ins @@ -15104,7 +15585,8 @@ def Torch_AtenSortOp : Torch_Op<"aten.sort", [ def Torch_AtenSplitTensorOp : Torch_Op<"aten.split.Tensor", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::split.Tensor : (Tensor, int, int) -> (Tensor[])`"; let arguments = (ins @@ -15128,7 +15610,8 @@ def Torch_AtenSplitTensorOp : Torch_Op<"aten.split.Tensor", [ def Torch_AtenSplitWithSizesOp : Torch_Op<"aten.split_with_sizes", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::split_with_sizes : (Tensor, int[], int) -> (Tensor[])`"; let arguments = (ins @@ -15152,7 +15635,8 @@ def Torch_AtenSplitWithSizesOp : Torch_Op<"aten.split_with_sizes", [ def Torch_AtenSplitSizesOp : Torch_Op<"aten.split.sizes", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::split.sizes : (Tensor, int[], int) -> (Tensor[])`"; let arguments = (ins @@ -15177,7 +15661,8 @@ def Torch_AtenSplitSizesOp : Torch_Op<"aten.split.sizes", [ def Torch_AtenTensorSplitSectionsOp : Torch_Op<"aten.tensor_split.sections", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tensor_split.sections : (Tensor, int, int) -> (Tensor[])`"; let arguments = (ins @@ -15201,7 +15686,8 @@ def Torch_AtenTensorSplitSectionsOp : Torch_Op<"aten.tensor_split.sections", [ def Torch_AtenUnbindIntOp : Torch_Op<"aten.unbind.int", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::unbind.int : (Tensor, int) -> (Tensor[])`"; let arguments = (ins @@ -15224,7 +15710,8 @@ def Torch_AtenUnbindIntOp : Torch_Op<"aten.unbind.int", [ def Torch_AtenChunkOp : Torch_Op<"aten.chunk", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::chunk : (Tensor, int, int) -> (Tensor[])`"; let arguments = (ins @@ -15249,7 +15736,8 @@ def Torch_AtenChunkOp : Torch_Op<"aten.chunk", [ def Torch_AtenMeshgridOp : Torch_Op<"aten.meshgrid", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::meshgrid : (Tensor[]) -> (Tensor[])`"; let arguments = (ins @@ -15273,7 +15761,8 @@ def Torch_AtenMeshgridOp : Torch_Op<"aten.meshgrid", [ def Torch_AtenMeshgridIndexingOp : Torch_Op<"aten.meshgrid.indexing", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::meshgrid.indexing : (Tensor[], str) -> (Tensor[])`"; let arguments = (ins @@ -15297,7 +15786,8 @@ def Torch_AtenMeshgridIndexingOp : Torch_Op<"aten.meshgrid.indexing", [ def Torch_AtenAddStrOp : Torch_Op<"aten.add.str", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::add.str : (str, str) -> (str)`"; let arguments = (ins @@ -15321,7 +15811,8 @@ def Torch_AtenAddStrOp : Torch_Op<"aten.add.str", [ def Torch_AtenEqStrOp : Torch_Op<"aten.eq.str", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::eq.str : (str, str) -> (bool)`"; let arguments = (ins @@ -15346,7 +15837,8 @@ def Torch_AtenEqStrOp : Torch_Op<"aten.eq.str", [ def Torch_AtenNeStrOp : Torch_Op<"aten.ne.str", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ne.str : (str, str) -> (bool)`"; let arguments = (ins @@ -15371,7 +15863,8 @@ def Torch_AtenNeStrOp : Torch_Op<"aten.ne.str", [ def Torch_AtenLenStrOp : Torch_Op<"aten.len.str", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::len.str : (str) -> (int)`"; let arguments = (ins @@ -15395,7 +15888,8 @@ def Torch_AtenLenStrOp : Torch_Op<"aten.len.str", [ def Torch_AtenStrOp : Torch_Op<"aten.str", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::str : (t) -> (str)`"; let arguments = (ins @@ -15417,7 +15911,8 @@ def Torch_AtenStrOp : Torch_Op<"aten.str", [ def Torch_AtenFormatOp : Torch_Op<"aten.format", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::format : (...) -> (str)`"; let arguments = (ins @@ -15432,7 +15927,8 @@ def Torch_AtenFormatOp : Torch_Op<"aten.format", [ def Torch_AtenJoinOp : Torch_Op<"aten.join", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::join : (str, str[]) -> (str)`"; let arguments = (ins @@ -15479,7 +15975,8 @@ def Torch_AtenWarnOp : Torch_Op<"aten.warn", [ def Torch_Aten__Contains__StrListOp : Torch_Op<"aten.__contains__.str_list", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__contains__.str_list : (str[], str) -> (bool)`"; let arguments = (ins @@ -15504,7 +16001,8 @@ def Torch_Aten__Contains__StrListOp : Torch_Op<"aten.__contains__.str_list", [ def Torch_AtenFloatScalarOp : Torch_Op<"aten.Float.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::Float.Scalar : (Scalar) -> (float)`"; let arguments = (ins @@ -15528,7 +16026,8 @@ def Torch_AtenFloatScalarOp : Torch_Op<"aten.Float.Scalar", [ def Torch_AtenFloatStrOp : Torch_Op<"aten.Float.str", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::Float.str : (str) -> (float)`"; let arguments = (ins @@ -15551,7 +16050,8 @@ def Torch_AtenFloatStrOp : Torch_Op<"aten.Float.str", [ def Torch_AtenIntFloatOp : Torch_Op<"aten.Int.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::Int.float : (float) -> (int)`"; let arguments = (ins @@ -15575,7 +16075,8 @@ def Torch_AtenIntFloatOp : Torch_Op<"aten.Int.float", [ def Torch_AtenIntScalarOp : Torch_Op<"aten.Int.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::Int.Scalar : (Scalar) -> (int)`"; let arguments = (ins @@ -15599,7 +16100,8 @@ def Torch_AtenIntScalarOp : Torch_Op<"aten.Int.Scalar", [ def Torch_AtenIntBoolOp : Torch_Op<"aten.Int.bool", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::Int.bool : (bool) -> (int)`"; let arguments = (ins @@ -15623,7 +16125,8 @@ def Torch_AtenIntBoolOp : Torch_Op<"aten.Int.bool", [ def Torch_Aten__RangeLengthOp : Torch_Op<"aten.__range_length", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__range_length : (int, int, int) -> (int)`"; let arguments = (ins @@ -15649,7 +16152,8 @@ def Torch_Aten__RangeLengthOp : Torch_Op<"aten.__range_length", [ def Torch_Aten__DeriveIndexOp : Torch_Op<"aten.__derive_index", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__derive_index : (int, int, int) -> (int)`"; let arguments = (ins @@ -15675,7 +16179,8 @@ def Torch_Aten__DeriveIndexOp : Torch_Op<"aten.__derive_index", [ def Torch_AtenGtIntOp : Torch_Op<"aten.gt.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::gt.int : (int, int) -> (bool)`"; let arguments = (ins @@ -15700,7 +16205,8 @@ def Torch_AtenGtIntOp : Torch_Op<"aten.gt.int", [ def Torch_AtenGeIntOp : Torch_Op<"aten.ge.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ge.int : (int, int) -> (bool)`"; let arguments = (ins @@ -15725,7 +16231,8 @@ def Torch_AtenGeIntOp : Torch_Op<"aten.ge.int", [ def Torch_AtenLtIntOp : Torch_Op<"aten.lt.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::lt.int : (int, int) -> (bool)`"; let arguments = (ins @@ -15750,7 +16257,8 @@ def Torch_AtenLtIntOp : Torch_Op<"aten.lt.int", [ def Torch_AtenLeIntOp : Torch_Op<"aten.le.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::le.int : (int, int) -> (bool)`"; let arguments = (ins @@ -15775,7 +16283,8 @@ def Torch_AtenLeIntOp : Torch_Op<"aten.le.int", [ def Torch_AtenNeIntOp : Torch_Op<"aten.ne.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ne.int : (int, int) -> (bool)`"; let arguments = (ins @@ -15800,7 +16309,8 @@ def Torch_AtenNeIntOp : Torch_Op<"aten.ne.int", [ def Torch_AtenEqIntOp : Torch_Op<"aten.eq.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::eq.int : (int, int) -> (bool)`"; let arguments = (ins @@ -15825,7 +16335,8 @@ def Torch_AtenEqIntOp : Torch_Op<"aten.eq.int", [ def Torch_AtenFloordivIntOp : Torch_Op<"aten.floordiv.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::floordiv.int : (int, int) -> (int)`"; let arguments = (ins @@ -15851,7 +16362,8 @@ def Torch_AtenFloordivIntOp : Torch_Op<"aten.floordiv.int", [ def Torch_AtenRemainderIntOp : Torch_Op<"aten.remainder.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::remainder.int : (int, int) -> (int)`"; let arguments = (ins @@ -15876,7 +16388,8 @@ def Torch_AtenRemainderIntOp : Torch_Op<"aten.remainder.int", [ def Torch_AtenRemainderScalarOp : Torch_Op<"aten.remainder.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::remainder.Scalar : (Tensor, Scalar) -> (Tensor)`"; let arguments = (ins @@ -15901,7 +16414,8 @@ def Torch_AtenRemainderScalarOp : Torch_Op<"aten.remainder.Scalar", [ def Torch_AtenRemainderTensorOp : Torch_Op<"aten.remainder.Tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::remainder.Tensor : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -15925,7 +16439,8 @@ def Torch_AtenRemainderTensorOp : Torch_Op<"aten.remainder.Tensor", [ def Torch_AtenAddIntOp : Torch_Op<"aten.add.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::add.int : (int, int) -> (int)`"; let arguments = (ins @@ -15950,7 +16465,8 @@ def Torch_AtenAddIntOp : Torch_Op<"aten.add.int", [ def Torch_AtenSubIntOp : Torch_Op<"aten.sub.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sub.int : (int, int) -> (int)`"; let arguments = (ins @@ -15975,7 +16491,8 @@ def Torch_AtenSubIntOp : Torch_Op<"aten.sub.int", [ def Torch_AtenMulIntOp : Torch_Op<"aten.mul.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mul.int : (int, int) -> (int)`"; let arguments = (ins @@ -16001,7 +16518,8 @@ def Torch_AtenMulIntOp : Torch_Op<"aten.mul.int", [ def Torch_AtenMulIntFloatOp : Torch_Op<"aten.mul.int_float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mul.int_float : (int, float) -> (float)`"; let arguments = (ins @@ -16026,7 +16544,8 @@ def Torch_AtenMulIntFloatOp : Torch_Op<"aten.mul.int_float", [ def Torch_AtenDivIntOp : Torch_Op<"aten.div.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::div.int : (int, int) -> (float)`"; let arguments = (ins @@ -16051,7 +16570,8 @@ def Torch_AtenDivIntOp : Torch_Op<"aten.div.int", [ def Torch_AtenNegIntOp : Torch_Op<"aten.neg.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::neg.int : (int) -> (int)`"; let arguments = (ins @@ -16075,7 +16595,8 @@ def Torch_AtenNegIntOp : Torch_Op<"aten.neg.int", [ def Torch_AtenLogIntOp : Torch_Op<"aten.log.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::log.int : (int) -> (float)`"; let arguments = (ins @@ -16098,7 +16619,8 @@ def Torch_AtenLogIntOp : Torch_Op<"aten.log.int", [ def Torch_AtenAddFloatIntOp : Torch_Op<"aten.add.float_int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::add.float_int : (float, int) -> (float)`"; let arguments = (ins @@ -16123,7 +16645,8 @@ def Torch_AtenAddFloatIntOp : Torch_Op<"aten.add.float_int", [ def Torch_AtenMulFloatIntOp : Torch_Op<"aten.mul.float_int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mul.float_int : (float, int) -> (float)`"; let arguments = (ins @@ -16148,7 +16671,8 @@ def Torch_AtenMulFloatIntOp : Torch_Op<"aten.mul.float_int", [ def Torch_AtenSubFloatOp : Torch_Op<"aten.sub.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sub.float : (float, float) -> (float)`"; let arguments = (ins @@ -16173,7 +16697,8 @@ def Torch_AtenSubFloatOp : Torch_Op<"aten.sub.float", [ def Torch_AtenMulFloatOp : Torch_Op<"aten.mul.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mul.float : (float, float) -> (float)`"; let arguments = (ins @@ -16198,7 +16723,8 @@ def Torch_AtenMulFloatOp : Torch_Op<"aten.mul.float", [ def Torch_AtenDivFloatOp : Torch_Op<"aten.div.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::div.float : (float, float) -> (float)`"; let arguments = (ins @@ -16223,7 +16749,8 @@ def Torch_AtenDivFloatOp : Torch_Op<"aten.div.float", [ def Torch_AtenNegFloatOp : Torch_Op<"aten.neg.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::neg.float : (float) -> (float)`"; let arguments = (ins @@ -16247,7 +16774,8 @@ def Torch_AtenNegFloatOp : Torch_Op<"aten.neg.float", [ def Torch_AtenEqFloatOp : Torch_Op<"aten.eq.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::eq.float : (float, float) -> (bool)`"; let arguments = (ins @@ -16272,7 +16800,8 @@ def Torch_AtenEqFloatOp : Torch_Op<"aten.eq.float", [ def Torch_AtenGtFloatOp : Torch_Op<"aten.gt.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::gt.float : (float, float) -> (bool)`"; let arguments = (ins @@ -16297,7 +16826,8 @@ def Torch_AtenGtFloatOp : Torch_Op<"aten.gt.float", [ def Torch_AtenGeFloatOp : Torch_Op<"aten.ge.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ge.float : (float, float) -> (bool)`"; let arguments = (ins @@ -16322,7 +16852,8 @@ def Torch_AtenGeFloatOp : Torch_Op<"aten.ge.float", [ def Torch_AtenLtFloatOp : Torch_Op<"aten.lt.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::lt.float : (float, float) -> (bool)`"; let arguments = (ins @@ -16347,7 +16878,8 @@ def Torch_AtenLtFloatOp : Torch_Op<"aten.lt.float", [ def Torch_AtenLtFloatIntOp : Torch_Op<"aten.lt.float_int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::lt.float_int : (float, int) -> (bool)`"; let arguments = (ins @@ -16371,7 +16903,8 @@ def Torch_AtenLtFloatIntOp : Torch_Op<"aten.lt.float_int", [ def Torch_AtenGeFloatIntOp : Torch_Op<"aten.ge.float_int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ge.float_int : (float, int) -> (bool)`"; let arguments = (ins @@ -16395,7 +16928,8 @@ def Torch_AtenGeFloatIntOp : Torch_Op<"aten.ge.float_int", [ def Torch_AtenNeFloatIntOp : Torch_Op<"aten.ne.float_int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ne.float_int : (float, int) -> (bool)`"; let arguments = (ins @@ -16419,7 +16953,8 @@ def Torch_AtenNeFloatIntOp : Torch_Op<"aten.ne.float_int", [ def Torch_AtenGtFloatIntOp : Torch_Op<"aten.gt.float_int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::gt.float_int : (float, int) -> (bool)`"; let arguments = (ins @@ -16443,7 +16978,8 @@ def Torch_AtenGtFloatIntOp : Torch_Op<"aten.gt.float_int", [ def Torch_AtenPowIntFloatOp : Torch_Op<"aten.pow.int_float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::pow.int_float : (int, float) -> (float)`"; let arguments = (ins @@ -16468,7 +17004,8 @@ def Torch_AtenPowIntFloatOp : Torch_Op<"aten.pow.int_float", [ def Torch_Aten__And__BoolOp : Torch_Op<"aten.__and__.bool", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__and__.bool : (bool, bool) -> (bool)`"; let arguments = (ins @@ -16492,7 +17029,8 @@ def Torch_Aten__And__BoolOp : Torch_Op<"aten.__and__.bool", [ def Torch_AtenEqBoolOp : Torch_Op<"aten.eq.bool", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::eq.bool : (bool, bool) -> (bool)`"; let arguments = (ins @@ -16517,7 +17055,8 @@ def Torch_AtenEqBoolOp : Torch_Op<"aten.eq.bool", [ def Torch_AtenNeBoolOp : Torch_Op<"aten.ne.bool", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ne.bool : (bool, bool) -> (bool)`"; let arguments = (ins @@ -16541,7 +17080,8 @@ def Torch_AtenNeBoolOp : Torch_Op<"aten.ne.bool", [ def Torch_Aten__Is__Op : Torch_Op<"aten.__is__", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__is__ : (t1, t2) -> (bool)`"; let arguments = (ins @@ -16565,7 +17105,8 @@ def Torch_Aten__Is__Op : Torch_Op<"aten.__is__", [ def Torch_Aten__Isnot__Op : Torch_Op<"aten.__isnot__", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__isnot__ : (t1, t2) -> (bool)`"; let arguments = (ins @@ -16590,7 +17131,8 @@ def Torch_Aten__Isnot__Op : Torch_Op<"aten.__isnot__", [ def Torch_Aten__Not__Op : Torch_Op<"aten.__not__", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__not__ : (bool) -> (bool)`"; let arguments = (ins @@ -16614,7 +17156,8 @@ def Torch_Aten__Not__Op : Torch_Op<"aten.__not__", [ def Torch_Aten__Or__BoolOp : Torch_Op<"aten.__or__.bool", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__or__.bool : (bool, bool) -> (bool)`"; let arguments = (ins @@ -16639,7 +17182,8 @@ def Torch_Aten__Or__BoolOp : Torch_Op<"aten.__or__.bool", [ def Torch_AtenLenTOp : Torch_Op<"aten.len.t", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::len.t : (t[]) -> (int)`"; let arguments = (ins @@ -16664,7 +17208,8 @@ def Torch_AtenLenTOp : Torch_Op<"aten.len.t", [ def Torch_AtenMulLeftTOp : Torch_Op<"aten.mul.left_t", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mul.left_t : (t[], int) -> (t[])`"; let arguments = (ins @@ -16688,7 +17233,8 @@ def Torch_AtenMulLeftTOp : Torch_Op<"aten.mul.left_t", [ def Torch_Aten__Getitem__TOp : Torch_Op<"aten.__getitem__.t", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::__getitem__.t : (t[], int) -> (t)`"; let arguments = (ins @@ -16736,7 +17282,8 @@ def Torch_Aten_SetItemTOp : Torch_Op<"aten._set_item.t", [ def Torch_AtenMulOp : Torch_Op<"aten.mul", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::mul : (Scalar, Scalar) -> (Scalar)`"; let arguments = (ins @@ -16761,7 +17308,8 @@ def Torch_AtenMulOp : Torch_Op<"aten.mul", [ def Torch_AtenDivOp : Torch_Op<"aten.div", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::div : (Scalar, Scalar) -> (float)`"; let arguments = (ins @@ -16786,7 +17334,8 @@ def Torch_AtenDivOp : Torch_Op<"aten.div", [ def Torch_AtenAddOp : Torch_Op<"aten.add", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::add : (Scalar, Scalar) -> (Scalar)`"; let arguments = (ins @@ -16811,7 +17360,8 @@ def Torch_AtenAddOp : Torch_Op<"aten.add", [ def Torch_AtenSubOp : Torch_Op<"aten.sub", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sub : (Scalar, Scalar) -> (Scalar)`"; let arguments = (ins @@ -16836,7 +17386,8 @@ def Torch_AtenSubOp : Torch_Op<"aten.sub", [ def Torch_AtenCeilScalarOp : Torch_Op<"aten.ceil.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ceil.Scalar : (Scalar) -> (Scalar)`"; let arguments = (ins @@ -16860,7 +17411,8 @@ def Torch_AtenCeilScalarOp : Torch_Op<"aten.ceil.Scalar", [ def Torch_AtenSqrtIntOp : Torch_Op<"aten.sqrt.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::sqrt.int : (int) -> (float)`"; let arguments = (ins @@ -16884,7 +17436,8 @@ def Torch_AtenSqrtIntOp : Torch_Op<"aten.sqrt.int", [ def Torch_AtenBoolFloatOp : Torch_Op<"aten.Bool.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::Bool.float : (float) -> (bool)`"; let arguments = (ins @@ -16908,7 +17461,8 @@ def Torch_AtenBoolFloatOp : Torch_Op<"aten.Bool.float", [ def Torch_AtenBoolIntOp : Torch_Op<"aten.Bool.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::Bool.int : (int) -> (bool)`"; let arguments = (ins @@ -16932,7 +17486,8 @@ def Torch_AtenBoolIntOp : Torch_Op<"aten.Bool.int", [ def Torch_AtenEqDeviceOp : Torch_Op<"aten.eq.device", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::eq.device : (Device, Device) -> (bool)`"; let arguments = (ins @@ -16956,7 +17511,8 @@ def Torch_AtenEqDeviceOp : Torch_Op<"aten.eq.device", [ def Torch_AtenCeilFloatOp : Torch_Op<"aten.ceil.float", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ceil.float : (float) -> (int)`"; let arguments = (ins @@ -16979,7 +17535,8 @@ def Torch_AtenCeilFloatOp : Torch_Op<"aten.ceil.float", [ def Torch_AtenNarrowOp : Torch_Op<"aten.narrow", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::narrow : (Tensor, int, int, int) -> (Tensor)`"; let arguments = (ins @@ -17004,7 +17561,8 @@ def Torch_AtenNarrowOp : Torch_Op<"aten.narrow", [ def Torch_AtenNarrowTensorOp : Torch_Op<"aten.narrow.Tensor", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::narrow.Tensor : (Tensor, int, Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -17030,7 +17588,8 @@ def Torch_AtenNarrowTensorOp : Torch_Op<"aten.narrow.Tensor", [ def Torch_AtenScalarImplicitOp : Torch_Op<"aten.ScalarImplicit", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::ScalarImplicit : (Tensor) -> (Scalar)`"; let arguments = (ins @@ -17054,7 +17613,8 @@ def Torch_AtenScalarImplicitOp : Torch_Op<"aten.ScalarImplicit", [ def Torch_AtenTriuIndicesOp : Torch_Op<"aten.triu_indices", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::triu_indices : (int, int, int, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -17084,7 +17644,8 @@ def Torch_AtenTriuIndicesOp : Torch_Op<"aten.triu_indices", [ def Torch_AtenTrilIndicesOp : Torch_Op<"aten.tril_indices", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tril_indices : (int, int, int, int?, int?, Device?, bool?) -> (Tensor)`"; let arguments = (ins @@ -17114,7 +17675,8 @@ def Torch_AtenTrilIndicesOp : Torch_Op<"aten.tril_indices", [ def Torch_AtenDeg2radOp : Torch_Op<"aten.deg2rad", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::deg2rad : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -17137,7 +17699,8 @@ def Torch_AtenDeg2radOp : Torch_Op<"aten.deg2rad", [ def Torch_Aten_SoftmaxBackwardDataOp : Torch_Op<"aten._softmax_backward_data", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_softmax_backward_data : (Tensor, Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -17163,7 +17726,8 @@ def Torch_Aten_SoftmaxBackwardDataOp : Torch_Op<"aten._softmax_backward_data", [ def Torch_AtenTanhBackwardOp : Torch_Op<"aten.tanh_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::tanh_backward : (Tensor, Tensor) -> (Tensor)`"; let arguments = (ins @@ -17187,7 +17751,8 @@ def Torch_AtenTanhBackwardOp : Torch_Op<"aten.tanh_backward", [ def Torch_AtenHardtanhBackwardOp : Torch_Op<"aten.hardtanh_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::hardtanh_backward : (Tensor, Tensor, Scalar, Scalar) -> (Tensor)`"; let arguments = (ins @@ -17213,7 +17778,8 @@ def Torch_AtenHardtanhBackwardOp : Torch_Op<"aten.hardtanh_backward", [ def Torch_AtenGeluBackwardOp : Torch_Op<"aten.gelu_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::gelu_backward : (Tensor, Tensor, str) -> (Tensor)`"; let arguments = (ins @@ -17238,7 +17804,8 @@ def Torch_AtenGeluBackwardOp : Torch_Op<"aten.gelu_backward", [ def Torch_Aten_LogSoftmaxBackwardDataOp : Torch_Op<"aten._log_softmax_backward_data", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_log_softmax_backward_data : (Tensor, Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -17264,7 +17831,8 @@ def Torch_Aten_LogSoftmaxBackwardDataOp : Torch_Op<"aten._log_softmax_backward_d def Torch_AtenNativeLayerNormBackwardOp : Torch_Op<"aten.native_layer_norm_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::native_layer_norm_backward : (Tensor, Tensor, int[], Tensor, Tensor, Tensor?, Tensor?, bool[]) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -17296,7 +17864,8 @@ def Torch_AtenNativeLayerNormBackwardOp : Torch_Op<"aten.native_layer_norm_backw def Torch_AtenEmbeddingDenseBackwardOp : Torch_Op<"aten.embedding_dense_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::embedding_dense_backward : (Tensor, Tensor, int, int, bool) -> (Tensor)`"; let arguments = (ins @@ -17323,7 +17892,8 @@ def Torch_AtenEmbeddingDenseBackwardOp : Torch_Op<"aten.embedding_dense_backward def Torch_AtenNativeBatchNormBackwardOp : Torch_Op<"aten.native_batch_norm_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::native_batch_norm_backward : (Tensor, Tensor, Tensor?, Tensor?, Tensor?, Tensor?, Tensor?, bool, float, bool[]) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -17357,7 +17927,8 @@ def Torch_AtenNativeBatchNormBackwardOp : Torch_Op<"aten.native_batch_norm_backw def Torch_AtenNativeGroupNormBackwardOp : Torch_Op<"aten.native_group_norm_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::native_group_norm_backward : (Tensor, Tensor, Tensor, Tensor, Tensor?, int, int, int, int, bool[]) -> (Tensor, Tensor, Tensor)`"; let arguments = (ins @@ -17391,7 +17962,8 @@ def Torch_AtenNativeGroupNormBackwardOp : Torch_Op<"aten.native_group_norm_backw def Torch_AtenNativeDropoutBackwardOp : Torch_Op<"aten.native_dropout_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::native_dropout_backward : (Tensor, Tensor, float) -> (Tensor)`"; let arguments = (ins @@ -17416,7 +17988,8 @@ def Torch_AtenNativeDropoutBackwardOp : Torch_Op<"aten.native_dropout_backward", def Torch_AtenEluBackwardOp : Torch_Op<"aten.elu_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::elu_backward : (Tensor, Scalar, Scalar, Scalar, bool, Tensor) -> (Tensor)`"; let arguments = (ins @@ -17444,7 +18017,8 @@ def Torch_AtenEluBackwardOp : Torch_Op<"aten.elu_backward", [ def Torch_AtenLeakyReluBackwardOp : Torch_Op<"aten.leaky_relu_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::leaky_relu_backward : (Tensor, Tensor, Scalar, bool) -> (Tensor)`"; let arguments = (ins @@ -17470,7 +18044,8 @@ def Torch_AtenLeakyReluBackwardOp : Torch_Op<"aten.leaky_relu_backward", [ def Torch_AtenRreluWithNoiseBackwardOp : Torch_Op<"aten.rrelu_with_noise_backward", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::rrelu_with_noise_backward : (Tensor, Tensor, Tensor, Scalar, Scalar, bool, bool) -> (Tensor)`"; let arguments = (ins @@ -17499,7 +18074,8 @@ def Torch_AtenRreluWithNoiseBackwardOp : Torch_Op<"aten.rrelu_with_noise_backwar def Torch_AtenQuantizePerChannelOp : Torch_Op<"aten.quantize_per_channel", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::quantize_per_channel : (Tensor, Tensor, Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -17526,7 +18102,8 @@ def Torch_AtenQuantizePerChannelOp : Torch_Op<"aten.quantize_per_channel", [ def Torch_AtenQuantizePerTensorOp : Torch_Op<"aten.quantize_per_tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::quantize_per_tensor : (Tensor, float, int, int) -> (Tensor)`"; let arguments = (ins @@ -17552,7 +18129,8 @@ def Torch_AtenQuantizePerTensorOp : Torch_Op<"aten.quantize_per_tensor", [ def Torch_AtenDequantizeSelfOp : Torch_Op<"aten.dequantize.self", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::dequantize.self : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -17575,7 +18153,8 @@ def Torch_AtenDequantizeSelfOp : Torch_Op<"aten.dequantize.self", [ def Torch_AtenDequantizeTensorOp : Torch_Op<"aten.dequantize.tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::dequantize.tensor : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -17598,7 +18177,8 @@ def Torch_AtenDequantizeTensorOp : Torch_Op<"aten.dequantize.tensor", [ def Torch_AtenIntReprOp : Torch_Op<"aten.int_repr", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::int_repr : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -17621,7 +18201,8 @@ def Torch_AtenIntReprOp : Torch_Op<"aten.int_repr", [ def Torch_Aten_MakePerChannelQuantizedTensorOp : Torch_Op<"aten._make_per_channel_quantized_tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_make_per_channel_quantized_tensor : (Tensor, Tensor, Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -17647,7 +18228,8 @@ def Torch_Aten_MakePerChannelQuantizedTensorOp : Torch_Op<"aten._make_per_channe def Torch_Aten_MakePerTensorQuantizedTensorOp : Torch_Op<"aten._make_per_tensor_quantized_tensor", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `aten::_make_per_tensor_quantized_tensor : (Tensor, float, int) -> (Tensor)`"; let arguments = (ins @@ -17672,7 +18254,8 @@ def Torch_Aten_MakePerTensorQuantizedTensorOp : Torch_Op<"aten._make_per_tensor_ def Torch_PrimLayoutOp : Torch_Op<"prim.layout", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::layout : (Tensor) -> (int)`"; let arguments = (ins @@ -17695,7 +18278,8 @@ def Torch_PrimLayoutOp : Torch_Op<"prim.layout", [ def Torch_PrimTupleIndexOp : Torch_Op<"prim.TupleIndex", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::TupleIndex : (Any, int) -> (Any)`"; let arguments = (ins @@ -17720,7 +18304,8 @@ def Torch_PrimTupleIndexOp : Torch_Op<"prim.TupleIndex", [ def Torch_PrimDeviceOp : Torch_Op<"prim.device", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::device : (Tensor) -> (Device)`"; let arguments = (ins @@ -17744,7 +18329,8 @@ def Torch_PrimDeviceOp : Torch_Op<"prim.device", [ def Torch_PrimDtypeOp : Torch_Op<"prim.dtype", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::dtype : (Tensor) -> (int)`"; let arguments = (ins @@ -17783,7 +18369,8 @@ def Torch_PrimTupleUnpackOp : Torch_Op<"prim.TupleUnpack", [ def Torch_PrimNumToTensorScalarOp : Torch_Op<"prim.NumToTensor.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::NumToTensor.Scalar : (Scalar) -> (Tensor)`"; let arguments = (ins @@ -17807,7 +18394,8 @@ def Torch_PrimNumToTensorScalarOp : Torch_Op<"prim.NumToTensor.Scalar", [ def Torch_PrimMinSelfIntOp : Torch_Op<"prim.min.self_int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::min.self_int : (int[]) -> (int)`"; let arguments = (ins @@ -17831,7 +18419,8 @@ def Torch_PrimMinSelfIntOp : Torch_Op<"prim.min.self_int", [ def Torch_PrimMinIntOp : Torch_Op<"prim.min.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::min.int : (int, int) -> (int)`"; let arguments = (ins @@ -17856,7 +18445,8 @@ def Torch_PrimMinIntOp : Torch_Op<"prim.min.int", [ def Torch_PrimMaxSelfIntOp : Torch_Op<"prim.max.self_int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::max.self_int : (int[]) -> (int)`"; let arguments = (ins @@ -17879,7 +18469,8 @@ def Torch_PrimMaxSelfIntOp : Torch_Op<"prim.max.self_int", [ def Torch_PrimMaxIntOp : Torch_Op<"prim.max.int", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::max.int : (int, int) -> (int)`"; let arguments = (ins @@ -17928,7 +18519,8 @@ def Torch_PrimUninitializedOp : Torch_Op<"prim.Uninitialized", [ Pure, AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::Uninitialized : () -> (Any)`"; let arguments = (ins @@ -17945,13 +18537,13 @@ def Torch_PrimUninitializedOp : Torch_Op<"prim.Uninitialized", [ printDefaultTorchOp(printer, *this, 0, 1); } }]; - let hasCanonicalizer = 1; } def Torch_PrimUncheckedCastOp : Torch_Op<"prim.unchecked_cast", [ DeclareOpInterfaceMethods, AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::unchecked_cast : (t) -> (t)`"; let arguments = (ins @@ -18002,7 +18594,8 @@ def Torch_PrimTolistOp : Torch_Op<"prim.tolist", [ def Torch_PrimAbsScalarOp : Torch_Op<"prim.abs.Scalar", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prim::abs.Scalar : (Scalar) -> (Scalar)`"; let arguments = (ins @@ -18025,7 +18618,8 @@ def Torch_PrimAbsScalarOp : Torch_Op<"prim.abs.Scalar", [ def Torch_PrimsConvertElementTypeOp : Torch_Op<"prims.convert_element_type", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prims::convert_element_type : (Tensor, int) -> (Tensor)`"; let arguments = (ins @@ -18050,7 +18644,8 @@ def Torch_PrimsConvertElementTypeOp : Torch_Op<"prims.convert_element_type", [ def Torch_PrimsVarOp : Torch_Op<"prims.var", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prims::var : (Tensor, int[]?, float?, int?) -> (Tensor)`"; let arguments = (ins @@ -18076,7 +18671,8 @@ def Torch_PrimsVarOp : Torch_Op<"prims.var", [ def Torch_PrimsSqrtOp : Torch_Op<"prims.sqrt", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prims::sqrt : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -18099,7 +18695,8 @@ def Torch_PrimsSqrtOp : Torch_Op<"prims.sqrt", [ def Torch_PrimsCollapseOp : Torch_Op<"prims.collapse", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prims::collapse : (Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -18123,7 +18720,8 @@ def Torch_PrimsCollapseOp : Torch_Op<"prims.collapse", [ def Torch_PrimsSplitDimOp : Torch_Op<"prims.split_dim", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prims::split_dim : (Tensor, int, int) -> (Tensor)`"; let arguments = (ins @@ -18147,7 +18745,8 @@ def Torch_PrimsSplitDimOp : Torch_Op<"prims.split_dim", [ def Torch_PrimsSqueezeOp : Torch_Op<"prims.squeeze", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prims::squeeze : (Tensor, int[]) -> (Tensor)`"; let arguments = (ins @@ -18170,7 +18769,8 @@ def Torch_PrimsSqueezeOp : Torch_Op<"prims.squeeze", [ def Torch_PrimsViewOfOp : Torch_Op<"prims.view_of", [ AllowsTypeRefinement, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prims::view_of : (Tensor) -> (Tensor)`"; let arguments = (ins @@ -18194,7 +18794,8 @@ def Torch_PrimsViewOfOp : Torch_Op<"prims.view_of", [ def Torch_PrimsIotaOp : Torch_Op<"prims.iota", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `prims::iota : (int, int, int, int, Device, bool) -> (Tensor)`"; let arguments = (ins @@ -18223,7 +18824,8 @@ def Torch_QuantizedLinearOp : Torch_Op<"quantized.linear", [ HasValueSemantics, AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `quantized::linear : (Tensor, __torch__.torch.classes.quantized.LinearPackedParamsBase, float, int) -> (Tensor)`"; let arguments = (ins @@ -18249,7 +18851,8 @@ def Torch_QuantizedLinearOp : Torch_Op<"quantized.linear", [ def Torch_TorchvisionDeformConv2dOp : Torch_Op<"torchvision.deform_conv2d", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `torchvision::deform_conv2d : (Tensor, Tensor, Tensor, Tensor, Tensor, int, int, int, int, int, int, int, int, bool) -> (Tensor)`"; let arguments = (ins @@ -18285,7 +18888,8 @@ def Torch_TorchvisionDeformConv2dOp : Torch_Op<"torchvision.deform_conv2d", [ def Torch_TorchvisionRoiAlignOp : Torch_Op<"torchvision.roi_align", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `torchvision::roi_align : (Tensor, Tensor, float, int, int, int, bool) -> (Tensor)`"; let arguments = (ins @@ -18314,7 +18918,8 @@ def Torch_TorchvisionRoiAlignOp : Torch_Op<"torchvision.roi_align", [ def Torch_TorchvisionRoiPoolOp : Torch_Op<"torchvision.roi_pool", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `torchvision::roi_pool : (Tensor, Tensor, float, int, int) -> (Tensor, Tensor)`"; let arguments = (ins @@ -18342,7 +18947,8 @@ def Torch_TorchvisionRoiPoolOp : Torch_Op<"torchvision.roi_pool", [ def Torch_TorchvisionNmsOp : Torch_Op<"torchvision.nms", [ AllowsTypeRefinement, HasValueSemantics, - ReadOnly + ReadOnly, + NoMemoryEffect ]> { let summary = "Generated op for `torchvision::nms : (Tensor, Tensor, float) -> (Tensor)`"; let arguments = (ins diff --git a/lib/Dialect/Torch/IR/TorchOps.cpp b/lib/Dialect/Torch/IR/TorchOps.cpp index eafbe14162cc..a7146ce1365c 100644 --- a/lib/Dialect/Torch/IR/TorchOps.cpp +++ b/lib/Dialect/Torch/IR/TorchOps.cpp @@ -2288,17 +2288,6 @@ void AtenSizeOp::getCanonicalizationPatterns(RewritePatternSet &patterns, listElements); return success(); }); - // One-off pattern to erase if dead. - // TODO: Use the effects infra to express the semantics of this op and enable - // a centralized "erase if dead" canonicalization. - // Specifically, we need to mark the op as only MemoryEffects::Allocate - // so that `mlir::wouldOpBeTriviallyDead` does the right thing. - patterns.add(+[](AtenSizeOp op, PatternRewriter &rewriter) { - if (!op.use_empty()) - return failure(); - rewriter.eraseOp(op); - return failure(); - }); } //===----------------------------------------------------------------------===// @@ -3490,20 +3479,6 @@ void PrimTupleIndexOp::getCanonicalizationPatterns(RewritePatternSet &patterns, }); } -//===----------------------------------------------------------------------===// -// PrimUninitializedOp -//===----------------------------------------------------------------------===// - -void PrimUninitializedOp::getCanonicalizationPatterns( - RewritePatternSet &patterns, MLIRContext *context) { - patterns.add(+[](PrimUninitializedOp op, PatternRewriter &rewriter) { - if (!op.use_empty()) - return failure(); - rewriter.eraseOp(op); - return success(); - }); -} - //===----------------------------------------------------------------------===// // PrimTupleUnpackOp //===----------------------------------------------------------------------===// diff --git a/lib/Dialect/Torch/Transforms/AbstractInterpLibrary.cpp b/lib/Dialect/Torch/Transforms/AbstractInterpLibrary.cpp index edcc81a2847f..63bdbb94c2c0 100644 --- a/lib/Dialect/Torch/Transforms/AbstractInterpLibrary.cpp +++ b/lib/Dialect/Torch/Transforms/AbstractInterpLibrary.cpp @@ -4892,17 +4892,15 @@ StringRef mlir::torch::Torch::getAbstractInterpLibrary() { " } else {\n" " %12 = torch.aten.__isnot__ %5#1, %none : !torch.optional, !torch.none -> !torch.bool\n" " %13 = torch.prim.If %12 -> (!torch.bool) {\n" -" %15 = torch.prim.unchecked_cast %5#1 : !torch.optional -> !torch.int\n" -" %16 = torch.aten.gt.int %5#0, %int0 : !torch.int, !torch.int -> !torch.bool\n" -" torch.prim.If.yield %16 : !torch.bool\n" +" %15 = torch.aten.gt.int %5#0, %int0 : !torch.int, !torch.int -> !torch.bool\n" +" torch.prim.If.yield %15 : !torch.bool\n" " } else {\n" " torch.prim.If.yield %false : !torch.bool\n" " }\n" " %14 = torch.prim.If %13 -> (!torch.bool) {\n" -" %15 = torch.prim.unchecked_cast %5#1 : !torch.optional -> !torch.int\n" -" %16 = torch.aten.remainder.int %1, %5#0 : !torch.int, !torch.int -> !torch.int\n" -" %17 = torch.aten.eq.int %16, %int0 : !torch.int, !torch.int -> !torch.bool\n" -" torch.prim.If.yield %17 : !torch.bool\n" +" %15 = torch.aten.remainder.int %1, %5#0 : !torch.int, !torch.int -> !torch.int\n" +" %16 = torch.aten.eq.int %15, %int0 : !torch.int, !torch.int -> !torch.bool\n" +" torch.prim.If.yield %16 : !torch.bool\n" " } else {\n" " torch.prim.If.yield %false : !torch.bool\n" " }\n" @@ -4982,17 +4980,15 @@ StringRef mlir::torch::Torch::getAbstractInterpLibrary() { " } else {\n" " %9 = torch.aten.__isnot__ %3#1, %none : !torch.optional, !torch.none -> !torch.bool\n" " %10 = torch.prim.If %9 -> (!torch.bool) {\n" -" %12 = torch.prim.unchecked_cast %3#1 : !torch.optional -> !torch.int\n" -" %13 = torch.aten.gt.int %3#0, %int0 : !torch.int, !torch.int -> !torch.bool\n" -" torch.prim.If.yield %13 : !torch.bool\n" +" %12 = torch.aten.gt.int %3#0, %int0 : !torch.int, !torch.int -> !torch.bool\n" +" torch.prim.If.yield %12 : !torch.bool\n" " } else {\n" " torch.prim.If.yield %false : !torch.bool\n" " }\n" " %11 = torch.prim.If %10 -> (!torch.bool) {\n" -" %12 = torch.prim.unchecked_cast %3#1 : !torch.optional -> !torch.int\n" -" %13 = torch.aten.remainder.int %arg1, %3#0 : !torch.int, !torch.int -> !torch.int\n" -" %14 = torch.aten.eq.int %13, %int0 : !torch.int, !torch.int -> !torch.bool\n" -" torch.prim.If.yield %14 : !torch.bool\n" +" %12 = torch.aten.remainder.int %arg1, %3#0 : !torch.int, !torch.int -> !torch.int\n" +" %13 = torch.aten.eq.int %12, %int0 : !torch.int, !torch.int -> !torch.bool\n" +" torch.prim.If.yield %13 : !torch.bool\n" " } else {\n" " torch.prim.If.yield %false : !torch.bool\n" " }\n" @@ -5452,7 +5448,6 @@ StringRef mlir::torch::Torch::getAbstractInterpLibrary() { " %11 = torch.aten.__is__ %arg1, %none : !torch.optional>, !torch.none -> !torch.bool\n" " torch.prim.If.yield %11 : !torch.bool\n" " } else {\n" -" %11 = torch.prim.unchecked_cast %arg2 : !torch.optional> -> !torch.list\n" " torch.prim.If.yield %false : !torch.bool\n" " }\n" " torch.prim.If %7 -> () {\n" @@ -7444,7 +7439,6 @@ StringRef mlir::torch::Torch::getAbstractInterpLibrary() { " %1 = torch.prim.If %0 -> (!torch.bool) {\n" " torch.prim.If.yield %arg2 : !torch.bool\n" " } else {\n" -" %3 = torch.prim.unchecked_cast %arg1 : !torch.optional -> !torch.int\n" " torch.prim.If.yield %false : !torch.bool\n" " }\n" " %2 = torch.prim.If %1 -> (!torch.list) {\n" @@ -11245,9 +11239,8 @@ StringRef mlir::torch::Torch::getAbstractInterpLibrary() { " %4 = torch.prim.If %3 -> (!torch.bool) {\n" " torch.prim.If.yield %true : !torch.bool\n" " } else {\n" -" %11 = torch.prim.unchecked_cast %arg1 : !torch.optional> -> !torch.list\n" -" %12 = torch.aten.__is__ %arg2, %none : !torch.optional>, !torch.none -> !torch.bool\n" -" torch.prim.If.yield %12 : !torch.bool\n" +" %11 = torch.aten.__is__ %arg2, %none : !torch.optional>, !torch.none -> !torch.bool\n" +" torch.prim.If.yield %11 : !torch.bool\n" " }\n" " %5:2 = torch.prim.If %4 -> (!torch.optional>, !torch.optional>) {\n" " torch.prim.If.yield %arg1, %arg2 : !torch.optional>, !torch.optional>\n" @@ -11260,7 +11253,6 @@ StringRef mlir::torch::Torch::getAbstractInterpLibrary() { " %11 = torch.aten.__is__ %5#1, %none : !torch.optional>, !torch.none -> !torch.bool\n" " torch.prim.If.yield %11 : !torch.bool\n" " } else {\n" -" %11 = torch.prim.unchecked_cast %5#0 : !torch.optional> -> !torch.list\n" " torch.prim.If.yield %false : !torch.bool\n" " }\n" " %8 = torch.aten.__not__ %7 : !torch.bool -> !torch.bool\n" @@ -11324,9 +11316,8 @@ StringRef mlir::torch::Torch::getAbstractInterpLibrary() { " %4 = torch.prim.If %3 -> (!torch.bool) {\n" " torch.prim.If.yield %true : !torch.bool\n" " } else {\n" -" %11 = torch.prim.unchecked_cast %arg1 : !torch.optional> -> !torch.list\n" -" %12 = torch.aten.__is__ %arg2, %none : !torch.optional>, !torch.none -> !torch.bool\n" -" torch.prim.If.yield %12 : !torch.bool\n" +" %11 = torch.aten.__is__ %arg2, %none : !torch.optional>, !torch.none -> !torch.bool\n" +" torch.prim.If.yield %11 : !torch.bool\n" " }\n" " %5:2 = torch.prim.If %4 -> (!torch.optional>, !torch.optional>) {\n" " torch.prim.If.yield %arg1, %arg2 : !torch.optional>, !torch.optional>\n" @@ -11339,7 +11330,6 @@ StringRef mlir::torch::Torch::getAbstractInterpLibrary() { " %11 = torch.aten.__is__ %5#1, %none : !torch.optional>, !torch.none -> !torch.bool\n" " torch.prim.If.yield %11 : !torch.bool\n" " } else {\n" -" %11 = torch.prim.unchecked_cast %5#0 : !torch.optional> -> !torch.list\n" " torch.prim.If.yield %false : !torch.bool\n" " }\n" " %8 = torch.aten.__not__ %7 : !torch.bool -> !torch.bool\n" diff --git a/lib/Dialect/Torch/Transforms/FuseQuantizedOps.cpp b/lib/Dialect/Torch/Transforms/FuseQuantizedOps.cpp index 5da8217f6940..c56b1cad0f32 100644 --- a/lib/Dialect/Torch/Transforms/FuseQuantizedOps.cpp +++ b/lib/Dialect/Torch/Transforms/FuseQuantizedOps.cpp @@ -37,8 +37,6 @@ template <> struct QuantInfo { // where MPTQT = "Aten_MakePerTensorQuantizedTensorOp" // and Dequant = "AtenDequantizeSelfOp" or "AtenDequantizeTensorOp" bool isQCommutingOp(mlir::Operation *op) { - // if adding a new commuting op here, be sure to add a - // RemoveUnused pattern for that op to clean up afterwards return llvm::isa( op); @@ -419,35 +417,12 @@ class QuantizeResultLikeOperand : public OpRewritePattern { } }; -template class RemoveUnused : public OpRewritePattern { -public: - using OpRewritePattern::OpRewritePattern; - - LogicalResult matchAndRewrite(SrcOp op, - PatternRewriter &rewriter) const override { - auto result = op.getResult(); - if (result.use_empty()) { - op.erase(); - return success(); - } - return failure(); - } -}; - class FuseQuantizedOpsPass : public FuseQuantizedOpsBase { public: void runOnOperation() override { MLIRContext *context = &getContext(); RewritePatternSet patterns(context); patterns.insert< - RemoveUnused, - RemoveUnused, - RemoveUnused, - RemoveUnused, - RemoveUnused, RemoveUnused, - RemoveUnused, RemoveUnused, - RemoveUnused, RemoveUnused, - RemoveUnused, QuantizeOperandsPastCommutingOps, QuantizeOperandsPastCommutingOps, QuantizeOperandsPastCommutingOps, diff --git a/lib/Dialect/Torch/Transforms/ScalarizeShapes.cpp b/lib/Dialect/Torch/Transforms/ScalarizeShapes.cpp index 634e910d4c32..c7eeaf5b2354 100644 --- a/lib/Dialect/Torch/Transforms/ScalarizeShapes.cpp +++ b/lib/Dialect/Torch/Transforms/ScalarizeShapes.cpp @@ -1396,22 +1396,6 @@ class CanonicalizeAtenViewPattern : public OpRewritePattern { }; } // namespace -namespace { -template class RemoveUnusedPattern : public OpRewritePattern { -public: - using OpRewritePattern::OpRewritePattern; - LogicalResult matchAndRewrite(T op, - PatternRewriter &rewriter) const override { - for (auto use : op->getResults()) - if (!use.use_empty()) - return failure(); - - rewriter.eraseOp(op); - return success(); - } -}; -} // namespace - namespace { bool isItemForSliceOp(Operation *op) { @@ -1512,23 +1496,6 @@ void populateScalarizationPropagationPatterns(RewritePatternSet &patterns) { patterns.getContext()); } -void populateScalarizationRemovePatterns(RewritePatternSet &patterns) { - patterns.insert, - RemoveUnusedPattern, - RemoveUnusedPattern, - RemoveUnusedPattern, - RemoveUnusedPattern, - RemoveUnusedPattern, - RemoveUnusedPattern, - RemoveUnusedPattern, - RemoveUnusedPattern, - RemoveUnusedPattern, - RemoveUnusedPattern, - RemoveUnusedPattern, - RemoveUnusedPattern>( - patterns.getContext()); -} - } // namespace namespace { class ScalarizeShapesPass : public ScalarizeShapesBase { @@ -1545,7 +1512,6 @@ class ScalarizeShapesPass : public ScalarizeShapesBase { populateScalarizationPropagationPatterns(patterns); populateScalarizationFoldPatterns(patterns); populateScalarizationCanonicalizePatterns(patterns); - populateScalarizationRemovePatterns(patterns); context->getLoadedDialect() ->getCanonicalizationPatterns(patterns); // don't load torch canonicalization patterns, since these may lead to diff --git a/projects/pt1/python/torch_mlir/jit_ir_importer/build_tools/torch_ods_gen.py b/projects/pt1/python/torch_mlir/jit_ir_importer/build_tools/torch_ods_gen.py index 8a0417a85189..0c0a2f972439 100644 --- a/projects/pt1/python/torch_mlir/jit_ir_importer/build_tools/torch_ods_gen.py +++ b/projects/pt1/python/torch_mlir/jit_ir_importer/build_tools/torch_ods_gen.py @@ -242,6 +242,7 @@ def emit_op( has_folder: bool = False, has_canonicalizer: bool = False, has_verifier: bool = False, + has_memory_effects: bool = False, ): """Main entry point for op emission. @@ -257,6 +258,12 @@ def emit_op( traits += ["HasValueSemantics"] if operator.is_readonly(): traits += ["ReadOnly"] + # If a ReadOnly op has no returns, it is likely to have side effects. + # E.g. `prim.RaiseException` and `prim.Print` + # Besides ops with no returned values, there may be other ReadOnly ops with memory effects. + # In such cases, these ops can be emitted with `has_memory_effects=True` to avoid this trait. + if operator.is_readonly() and len(operator.returns) != 0 and not has_memory_effects: + traits += ["NoMemoryEffect"] raw_emit_op( operator, @@ -1238,7 +1245,7 @@ def emit_with_mutating_variants(key, **kwargs): emit("prim::max.self_int : (int[]) -> (int)") emit("prim::max.int : (int, int) -> (int)", has_folder=True) emit("prim::RaiseException : (str, str?) -> ()") - emit("prim::Uninitialized : () -> (Any)", has_canonicalizer=True, traits=["Pure"]) + emit("prim::Uninitialized : () -> (Any)", traits=["Pure"]) emit( "prim::unchecked_cast : (t) -> (t)", has_folder=True, diff --git a/test/Dialect/Torch/canonicalize.mlir b/test/Dialect/Torch/canonicalize.mlir index d4afd67d65db..d1796585a340 100644 --- a/test/Dialect/Torch/canonicalize.mlir +++ b/test/Dialect/Torch/canonicalize.mlir @@ -1567,7 +1567,6 @@ func.func @torch.prim.unchecked_cast$derefine(%arg0: !torch.list) -> !torch // CHECK-LABEL: func.func @torch.aten.Int.Tensor( // CHECK-SAME: %[[NUM:.*]]: !torch.int) -> !torch.int { -// CHECK: %[[T:.*]] = torch.prim.NumToTensor.Scalar %[[NUM]] : !torch.int -> !torch.vtensor<[],si64> // CHECK: return %[[NUM]] : !torch.int func.func @torch.aten.Int.Tensor(%arg0: !torch.int) -> !torch.int { %tensor = torch.prim.NumToTensor.Scalar %arg0: !torch.int -> !torch.vtensor<[],si64> @@ -1595,7 +1594,6 @@ func.func @torch.aten.Int.float() -> !torch.int { // CHECK-LABEL: func.func @torch.aten.Float.Tensor( // CHECK-SAME: %[[NUM:.*]]: !torch.float) -> !torch.float { -// CHECK: %[[T:.*]] = torch.prim.NumToTensor.Scalar %[[NUM]] : !torch.float -> !torch.vtensor<[],f64> // CHECK: return %[[NUM]] : !torch.float func.func @torch.aten.Float.Tensor(%arg0: !torch.float) -> !torch.float { %tensor = torch.prim.NumToTensor.Scalar %arg0: !torch.float -> !torch.vtensor<[],f64>