2011/5/11 Georg-Johann Lay <a...@gjlay.de>: > 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.
You right here. Please, apply the patch. Denis.