Re: bitscan forward/reverse on Windows - Mailing list pgsql-hackers

From John Naylor
Subject Re: bitscan forward/reverse on Windows
Date
Msg-id CAFBsxsH_BbPUVeTA8rD8A0f1RaCTLN17i89v8yriNuouBnTzpQ@mail.gmail.com
Whole thread Raw
In response to bitscan forward/reverse on Windows  (John Naylor <john.naylor@enterprisedb.com>)
Responses Re: bitscan forward/reverse on Windows
List pgsql-hackers

I wrote:
> Attached is a quick-and-dirty attempt to add MSVC support for the rightmost/leftmost-one-pos functions.
>
> 0001 adds asserts to the existing coding.
> 0002 adds MSVC support. Tests pass on CI, but it's of course possible that there is some bug that prevents hitting the fastpath. I've mostly used the platform specific types, so some further cleanup might be needed.

I've cleaned these up and verified on godbolt.org that they work as intended and still pass CI. I kept the Windows types as does other Winows code in the tree, but used bool instead of unsigned char because it's used like a boolean.

0003 is separate because I'm not quite sure how detailed to comment the #ifdef maze. Could be left out.
0004 simplifies AllocSetFreeIndex() in the course of supporting MSVC. The output is identical to HEAD in non-assert builds using gcc.

0002 through 0004 could be squashed together.

This plugs a hole in our platform-specific intrinsic support and is fairly straightforward. Review welcome, but if there is none I intend to commit in a week or two.

--
John Naylor
EDB: http://www.enterprisedb.com
Attachment

pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: possible proposal plpgsql GET DIAGNOSTICS oid = PG_ROUTINE_OID
Next
From: o.tselebrovskiy@postgrespro.ru
Date:
Subject: A bug with ExecCheckPermissions