Denis Chertykov schrieb:
2011/5/2 Georg-Johann Lay <a...@gjlay.de>:

This is a fix for an optimization flaw when a long value is composed
from byte values.

For -fsplit-wide-types (which is still default for avr) the code is
worse than with -fno-split-wide-types. The code for the test case is
better in either situations, i.e. compared to code without the patch,
but it is still not optimal.

Fixing this by some combine patterns is the only thing the BE can do.
I did not write more complex patterns because things get too complex
with little performance gain.

Tested without regressions.

Johann

2011-05-02  Georg-Johann Lay  <a...@gjlay.de>

      PR target/27663
      * config/avr/predicates.md (const_8_16_24_operand): New predicate.
      * config/avr/avr.md ("*ior<mode>qi.byte0",
      "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.

I'm sorry, but I dot'n like to have a both combiner related patches in
port because code improvement isn't much and your patterns are
difficult to understand and maintain.

May be somebody else have a different oppinion ?
I'm open to discussion.

Denis.

Let me add that the patch is generic enough to also improve ORing HI against QI like described in

http://gcc.gnu.org/PR41076

which is not uncommon on avr.

Johann

Reply via email to