https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|rguenth at gcc dot gnu.org         |pinskia at gcc dot 
gnu.org
   Target Milestone|8.4                         |11.0

--- Comment #32 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Mine for GCC 11.  I have patches which improve this a lot.
The problem right now is the padding.

I have an idea where we initialize all structs non-addressed local variables
that have a non VOIDmode right before their first use.
Kinda like init-regs does on the RTL but a little more complex.

That is having:
bitstr fun(int s, int l)
{
  bitstr res;
  *(int*)&res = 0;
  res.a  = s;
  res.b  = 1;
  res.c  = 0;
  res.d  = l;
  return res;
}

Will produce better code always :).

Reply via email to