[flang-commits] [flang] [mlir] [mlir] Align num elements type to LLVM ArrayType (PR #93230)
Tobias Gysi via flang-commits
flang-commits at lists.llvm.org
Thu May 23 23:13:57 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:
Is std::vector significantly more efficient for larger arrays (for small arrays which is hopefully the common case SmallVector should be preferable)? Can you add a comment why you use it here for the next person that touching this?
https://github.com/llvm/llvm-project/pull/93230
More information about the flang-commits
mailing list