Re: [PATCH] x86: Align jump targets to 1 byte boundaries

From: Markus Trippelsdorf
Date: Mon Apr 13 2015 - 15:09:20 EST


On 2015.04.13 at 11:31 -0700, Linus Torvalds wrote:
> On Mon, Apr 13, 2015 at 10:26 AM, Markus Trippelsdorf
> <markus@xxxxxxxxxxxxxxx> wrote:
> >
> > I must have made a measurement mistake above, because the actual code
> > size savings are roughly 5%:
>
> Can you check against the -fno-guess-branch-probability output?

text data bss dec filename
8746230 970072 802816 10519118 ./vmlinux gcc-5 (lto)
9202488 978512 811008 10992008 ./vmlinux gcc-5
8036915 970296 802816 9810027 ./vmlinux gcc-5 (lto -fno-guess-branch-probability)
8593615 978512 811008 10383135 ./vmlinux gcc-5 (-fno-guess-branch-probability)

> Does lto (without pgo) perhaps end up undoing a lot of the random
> "branch out and back" noise?

As Honza wrote somewhere else in this thread, gcc uses
-fguess-branch-probability to get a profile estimate, that is then used
throughout the whole optimization chain. So disabling this option
really makes no sense and will result in significant performance loss.

On the other hand the LTO code size savings should not affect
performance negatively at all.

--
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/