On Wed, 22 Nov 2017, Jakub Jelinek wrote: > Hi! > > On this testcase we get (vec_series (reg: ebp) (const_int 1)) > in NOTE_INSN_CALL_ARG_LOCATION because the vector isn't live anywhere else. > Right now we do not have a good story for providing values of optimized > out vectors, so just punting on it like on other VEC_* codes is sufficient. > > For the future, the question is how to represent vectors, they could be > represented e.g. using typed DWARF stack, but then the stack could have > really large values, or by representing them as arrays of elements using > DW_OP_piece, which probably current consumers would grok already now, > but the debug info for it could be larger (say: > typedef int V __attribute__((vector_size (32))); > V bar (V, V); > > V > foo (V a, V b) > { > V c = a + b; > return bar (a, b) + a; > } > to represent c we either have typed stack ... DW_OP_plus DW_OP_stack_value, > or ( ... DW_OP_plus DW_OP_stack_value DW_OP_piece ... ) 8x > > Anyway, for now I think this is enough. Bootstrapped/regtested on > x86_64-linux and i686-linux, ok for trunk?
Ok. Richard. > 2017-11-22 Jakub Jelinek <ja...@redhat.com> > > PR debug/83034 > * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES. > > * gcc.dg/pr83034.c: New test. > > --- gcc/dwarf2out.c.jj 2017-11-21 08:56:52.000000000 +0100 > +++ gcc/dwarf2out.c 2017-11-21 16:08:34.397197696 +0100 > @@ -15605,6 +15605,7 @@ mem_loc_descriptor (rtx rtl, machine_mod > case VEC_SELECT: > case VEC_CONCAT: > case VEC_DUPLICATE: > + case VEC_SERIES: > case UNSPEC: > case HIGH: > case FMA: > --- gcc/testsuite/gcc.dg/pr83034.c.jj 2017-11-21 16:07:13.886253031 +0100 > +++ gcc/testsuite/gcc.dg/pr83034.c 2017-11-21 16:03:23.000000000 +0100 > @@ -0,0 +1,12 @@ > +/* PR debug/83034 */ > +/* { dg-do compile } */ > +/* { dg-options "-funroll-loops -Ofast -g" } */ > + > +__attribute__((__simd__)) float expf (float); > + > +void > +foo (float *a, int x) > +{ > + for (; x; x++) > + a[x] = expf (x); > +} > > Jakub > > -- Richard Biener <rguent...@suse.de> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)