Re: Remove fls(), use pg_bitutils.h facilities instead?
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
David Rowley <dgrowleyml@gmail.com>
Date: 2022-07-20T05:44:35Z
Lists: pgsql-hackers
Attachments
- v3-0001-Remove-fls-function.patch (text/x-patch) patch v3-0001
On Wed, Jul 20, 2022 at 5:26 PM Thomas Munro <thomas.munro@gmail.com> wrote: > On Wed, Jul 20, 2022 at 4:52 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > I think we could probably just drop fls() entirely. It doesn't look > > to me like any of the existing callers expect a zero argument, so they > > could be converted to use pg_leftmost_one_pos32() pretty trivially. > > I don't see that fls() is buying us anything that is worth requiring > > readers to know yet another nonstandard function. > > That was not true for the case in contiguous_pages_to_segment_bin(), > in dsa.c. If it's just one place like that (and, hrrm, curiously > there is an open issue about binning quality on my to do list...), > then perhaps we should just open code it there. The attached doesn't > trigger the assertion that work != 0 in a simple make check. That double eval macro wasn't nice. This time with a static inline function.
Commits
-
Remove fls(), use pg_leftmost_one_pos32() instead.
- 4f1f5a7f85ce 16.0 landed
-
Extend size_t support in pg_bitutils.h.
- 3225399021b6 16.0 landed
-
Support fls().
- 4f658dc851a7 9.2.0 cited