diff options
author | 2019-05-14 15:42:55 -0700 | |
---|---|---|
committer | 2019-05-14 19:52:49 -0700 | |
commit | 8fb583c4258d08f0aff105aa2ae5157b7d414ea2 (patch) | |
tree | d45dd566badd42d1c13507ea01e890e07dd0ade3 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | lib/sort: use more efficient bottom-up heapsort variant (diff) | |
download | linux-dev-8fb583c4258d08f0aff105aa2ae5157b7d414ea2.tar.xz linux-dev-8fb583c4258d08f0aff105aa2ae5157b7d414ea2.zip |
lib/sort: avoid indirect calls to built-in swap
Similar to what's being done in the net code, this takes advantage of
the fact that most invocations use only a few common swap functions, and
replaces indirect calls to them with (highly predictable) conditional
branches. (The downside, of course, is that if you *do* use a custom
swap function, there are a few extra predicted branches on the code
path.)
This actually *shrinks* the x86-64 code, because it inlines the various
swap functions inside do_swap, eliding function prologues & epilogues.
x86-64 code size 767 -> 703 bytes (-64)
Link: http://lkml.kernel.org/r/d10c5d4b393a1847f32f5b26f4bbaa2857140e1e.1552704200.git.lkml@sdf.org
Signed-off-by: George Spelvin <lkml@sdf.org>
Acked-by: Andrey Abramov <st5pub@yandex.ru>
Acked-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Daniel Wagner <daniel.wagner@siemens.com>
Cc: Dave Chinner <dchinner@redhat.com>
Cc: Don Mullis <don.mullis@gmail.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions