Georg-Johann Lay writes:

> This patch contains some unrelated tweaks
>
> - Supplying no-ldregs variant for andqi3, iorqi3 where a const_int mask 
> affects 
> only 1 bit
>
> - Some patterns that match situations with zero_extend that can be performed 
> with less instructions / register pressure.

>From my (admittedly limited) attempts at code size benchmarking, this
one will help a lot I think, considering ints are used everywhere and
they end up always taking 2 regs, even when one would do. Do you have any 
numbers on the code size improvement this provides?

Regards
Senthil
>
> - comparing HI against -1
>
> Ok for trunk?
>
> Johann
>
>
> gcc/
>       Minor tweaks for QImode.
>
>       * config/avr/predicates.md (const_m255_to_m1_operand): New.
>       * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
>       * config/avr/avr.md (add<mode>3) <ALL1>: Make "r,0,r" more
>       expensive.
>       (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
>       (*usum_widenqihi3, *udiff_widenqihi3)
>       (*addhi3_zero_extend.const): New combiner insns.
>       (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
>       just 1 bit is affected.
>       * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
>       (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.

Reply via email to