Skip to content

Instantly share code, notes, and snippets.

@makslevental
Created January 30, 2025 20:43
Show Gist options
  • Save makslevental/aa9005ce5a9dc035d3c3ce28bbd325a5 to your computer and use it in GitHub Desktop.
Save makslevental/aa9005ce5a9dc035d3c3ce28bbd325a5 to your computer and use it in GitHub Desktop.
ExtractSliceOp.cpp
void ExtractSliceOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value source, ::mlir::DenseI64ArrayAttr static_offsets) {
odsState.addOperands(source);
odsState.getOrAddProperties<Properties>().static_offsets = static_offsets;
odsState.addTypes(result);
}
void ExtractSliceOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value source, ::mlir::DenseI64ArrayAttr static_offsets) {
odsState.addOperands(source);
odsState.getOrAddProperties<Properties>().static_offsets = static_offsets;
assert(resultTypes.size() == 1u && "mismatched number of results");
odsState.addTypes(resultTypes);
}
void ExtractSliceOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value source, ::llvm::ArrayRef<int64_t> static_offsets) {
odsState.addOperands(source);
odsState.getOrAddProperties<Properties>().static_offsets = odsBuilder.getDenseI64ArrayAttr(static_offsets);
odsState.addTypes(result);
}
void ExtractSliceOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value source, ::llvm::ArrayRef<int64_t> static_offsets) {
odsState.addOperands(source);
odsState.getOrAddProperties<Properties>().static_offsets = odsBuilder.getDenseI64ArrayAttr(static_offsets);
assert(resultTypes.size() == 1u && "mismatched number of results");
odsState.addTypes(resultTypes);
}
void ExtractSliceOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
assert(operands.size() == 1u && "mismatched number of parameters");
odsState.addOperands(operands);
odsState.addAttributes(attributes);
assert(resultTypes.size() == 1u && "mismatched number of return types");
odsState.addTypes(resultTypes);
if (!attributes.empty()) {
::mlir::OpaqueProperties properties =
&odsState.getOrAddProperties<ExtractSliceOp::Properties>();
std::optional<::mlir::RegisteredOperationName> info =
odsState.name.getRegisteredInfo();
if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
odsState.attributes.getDictionary(odsState.getContext()), nullptr)))
::llvm::report_fatal_error("Property conversion failed.");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment