[Bug middle-end/42972] Very bad bit field code
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Feb 5 13:26:00 GMT 2010
------- Comment #4 from rguenth at gcc dot gnu dot org 2010-02-05 13:25 -------
(In reply to comment #1)
> In the .expand dump there is already something funny about the code generated
> for the bit field expressions.
>
> For example the code generated for this:
> D.1966_8 = D.1965_7 & 1;
> if (D.1966_8 != 0)
>
> TER will perform the forward substitution:
> D.1966_8 replace with --> D.1966_8 = D.1965_7 & 1;
Note that this dump is misleading. The expression is only _marked_ for
possible forwarding. It is the resposibility of the individual expanders
to do the expression lookup and in-place expansion.
And of course forwarded statements are still regularly expanded anyway
(well, to dead code) - that's probably what you see.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |matz at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42972
More information about the Gcc-bugs
mailing list