BIT_FIELD_REF on the LHS

Steven Bosscher stevenb.gcc@gmail.com
Thu Jul 13 08:30:00 GMT 2006


On 7/13/06, Richard Guenther <richard.guenther@gmail.com> wrote:
> On 7/13/06, Andrew Pinski <pinskia@gmail.com> wrote:
> > So I started to try to fold *(type*)(&vector_type_var) into
> > BIT_FIELD_REF <t, 32, 0> but I ran into a bug where the SSA messes
> > itself up.
> > This works for the right hand side just fine as
> > BIT_FIELD_REF<SSA_NAME, x, y > is easyly valid gimple.  When the
> > BIT_FIELD_REF is on the left hand side, it turns out that we produce:
> > BIT_FIELD_REF<t1_2, x, y > = t_1 still even though t1_2 is killed
> > during the BIT_FIELD_REF.
>
> it's only a partial kill, which you cannot do to ssa names.  So you'd need to
> go the
>
> t1_2 = { t[0], other, t[1], t[2] }
>
> route to fix this.

This looks _so_ much like the SUBREG issues with RTL SSA :-)

Gr.
Steven



More information about the Gcc mailing list