On Sat, Nov 26, 2016 at 09:15:48AM -0700, Jeff Law wrote: > On 11/26/2016 04:11 AM, Eric Botcazou wrote: > >> From my investigations on the m68k, the effects on the IL are minimal > >>with a slight bias towards better code (by suppressing if-conversions of > >>some now more costly blocks). *But* the size of the resulting code was > >>all over the place -- sometimes it was better, others worse. From > >>looking at the assembly we seemingly are copying blocks that aren't > >>strictly necessary. > > > >I'm seeing essentially the same thing on SPARC, probably because of the > >ifcvt > >change; the rtlanal change seems to be neutral for the architecture. > Just to be clear, I was only testing the rtlanal change, not the ifcvt > change. > > I repeated my test on the GCC runtime libraries for m68k-elf. Bernd's > rtlanal change +.03%, the goof in STC, +9.4%. So the STC goof still > dwarfs the impact to Bernd's change, but not as badly as I saw in the > newlib codebase.
orig, i386+rtlanal, i386+rtlanal+ifcvt: worse: alpha 5439003 5455979 5455979 c6x 2107939 2108931 2108931 cris 2189380 2193836 2193836 m32r 3427409 3427541 3427453 m68k 3228408 3230978 3230978 mips 4286748 4286964 4286692 mips64 5564819 5565643 5565291 parisc 8278881 8289977 8289573 parisc64 7234619 7249187 7249139 powerpc 8438949 8440005 8440005 powerpc64 14499969 14508689 14508689 s390 12778748 12779228 12779220 shnommu 1369868 1371020 1371020 sparc64 5921556 5922172 5922172 tilegx 12297581 12307461 12307461 tilepro 11215603 11227339 11227339 xtensa 1776196 1779152 1779152 better: blackfin 1973931 1973867 1973867 frv 3638192 3637792 3637792 h8300 1060172 1059976 1059976 i386 9742984 9742463 9742463 ia64 15402035 15396171 15396171 mn10300 2360025 2358201 2358201 nios2 3185625 3176693 3176693 x86_64 10360418 10359588 10359588 did not build: arc 0 0 0 arm 0 0 0 arm64 0 0 0 microblaze 0 0 0 sh 0 0 0 sparc 0 0 0 tl;dr: The ifcvt change doesn't do much, but the cost change does. Segher