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

--- Comment #49 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Just to remind where we're coming from - we have
> 
> unData.strMemHead.b30AddrL        = ulAddr >> 2;
> 
> where this is a 30bit bitfield store (at bit offset % BITS_PER_UNIT == 0)
> from a unsigned :30 register.  Via the union we now try to load
> 8 bits from memory contained within that 30 bits and try to extract those
> from the unsigned :30 register instead (with the goal to elide the
> memory object).  In which circumnstances can we view the RHS of the above
> store as "proper" for applying the BIT_FIELD_REF as translated to the
> LHS memory to the RHS register?

I think that type_has_mode_precision_p would work and presumably not pessimize
too much even on little-endian platforms.

Reply via email to