[Mlir-commits] [flang] [mlir] [mlir] Align num elements type to LLVM ArrayType (PR #93230)
Tobias Gysi
llvmlistbot at llvm.org
Fri May 24 08:10:24 PDT 2024
================
@@ -632,8 +632,12 @@ llvm::Constant *mlir::LLVM::detail::getLLVMConstant(
llvm::ElementCount::get(numElements, /*Scalable=*/isScalable), child);
if (llvmType->isArrayTy()) {
auto *arrayType = llvm::ArrayType::get(elementType, numElements);
- SmallVector<llvm::Constant *, 8> constants(numElements, child);
- return llvm::ConstantArray::get(arrayType, constants);
+ if (child->isZeroValue()) {
+ return llvm::ConstantAggregateZero::get(arrayType);
+ } else {
+ std::vector<llvm::Constant *> constants(numElements, child);
----------------
gysit wrote:
Are you sure SmallVector has a size limitation that is different from `std::vector`? It has a fixed stack size but you can resize using a size_t value so I would expect 2^32 elements should be fine. I would drop the 8 that was there before that seems a bit arbitrary and just use `SmallVector<llvm::Constant *> constants(numElements, child);`.
https://github.com/llvm/llvm-project/pull/93230
More information about the Mlir-commits
mailing list