@@ -125,6 +125,12 @@ uint64_t IntType::getABIAlignment(const mlir::DataLayout &dataLayout,
125125 return (uint64_t )(getWidth () / 8 );
126126}
127127
128+ uint64_t
129+ IntType::getPreferredAlignment (const ::mlir::DataLayout &dataLayout,
130+ ::mlir::DataLayoutEntryListRef params) const {
131+ return (uint64_t )(getWidth () / 8 );
132+ }
133+
128134mlir::LogicalResult
129135IntType::verify (llvm::function_ref<mlir::InFlightDiagnostic()> emitError,
130136 unsigned width, bool isSigned) {
@@ -157,6 +163,12 @@ SingleType::getABIAlignment(const mlir::DataLayout &dataLayout,
157163 return (uint64_t )(getWidth () / 8 );
158164}
159165
166+ uint64_t
167+ SingleType::getPreferredAlignment (const ::mlir::DataLayout &dataLayout,
168+ ::mlir::DataLayoutEntryListRef params) const {
169+ return (uint64_t )(getWidth () / 8 );
170+ }
171+
160172const llvm::fltSemantics &DoubleType::getFloatSemantics () const {
161173 return llvm::APFloat::IEEEdouble ();
162174}
@@ -173,6 +185,12 @@ DoubleType::getABIAlignment(const mlir::DataLayout &dataLayout,
173185 return (uint64_t )(getWidth () / 8 );
174186}
175187
188+ uint64_t
189+ DoubleType::getPreferredAlignment (const ::mlir::DataLayout &dataLayout,
190+ ::mlir::DataLayoutEntryListRef params) const {
191+ return (uint64_t )(getWidth () / 8 );
192+ }
193+
176194const llvm::fltSemantics &FP16Type::getFloatSemantics () const {
177195 return llvm::APFloat::IEEEhalf ();
178196}
@@ -188,6 +206,12 @@ uint64_t FP16Type::getABIAlignment(const mlir::DataLayout &dataLayout,
188206 return (uint64_t )(getWidth () / 8 );
189207}
190208
209+ uint64_t
210+ FP16Type::getPreferredAlignment (const ::mlir::DataLayout &dataLayout,
211+ ::mlir::DataLayoutEntryListRef params) const {
212+ return (uint64_t )(getWidth () / 8 );
213+ }
214+
191215const llvm::fltSemantics &BF16Type::getFloatSemantics () const {
192216 return llvm::APFloat::BFloat ();
193217}
@@ -203,6 +227,12 @@ uint64_t BF16Type::getABIAlignment(const mlir::DataLayout &dataLayout,
203227 return (uint64_t )(getWidth () / 8 );
204228}
205229
230+ uint64_t
231+ BF16Type::getPreferredAlignment (const ::mlir::DataLayout &dataLayout,
232+ ::mlir::DataLayoutEntryListRef params) const {
233+ return (uint64_t )(getWidth () / 8 );
234+ }
235+
206236const llvm::fltSemantics &FP80Type::getFloatSemantics () const {
207237 return llvm::APFloat::x87DoubleExtended ();
208238}
@@ -219,6 +249,12 @@ uint64_t FP80Type::getABIAlignment(const mlir::DataLayout &dataLayout,
219249 return 16 ;
220250}
221251
252+ uint64_t
253+ FP80Type::getPreferredAlignment (const ::mlir::DataLayout &dataLayout,
254+ ::mlir::DataLayoutEntryListRef params) const {
255+ return 16 ;
256+ }
257+
222258const llvm::fltSemantics &FP128Type::getFloatSemantics () const {
223259 return llvm::APFloat::IEEEquad ();
224260}
@@ -234,6 +270,12 @@ uint64_t FP128Type::getABIAlignment(const mlir::DataLayout &dataLayout,
234270 return 16 ;
235271}
236272
273+ uint64_t
274+ FP128Type::getPreferredAlignment (const ::mlir::DataLayout &dataLayout,
275+ ::mlir::DataLayoutEntryListRef params) const {
276+ return 16 ;
277+ }
278+
237279const llvm::fltSemantics &LongDoubleType::getFloatSemantics () const {
238280 return mlir::cast<cir::CIRFPTypeInterface>(getUnderlying ())
239281 .getFloatSemantics ();
@@ -253,6 +295,13 @@ LongDoubleType::getABIAlignment(const mlir::DataLayout &dataLayout,
253295 .getABIAlignment (dataLayout, params);
254296}
255297
298+ uint64_t LongDoubleType::getPreferredAlignment (
299+ const ::mlir::DataLayout &dataLayout,
300+ mlir::DataLayoutEntryListRef params) const {
301+ return mlir::cast<mlir::DataLayoutTypeInterface>(getUnderlying ())
302+ .getPreferredAlignment (dataLayout, params);
303+ }
304+
256305LogicalResult
257306LongDoubleType::verify (function_ref<InFlightDiagnostic()> emitError,
258307 mlir::Type underlying) {
@@ -348,6 +397,12 @@ BoolType::getABIAlignment(const ::mlir::DataLayout &dataLayout,
348397 return 1 ;
349398}
350399
400+ uint64_t
401+ BoolType::getPreferredAlignment (const ::mlir::DataLayout &dataLayout,
402+ ::mlir::DataLayoutEntryListRef params) const {
403+ return 1 ;
404+ }
405+
351406// ===----------------------------------------------------------------------===//
352407// PointerType Definitions
353408// ===----------------------------------------------------------------------===//
@@ -366,6 +421,13 @@ PointerType::getABIAlignment(const ::mlir::DataLayout &dataLayout,
366421 return 8 ;
367422}
368423
424+ uint64_t PointerType::getPreferredAlignment (
425+ const ::mlir::DataLayout &dataLayout,
426+ ::mlir::DataLayoutEntryListRef params) const {
427+ // FIXME: improve this in face of address spaces
428+ return 8 ;
429+ }
430+
369431mlir::LogicalResult
370432PointerType::verify (llvm::function_ref<mlir::InFlightDiagnostic()> emitError,
371433 mlir::Type pointee) {
0 commit comments