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.