http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45291

Georg Lay <avr at gjlay dot de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |avr at gjlay dot de

--- Comment #2 from Georg Lay <avr at gjlay dot de> 2010-11-04 16:04:02 UTC ---
insn 34 renders insn 33 invalid. This is due to subreg semantics. There are
several places in several versions of avr backend that use this technique and
will introduce similar bugs that might look different or become visible in
different passes. Amongst them are: 

o bytewise shift
o bytewise rotate
o zero-extending
o bytewise insert
o perhaps many more

Without tracking it down, this particular case semms to be generated by a
zero-extend.

Moreover, there are several optimization flaws that are connected with this
resp. optimization opportunities not implemented yet. As some recrafting will
be needed to fix this anyway, I propose to write the backend so that these
optimization issues will be kicked out (or will vanish without any effort if
patterns are defined appropriately).

As I see Erik CC'ed and I think he has a better overview of bugs/optimization
flaws related to this issue, maybe it's best if he picks one bug and marks the
others as duplicate of it.

Reply via email to