On Wed, Oct 08, 2025 at 10:49:21AM +0200, Jakub Jelinek wrote:
> On Wed, Oct 08, 2025 at 09:35:06AM +0100, Yury Khrustalev wrote:
> > I think we have 2 things here:
> > 
> > 1. Detect situation when we work with something like svbool_t
> > 2. Decide what to do in this case (i.e. what attributes to add to
> > whatever DIEs).
> > 
> > I agree on the latter that we should have DW_AT_bit_stride in the array
> > type but I think DW_AT_bit_size 1 in the base type (element type) would
> > not solve the issue with GDB reading 1 byte for each vector element
> > because it really looks at the type description at this point.
> 
> I think both are desirable from the DWARF POV.  What exactly GDB does with
> it is a question on GDB.

Just to confirm, you don't want to add DW_AT_bit_stride to DW_TAG_array_type
entry and *instead* add DW_AT_bit_size 1 in the base type? And if GDB
still doesn't work, then fix it on the GDB side?

If having DW_AT_bit_stride is still OK, I'd rather do that (along with
other things), just to allow current versions of GDB show something
sensible.

> > > But I'll stress out this should be done solely for the targets which have
> > > such kind of VECTOR_BOOLEAN_TYPE_Ps, not all because many have other
> > > implementation.  And even if aarch64 doesn't have 2/4/8-bit strided bool
> > > vectors (really don't know), it is quite likely RISC-V has those.
> > 
> > Could you point me in the direction of implementing target dependent
> > code for generating DWARF information?
> 
> First of all, it should use the VECTOR_BOOLEAN_TYPE_P macro to decide, and
> then either it can derive stuff from TYPE_MODE, or if that doesn't work
> it can use a target hook.
> There are various dwarf related target hooks and language hooks.
> Just grep for targetm or lang_hooks in dwarf2out.cc.
> So, perhaps have a target hook that given a VECTOR_BOOLEAN_TYPE_P
> returns you the bit stride, with 0 meaning handle it as now.

Thanks!

Yury

Reply via email to