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

Markus Trippelsdorf
2015-04-13T19:09:17Z

On 2015.04.13 at 11:31 -0700, Linus Torvalds wrote:
> On Mon, Apr 13, 2015 at 10:26 AM, Markus Trippelsdorf
> <markus@trippelsdorf.de> 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