Add MSVC support for pg_leftmost_one_pos32() and friends
John Naylor <john.naylor@postgresql.org>
Add MSVC support for pg_leftmost_one_pos32() and friends To allow testing for general support for fast bitscan intrinsics, add symbols HAVE_BITSCAN_REVERSE and HAVE_BITSCAN_FORWARD. Also do related cleanup in AllocSetFreeIndex(): Previously, we tested for HAVE__BUILTIN_CLZ and copied the relevant internals of pg_leftmost_one_pos32(), with a special fallback that does less work than the general fallback for that function. Now that we have a more general test, we just call pg_leftmost_one_pos32() directly for platforms with intrinsic support. On gcc at least, there is no difference in the binary for non-assert builds. Discussion: https://www.postgresql.org/message-id/CAFBsxsEPc%2BFnX_0vmmQ5DHv60sk4rL_RZJ%2BMD6ei%3D76L0kFMvA%40mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/mmgr/aset.c | modified | +3 −3 |
| src/include/port/pg_bitutils.h | modified | +67 −8 |
Discussion
- bitscan forward/reverse on Windows 3 messages · 2023-01-25 → 2023-02-20