diff options
author | Jeff Niu <jeff@modular.com> | 2022-08-12 15:43:03 -0400 |
---|---|---|
committer | Jeff Niu <jeff@modular.com> | 2022-08-12 19:44:52 -0400 |
commit | 58a47508f03546b4fce668fad751102b94feacfd (patch) | |
tree | 6521e3fe3f20c151483b29344d07528802995ffd /mlir/lib/Rewrite/ByteCode.cpp | |
parent | 619fd8c2ab505d8f79cbbbe3fd09b02f6640e1b1 (diff) | |
download | llvm-58a47508f03546b4fce668fad751102b94feacfd.zip llvm-58a47508f03546b4fce668fad751102b94feacfd.tar.gz llvm-58a47508f03546b4fce668fad751102b94feacfd.tar.bz2 |
(Reland) [mlir] Switch segment size attributes to DenseI32ArrayAttr
This reland includes changes to the Python bindings.
Switch variadic operand and result segment size attributes to use the
dense i32 array. Dense integer arrays were introduced primarily to
represent index lists. They are a better fit for segment sizes than
dense elements attrs.
Depends on D131801
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D131803
Diffstat (limited to 'mlir/lib/Rewrite/ByteCode.cpp')
-rw-r--r-- | mlir/lib/Rewrite/ByteCode.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/mlir/lib/Rewrite/ByteCode.cpp b/mlir/lib/Rewrite/ByteCode.cpp index d4ca8b2..388d6dc 100644 --- a/mlir/lib/Rewrite/ByteCode.cpp +++ b/mlir/lib/Rewrite/ByteCode.cpp @@ -1713,11 +1713,11 @@ executeGetOperandsResults(RangeT values, Operation *op, unsigned index, LLVM_DEBUG(llvm::dbgs() << " * Extracting values from `" << attrSizedSegments << "`\n"); - auto segmentAttr = op->getAttrOfType<DenseElementsAttr>(attrSizedSegments); - if (!segmentAttr || segmentAttr.getNumElements() <= index) + auto segmentAttr = op->getAttrOfType<DenseI32ArrayAttr>(attrSizedSegments); + if (!segmentAttr || segmentAttr.asArrayRef().size() <= index) return nullptr; - auto segments = segmentAttr.getValues<int32_t>(); + ArrayRef<int32_t> segments = segmentAttr; unsigned startIndex = std::accumulate(segments.begin(), segments.begin() + index, 0); values = values.slice(startIndex, *std::next(segments.begin(), index)); |