On Wed, 2024-05-29 at 15:32 -0500, David Lechner wrote: > On 5/29/24 7:23 AM, Nuno Sá wrote: > > On Mon, 2024-05-27 at 20:02 +0300, Dumitru Ceclan via B4 Relay wrote: > > > From: Dumitru Ceclan <dumitru.ceclan@xxxxxxxxxx> > > > > > > Reduce the size used by the device info struct by packing the bool > > > fields within the same byte. This reduces the struct size from 52 bytes > > > to 44 bytes. > > > > > > Signed-off-by: Dumitru Ceclan <dumitru.ceclan@xxxxxxxxxx> > > > --- > > > drivers/iio/adc/ad7173.c | 16 ++++++++-------- > > > 1 file changed, 8 insertions(+), 8 deletions(-) > > > > > > diff --git a/drivers/iio/adc/ad7173.c b/drivers/iio/adc/ad7173.c > > > index 328685ce25e0..e8357a21d513 100644 > > > --- a/drivers/iio/adc/ad7173.c > > > +++ b/drivers/iio/adc/ad7173.c > > > @@ -179,15 +179,15 @@ struct ad7173_device_info { > > > unsigned int clock; > > > unsigned int id; > > > char *name; > > > - bool has_current_inputs; > > > - bool has_vcom_input; > > > - bool has_temp; > > > + bool has_current_inputs :1; > > > + bool has_vcom_input :1; > > > + bool has_temp :1; > > > /* ((AVDD1 − AVSS)/5) */ > > > - bool has_common_input; > > > - bool has_input_buf; > > > - bool has_int_ref; > > > - bool has_ref2; > > > - bool higher_gpio_bits; > > > + bool has_common_input :1; > > > + bool has_input_buf :1; > > > + bool has_int_ref :1; > > > + bool has_ref2 :1; > > > + bool higher_gpio_bits :1; > > > u8 num_gpios; > > > }; > > > > > > > > > > This is really a very micro optimization... I would drop it tbh but no strong > > feelings about it. > > > > - Nuno Sá > > This only considers RAM size and not code size too. At least on ARM arch > every time we read or write to one of these fields, the code is now > implicitly `((field & 0x1) >> bits)` so two extra assembly instructions > for each read and write. This could be bigger than the size saved in > the structs. > > very good point... - Nuno Sá