Hi,

On Tue, 24 Apr 2007, Andreas Schwab wrote:

> > Even without this bug gcc usage of bitfield instruction has become a 
> > little insane lately, e.g. 2.95/3.4 produce this code:
> >
> > retmeK:
> >         link.w %a6,#0
> >         move.l 8(%a6),%d0
> >         unlk %a6
> >         rts
> 
> FWIW, I get this very code with 4.3.0 20070122 when compiling without
> optimisation.  

-fno-tree-sra does the same. I don't know if disabling this is the best 
way to go as in some cases it makes sense, the problem is that there is 
nothing that undoes this pass later, when needed.
This pass makes more sense with larger structures in memory, but with 
small structures in registers it makes things worse, e.g. some C++ 
structure may look like this:

struct B { bool a, b, c, d; };

and this also produces lots of bitfield instructions...

bye, Roman

Reply via email to