[Mlir-commits] [mlir] f289c47 - [mlir][ODS] Add `constBuilderCall` to `Dense*ArrayAttr`s
Markus Böck
llvmlistbot at llvm.org
Wed Aug 17 13:18:21 PDT 2022
Author: Markus Böck
Date: 2022-08-17T22:18:13+02:00
New Revision: f289c47b5eb6f698315fd024be7ff74f3bedffac
URL: https://github.com/llvm/llvm-project/commit/f289c47b5eb6f698315fd024be7ff74f3bedffac
DIFF: https://github.com/llvm/llvm-project/commit/f289c47b5eb6f698315fd024be7ff74f3bedffac.diff
LOG: [mlir][ODS] Add `constBuilderCall` to `Dense*ArrayAttr`s
These are useful in builders of Ops taking DenseArrayAttrs or for use in Rewriter, to create constant instances.
Differential Revision: https://reviews.llvm.org/D132067
Added:
Modified:
mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
mlir/include/mlir/IR/Builders.h
mlir/include/mlir/IR/OpBase.td
mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
mlir/lib/IR/Builders.cpp
Removed:
################################################################################
diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
index 54ace65efa087..6f19e4a6bbabf 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
@@ -770,11 +770,6 @@ def LLVM_InsertValueOp : LLVM_Op<
DenseI64ArrayAttr:$position);
let results = (outs LLVM_AnyAggregate:$res);
- let builders = [
- OpBuilder<(ins "Value":$container, "Value":$value,
- "ArrayRef<int64_t>":$position)>
- ];
-
let assemblyFormat = [{
$value `,` $container `` $position attr-dict `:` type($container)
custom<InsertExtractValueElementType>(type($value), ref(type($container)),
diff --git a/mlir/include/mlir/IR/Builders.h b/mlir/include/mlir/IR/Builders.h
index 29e42768b2b95..687f6679913a8 100644
--- a/mlir/include/mlir/IR/Builders.h
+++ b/mlir/include/mlir/IR/Builders.h
@@ -138,6 +138,7 @@ class Builder {
DenseIntElementsAttr getIndexTensorAttr(ArrayRef<int64_t> values);
/// Tensor-typed DenseArrayAttr getters.
+ DenseBoolArrayAttr getDenseBoolArrayAttr(ArrayRef<bool> values);
DenseI8ArrayAttr getDenseI8ArrayAttr(ArrayRef<int8_t> values);
DenseI16ArrayAttr getDenseI16ArrayAttr(ArrayRef<int16_t> values);
DenseI32ArrayAttr getDenseI32ArrayAttr(ArrayRef<int32_t> values);
diff --git a/mlir/include/mlir/IR/OpBase.td b/mlir/include/mlir/IR/OpBase.td
index 4047440d11f98..330d26cf9b740 100644
--- a/mlir/include/mlir/IR/OpBase.td
+++ b/mlir/include/mlir/IR/OpBase.td
@@ -1291,6 +1291,7 @@ class DenseArrayAttrBase<string denseAttrName, string cppType, string summaryNam
summaryName # " dense array attribute"> {
let storageType = "::mlir::" # denseAttrName;
let returnType = "::llvm::ArrayRef<" # cppType # ">";
+ let constBuilderCall = "$_builder.get" # denseAttrName # "($0)";
}
def DenseBoolArrayAttr : DenseArrayAttrBase<"DenseBoolArrayAttr", "bool", "i1">;
def DenseI8ArrayAttr : DenseArrayAttrBase<"DenseI8ArrayAttr", "int8_t", "i8">;
diff --git a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
index a92cfbd46fc57..5c604e4b0c3e2 100644
--- a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
+++ b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
@@ -1619,13 +1619,6 @@ LogicalResult InsertValueOp::verify() {
return success();
}
-void InsertValueOp::build(OpBuilder &builder, OperationState &state,
- Value container, Value value,
- ArrayRef<int64_t> position) {
- build(builder, state, container.getType(), container, value,
- builder.getAttr<DenseI64ArrayAttr>(position));
-}
-
//===----------------------------------------------------------------------===//
// ReturnOp
//===----------------------------------------------------------------------===//
diff --git a/mlir/lib/IR/Builders.cpp b/mlir/lib/IR/Builders.cpp
index eb841da88f6db..50f84a6998222 100644
--- a/mlir/lib/IR/Builders.cpp
+++ b/mlir/lib/IR/Builders.cpp
@@ -124,6 +124,10 @@ DenseIntElementsAttr Builder::getIndexVectorAttr(ArrayRef<int64_t> values) {
values);
}
+DenseBoolArrayAttr Builder::getDenseBoolArrayAttr(ArrayRef<bool> values) {
+ return DenseBoolArrayAttr::get(context, values);
+}
+
DenseI8ArrayAttr Builder::getDenseI8ArrayAttr(ArrayRef<int8_t> values) {
return DenseI8ArrayAttr::get(context, values);
}
More information about the Mlir-commits
mailing list