26 mlir::MLIRContext *mlirContext = mod.getContext();
27 mlir::DataLayoutSpecInterface dlSpec =
28 mlir::translateDataLayout(dl, mlirContext);
33 constexpr unsigned kBitsInByte = 8;
34 unsigned ptrSizeBits = dl.getPointerSizeInBits(0);
36 dl.getPointerABIAlignment(0).value() * kBitsInByte;
37 unsigned ptrPrefBits =
38 dl.getPointerPrefAlignment(0).value() * kBitsInByte;
39 unsigned ptrIndexBits = dl.getIndexSizeInBits(0);
40 auto ptrKey = cir::PointerType::get(cir::VoidType::get(mlirContext));
41 auto ptrSpec = cir::PtrSpecAttr::get(mlirContext, ptrSizeBits, ptrAbiBits,
42 ptrPrefBits, ptrIndexBits);
44 dlSpec.getEntries().begin(), dlSpec.getEntries().end());
45 entries.push_back(mlir::DataLayoutEntryAttr::get(ptrKey, ptrSpec));
47 mod->setAttr(mlir::DLTIDialect::kDataLayoutAttrName,
48 mlir::DataLayoutSpecAttr::get(mlirContext, entries));