================ @@ -658,6 +742,27 @@ mlir::LogicalResult CIRToLLVMConstantOpLowering::matchAndRewrite( } assert(!cir::MissingFeatures::opGlobalViewAttr()); attr = op.getValue(); + } else if (const auto arrTy = mlir::dyn_cast<cir::ArrayType>(op.getType())) { + const auto constArr = mlir::dyn_cast<cir::ConstArrayAttr>(op.getValue()); + if (!constArr && !isa<cir::ZeroAttr, cir::UndefAttr>(op.getValue())) + return op.emitError() << "array does not have a constant initializer"; + + std::optional<mlir::Attribute> denseAttr; + if (constArr && hasTrailingZeros(constArr)) { + const mlir::Value newOp = lowerCirAttrAsValue( + op, constArr, rewriter, getTypeConverter(), dataLayout); + rewriter.replaceOp(op, newOp); + return mlir::success(); + } else if (constArr && + (denseAttr = lowerConstArrayAttr(constArr, typeConverter))) { + attr = denseAttr.value(); + } else { + const mlir::Value initVal = lowerCirAttrAsValue( + op, op.getValue(), rewriter, typeConverter, dataLayout); ---------------- andykaylor wrote:
```suggestion op, op.getValue(), rewriter, typeConverter); ``` https://github.com/llvm/llvm-project/pull/132974 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits