Skip to content

Commit 20ead4c

Browse files
authored
Merge pull request #570 from Xilinx/revert-568-jrickert.DenseElementsAttrBitStorageSize
Revert "Allow to use the DenseElementsAttr get methods to be used with types …"
2 parents b8f6271 + 94b0f17 commit 20ead4c

File tree

3 files changed

+10
-34
lines changed

3 files changed

+10
-34
lines changed

mlir/include/mlir/IR/BuiltinAttributes.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ class DenseElementsAttr : public Attribute {
112112
static DenseElementsAttr get(ShapedType type, ArrayRef<Attribute> values);
113113

114114
/// Constructs a dense integer elements attribute from an array of integer
115-
/// or floating-point values. Each value is expected to be the same as the
116-
/// storage bitwidth of the element type of 'type'. 'type' must be a vector or
117-
/// tensor with static shape.
115+
/// or floating-point values. Each value is expected to be the same bitwidth
116+
/// of the element type of 'type'. 'type' must be a vector or tensor with
117+
/// static shape.
118118
template <typename T,
119119
typename = std::enable_if_t<std::numeric_limits<T>::is_integer ||
120120
is_valid_cpp_fp_type<T>::value>>

mlir/lib/IR/BuiltinAttributes.cpp

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1104,15 +1104,13 @@ bool DenseElementsAttr::isValidRawBuffer(ShapedType type,
11041104
/// invariants that the templatized 'getValues' method cannot.
11051105
static bool isValidIntOrFloat(Type type, int64_t dataEltSize, bool isInt,
11061106
bool isSigned) {
1107-
// Make sure that the data element size is the same as the type element
1108-
// storage width.
1109-
const size_t denseEltStorageBitWidth = getDenseElementStorageWidth(type);
1110-
const size_t dataSizeBitWidth = static_cast<size_t>(dataEltSize * CHAR_BIT);
1111-
if (denseEltStorageBitWidth != dataSizeBitWidth) {
1112-
LLVM_DEBUG(llvm::dbgs()
1113-
<< "expected dense element bit width " << denseEltStorageBitWidth
1114-
<< " to match data size " << dataSizeBitWidth << " for type "
1115-
<< type << "\n");
1107+
// Make sure that the data element size is the same as the type element width.
1108+
auto denseEltBitWidth = getDenseElementBitWidth(type);
1109+
auto dataSize = static_cast<size_t>(dataEltSize * CHAR_BIT);
1110+
if (denseEltBitWidth != dataSize) {
1111+
LLVM_DEBUG(llvm::dbgs() << "expected dense element bit width "
1112+
<< denseEltBitWidth << " to match data size "
1113+
<< dataSize << " for type " << type << "\n");
11161114
return false;
11171115
}
11181116

mlir/unittests/IR/AttributeTest.cpp

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -570,26 +570,4 @@ TEST(NonSplattedDenseElementAttrTest, GetNonSplatRawDataI16) {
570570
.getNonSplatRawData<uint16_t>(),
571571
expected);
572572
}
573-
574-
TEST(NonSplattedDenseElementAttrTest, GetFromRawI7) {
575-
constexpr std::size_t numberOfElements = 6;
576-
static constexpr std::array<int8_t, numberOfElements> rawValues = {1, 2, 3,
577-
4, 5, 6};
578-
579-
mlir::MLIRContext context;
580-
mlir::OpBuilder b(&context);
581-
582-
auto values = mlir::DenseElementsAttr::get(
583-
mlir::RankedTensorType::get({numberOfElements}, b.getIntegerType(7)),
584-
ArrayRef<int8_t>(rawValues));
585-
auto fromRaw = mlir::DenseIntOrFPElementsAttr::getFromRawBuffer(
586-
values.getType(), values.getRawData());
587-
588-
EXPECT_EQ(values, fromRaw);
589-
EXPECT_EQ(fromRaw.getElementType(), b.getIntegerType(7));
590-
EXPECT_EQ(fromRaw.getNumElements(), numberOfElements);
591-
for (auto [fr, e] : llvm::zip_equal(fromRaw.getValues<int8_t>(), rawValues)) {
592-
EXPECT_EQ(fr, e);
593-
}
594-
}
595573
} // namespace

0 commit comments

Comments
 (0)