torch-mlir icon indicating copy to clipboard operation
torch-mlir copied to clipboard

Pure python ODS for update_torch_ods.sh

Open AmosLewis opened this issue 1 year ago • 1 comments

To solve https://github.com/llvm/torch-mlir/pull/3654

AmosLewis avatar Oct 10 '24 15:10 AmosLewis

./build_tools/update_torch_ods.sh
ERROR: Op does not match any Torch ops in Registry
Given op:
        "aten::hardtanh : (Tensor, Scalar, Scalar) -> (Tensor)"
Possible matches:
        "a::.t : (Tensor, str, str) -> (Tensor)"
        "a::.t : (Tensor, float, bool) -> (Tensor)"
        "a::.t : (Tensor, str, bool) -> (Tensor)"
        "a::.t : (Tensor, Storage) -> (Tensor)"
        "a::.t : (Tensor, float, int) -> (Tensor)"

which should looks like this:

def Torch_AtenHardtanhOp : Torch_Op<"aten.hardtanh", [
    AllowsTypeRefinement,
    HasValueSemantics,
    ReadOnly
  ]> {
  let summary = "Generated op for `aten::hardtanh : (Tensor, Scalar, Scalar) -> (Tensor)`";
  let arguments = (ins
    AnyTorchTensorType:$self,
    AnyTorchScalarType:$min_val,
    AnyTorchScalarType:$max_val
  );
  let results = (outs
    AnyTorchOptionalTensorType:$result
  );
  let hasCustomAssemblyFormat = 1;
  let extraClassDefinition = [{
    ParseResult AtenHardtanhOp::parse(OpAsmParser &parser, OperationState &result) {
      return parseDefaultTorchOp(parser, result, 3, 1);
    }
    void AtenHardtanhOp::print(OpAsmPrinter &printer) {
      printDefaultTorchOp(printer, *this, 3, 1);
    }
  }];
}

AmosLewis avatar Oct 10 '24 15:10 AmosLewis