On Apr 11, 2015 2:20 AM, "Ingo Molnar" <mi...@kernel.org> wrote: > > Another thing caught my attention (and I'm hijacking the RCU thread > again): GCC's notion of how to place branches seems somewhat random, > and rather bloaty. > > So I tried the experiment below on an x86 defconfig, turning off GCC's > branch heuristics, and it's rather surprising: > > text data bss dec filename > 12566447 1617840 1089536 15273823 > vmlinux.fguess-branch-probability > 11923593 1617840 1089536 14630969 > vmlinux.fno-guess-branch-probability > > That's an 5.4% code size improvement!
Ugh. That's much larger than I would have expected. Is it just because gcc ends up turning if (a) b c into if (a) goto out-of-line return: c .. out-of-line: c goto return; a lot? Still, 5% sounds insanely big. How much of that 5% comes from code alignment? Or was this on *top* of the 1-byte alignment testt? Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/