Add functions to calculate the next power of 2
authorDavid Rowley <drowley@postgresql.org>
Wed, 8 Apr 2020 04:22:52 +0000 (16:22 +1200)
committerDavid Rowley <drowley@postgresql.org>
Wed, 8 Apr 2020 04:22:52 +0000 (16:22 +1200)
commitf0705bb6286d8a24e08ddd99641264ba947ebd03
tree97518ecfc8e12e4ab5702bc6925d37d16c620443
parent7a5d74b7dd4b1324e8a8fff4086d51d4f43b1721
Add functions to calculate the next power of 2

There are many areas in the code where we need to determine the next
highest power of 2 of a given number.  We tend to always do that in an
ad-hoc way each time, generally with some tight for loop which performs a
bitshift left once per loop and goes until it finds a number above the
given number.

Here we add two generic functions which make use of the existing
pg_leftmost_one_pos* functions which, when available, will allow us to
calculate the next power of 2 without any looping.

Here we don't add any code which uses these new functions. That will be
done in follow-up commits.

Author: David Fetter, with some minor adjustments by me
Reviewed-by: John Naylor, Jesse Zhang
Discussion: https://postgr.es/m/20200114173553.GE32763%40fetter.org
src/include/port/pg_bitutils.h