summaryrefslogtreecommitdiff
path: root/mlir
diff options
context:
space:
mode:
authorMehdi Amini <joker.eph@gmail.com>2023-04-21 01:17:20 -0600
committerMehdi Amini <joker.eph@gmail.com>2023-05-15 15:36:16 -0700
commit51c8af2763dd7820bea5abf28728b400a86d1ba3 (patch)
tree440b76e8020976f4e82619708c6cbbc57344129c /mlir
parenteddcf480f51548c923e400d1d5e80fcde60bfc6f (diff)
downloadllvm-51c8af2763dd7820bea5abf28728b400a86d1ba3.tar.gz
Adopt Properties to store operations inherent Attributes in the Vector dialect
This is part of an on-going migration to adopt Properties inside MLIR. Differential Revision: https://reviews.llvm.org/D148939
Diffstat (limited to 'mlir')
-rw-r--r--mlir/include/mlir/Dialect/Vector/IR/VectorOps.td1
-rw-r--r--mlir/lib/Dialect/Vector/IR/VectorOps.cpp10
2 files changed, 7 insertions, 4 deletions
diff --git a/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td b/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
index e4909a24dbee..b9bcd2bb5f12 100644
--- a/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
+++ b/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
@@ -29,6 +29,7 @@ def Vector_Dialect : Dialect {
let useDefaultAttributePrinterParser = 1;
let hasConstantMaterializer = 1;
+ let usePropertiesForAttributes = 1;
let dependentDialects = ["arith::ArithDialect"];
}
diff --git a/mlir/lib/Dialect/Vector/IR/VectorOps.cpp b/mlir/lib/Dialect/Vector/IR/VectorOps.cpp
index 2d3b27f1af58..5c139b5897d7 100644
--- a/mlir/lib/Dialect/Vector/IR/VectorOps.cpp
+++ b/mlir/lib/Dialect/Vector/IR/VectorOps.cpp
@@ -1153,8 +1153,9 @@ ExtractOp::inferReturnTypes(MLIRContext *, std::optional<Location>,
ValueRange operands, DictionaryAttr attributes,
OpaqueProperties properties, RegionRange,
SmallVectorImpl<Type> &inferredReturnTypes) {
- ExtractOp::Adaptor op(operands, attributes);
- auto vectorType = llvm::cast<VectorType>(op.getVector().getType());
+ ExtractOp::Adaptor op(operands, attributes
+ *properties.as<ExtractOp::Properties *>());
+ auto vectorType = op.getVector().getType().cast<VectorType>();
if (static_cast<int64_t>(op.getPosition().size()) == vectorType.getRank()) {
inferredReturnTypes.push_back(vectorType.getElementType());
} else {
@@ -2089,8 +2090,9 @@ ShuffleOp::inferReturnTypes(MLIRContext *, std::optional<Location>,
ValueRange operands, DictionaryAttr attributes,
OpaqueProperties properties, RegionRange,
SmallVectorImpl<Type> &inferredReturnTypes) {
- ShuffleOp::Adaptor op(operands, attributes);
- auto v1Type = llvm::cast<VectorType>(op.getV1().getType());
+ ShuffleOp::Adaptor op(operands, attributes
+ *properties.as<ShuffleOp::Properties *>());
+ auto v1Type = op.getV1().getType().cast<VectorType>();
auto v1Rank = v1Type.getRank();
// Construct resulting type: leading dimension matches mask
// length, all trailing dimensions match the operands.