torch-mlir/frontends/pytorch/csrc/builder/op_builder.cpp

43 lines
1.5 KiB
C++

//===- op_builder.cpp -----------------------------------------------------===//
//
// This file is licensed under a pytorch-style license
// See frontends/pytorch/LICENSE for license information.
//
//===----------------------------------------------------------------------===//
#include "op_builder.h"
#include "mlir-c/BuiltinAttributes.h"
#include "mlir-c/BuiltinTypes.h"
#include "mlir-c/Diagnostics.h"
#include "npcomp-c/Types.h"
using namespace torch_mlir;
OpBuilder::OpBuilder(MlirContext context) : context(context) {}
MlirOperation OpBuilder::createNoneConstant(MlirLocation loc) {
return createMlirOperation("basicpy.singleton", loc,
npcompNoneTypeGet(context));
}
MlirOperation OpBuilder::createBoolConstant(MlirLocation loc, bool value) {
return createMlirOperation(
"basicpy.bool_constant", loc, npcompBoolTypeGet(context),
toMlirNamedAttribute("value", mlirBoolAttrGet(context, value)));
}
MlirOperation OpBuilder::createBytesConstant(MlirLocation loc,
const std::string &value) {
return createMlirOperation(
"basicpy.bytes_constant", loc, npcompBytesTypeGet(context),
toMlirNamedAttribute("value",
mlirStringAttrGet(context, toMlirStringRef(value))));
}
MlirOperation OpBuilder::createStdConstant(MlirLocation loc,
MlirAttribute value) {
return createMlirOperation("std.constant", loc, mlirAttributeGetType(value),
toMlirNamedAttribute("value", value));
}