https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30908

--- Comment #23 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I am not sure this is that much worse any more because of improvements to
ivopts.

The inner loops are now:
.L2:
        sbiw r24,1
        brne .L2
..
.L3:
        sbiw r24,1
        brne .L3
vs
.L4:
        sbiw r24,1
        ldi r20,hi8(-1)
        cpi r24,lo8(-1)
        cpc r25,r20
        brne .L4


at -Os, it is 0x22 in size without the attribute noinline/noipa.
it is 0x1e with noipa while 0x16 with noinline (because of cloning for 100).
So +12 bytes compared to the noinline case and +4 compared to the noipa case.
And still -8 bytes from 4.6.4

Basically ivopts improvements in GCC 4.6+ and other improvements since GCC 14
has made the sizes not too far apart from the noinline/noipa cases.

Reply via email to