Removing redundant hal.buffer_view.byte_length.
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Conversion/HALToVM/ConvertBufferViewOps.cpp b/compiler/src/iree/compiler/Dialect/HAL/Conversion/HALToVM/ConvertBufferViewOps.cpp index 17bebcf..209d7c5 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/Conversion/HALToVM/ConvertBufferViewOps.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/Conversion/HALToVM/ConvertBufferViewOps.cpp
@@ -21,8 +21,6 @@ context, importSymbols, typeConverter, "hal.buffer_view.assert"); patterns.insert<VMImportOpConversion<IREE::HAL::BufferViewBufferOp>>( context, importSymbols, typeConverter, "hal.buffer_view.buffer"); - patterns.insert<VMImportOpConversion<IREE::HAL::BufferViewByteLengthOp>>( - context, importSymbols, typeConverter, "hal.buffer_view.byte_length"); patterns.insert<VMImportOpConversion<IREE::HAL::BufferViewElementTypeOp>>( context, importSymbols, typeConverter, "hal.buffer_view.element_type"); patterns.insert<VMImportOpConversion<IREE::HAL::BufferViewEncodingTypeOp>>(
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp index 5091c3f..6b2c8f6 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp
@@ -408,21 +408,6 @@ } //===----------------------------------------------------------------------===// -// hal.buffer_view.byte_length -//===----------------------------------------------------------------------===// - -void BufferViewByteLengthOp::build(OpBuilder &builder, OperationState &state, - Value bufferView) { - state.addOperands({bufferView}); - state.addTypes({builder.getIndexType()}); -} - -void BufferViewByteLengthOp::getAsmResultNames( - function_ref<void(Value, StringRef)> setNameFn) { - setNameFn(result(), "len"); -} - -//===----------------------------------------------------------------------===// // hal.command_buffer.create //===----------------------------------------------------------------------===//
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.td b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.td index 93a220e..3f478e9 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.td +++ b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.td
@@ -527,36 +527,6 @@ let hasCanonicalizer = 1; } -def HAL_BufferViewByteLengthOp : HAL_PureOp<"buffer_view.byte_length", [ - DeclareOpInterfaceMethods<OpAsmOpInterface, ["getAsmResultNames"]>, - ]> { - let summary = [{buffer view buffer byte length accessor}]; - let description = [{ - Returns the allocated size of a shaped buffer view in bytes. - This may exceed the logical size of the buffer view; for example sparse - tensors will have an allocation size that may be for the maximum possible - size of the tensor when fully dense. - }]; - - let arguments = (ins - HAL_BufferView:$buffer_view - ); - let results = (outs - HAL_DeviceSize:$result - ); - - let assemblyFormat = [{ - `<` $buffer_view `:` type($buffer_view) `>` - `:` type($result) - attr-dict-with-keyword - }]; - - let skipDefaultBuilders = 1; - let builders = [ - OpBuilder<(ins "Value":$bufferView)>, - ]; -} - def HAL_BufferViewElementTypeOp : HAL_PureOp<"buffer_view.element_type"> { let summary = [{buffer view element type query}]; let description = [{
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/HALTypes.cpp b/compiler/src/iree/compiler/Dialect/HAL/IR/HALTypes.cpp index 0c646df..132f301 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/IR/HALTypes.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/IR/HALTypes.cpp
@@ -148,7 +148,10 @@ Value BufferViewType::inferSizeFromValue(Location loc, Value value, OpBuilder &builder) const { - return builder.createOrFold<BufferViewByteLengthOp>(loc, value); + return builder.createOrFold<BufferLengthOp>( + loc, builder.getIndexType(), + builder.createOrFold<BufferViewBufferOp>( + loc, builder.getType<IREE::HAL::BufferType>(), value)); } //===----------------------------------------------------------------------===//
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/test/buffer_view_ops.mlir b/compiler/src/iree/compiler/Dialect/HAL/IR/test/buffer_view_ops.mlir index d14ca66..fa74f3f 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/IR/test/buffer_view_ops.mlir +++ b/compiler/src/iree/compiler/Dialect/HAL/IR/test/buffer_view_ops.mlir
@@ -27,15 +27,6 @@ // ----- -// CHECK-LABEL: @buffer_view_byte_length -func.func @buffer_view_byte_length(%arg0: !hal.buffer_view) -> index { - // CHECK: %len = hal.buffer_view.byte_length<%arg0 : !hal.buffer_view> : index - %len = hal.buffer_view.byte_length<%arg0 : !hal.buffer_view> : index - return %len : index -} - -// ----- - // CHECK-LABEL: @buffer_view_shape_queries func.func @buffer_view_shape_queries(%arg0: !hal.buffer_view) -> (index, index, index, index) { // CHECK: %{{.+}} = hal.buffer_view.rank<%arg0 : !hal.buffer_view> : index
diff --git a/compiler/src/iree/compiler/Dialect/HAL/hal.imports.mlir b/compiler/src/iree/compiler/Dialect/HAL/hal.imports.mlir index 0331d03..e95e1c4 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/hal.imports.mlir +++ b/compiler/src/iree/compiler/Dialect/HAL/hal.imports.mlir
@@ -128,12 +128,6 @@ ) -> !vm.ref<!hal.buffer> attributes {nosideeffects} -// Returns the allocated size of a shaped buffer view in bytes. -vm.import @buffer_view.byte_length( - %buffer_view : !vm.ref<!hal.buffer_view> -) -> i64 -attributes {nosideeffects} - // Returns the element type of the buffer view. vm.import @buffer_view.element_type( %buffer_view : !vm.ref<!hal.buffer_view>,
diff --git a/runtime/src/iree/modules/hal/exports.inl b/runtime/src/iree/modules/hal/exports.inl index 12119dd..96208f6 100644 --- a/runtime/src/iree/modules/hal/exports.inl +++ b/runtime/src/iree/modules/hal/exports.inl
@@ -36,7 +36,6 @@ EXPORT_FN("buffer_view.assert", iree_hal_module_buffer_view_assert, rriiCID, v) EXPORT_FN("buffer_view.buffer", iree_hal_module_buffer_view_buffer, r, r) -EXPORT_FN("buffer_view.byte_length", iree_hal_module_buffer_view_byte_length, r, I) EXPORT_FN("buffer_view.create", iree_hal_module_buffer_view_create, riiCID, r) EXPORT_FN("buffer_view.dim", iree_hal_module_buffer_view_dim, ri, I) EXPORT_FN("buffer_view.element_type", iree_hal_module_buffer_view_element_type, r, i)
diff --git a/runtime/src/iree/modules/hal/module.c b/runtime/src/iree/modules/hal/module.c index d51be33..f6c7387 100644 --- a/runtime/src/iree/modules/hal/module.c +++ b/runtime/src/iree/modules/hal/module.c
@@ -776,16 +776,6 @@ return iree_ok_status(); } -IREE_VM_ABI_EXPORT(iree_hal_module_buffer_view_byte_length, // - iree_hal_module_state_t, // - r, I) { - iree_hal_buffer_view_t* buffer_view = NULL; - IREE_RETURN_IF_ERROR( - iree_hal_buffer_view_check_deref(args->r0, &buffer_view)); - rets->i0 = (int64_t)iree_hal_buffer_view_byte_length(buffer_view); - return iree_ok_status(); -} - IREE_VM_ABI_EXPORT(iree_hal_module_buffer_view_element_type, // iree_hal_module_state_t, // r, i) {