Re: use CLZ instruction in AllocSetFreeIndex()

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: John Naylor <john(dot)naylor(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: use CLZ instruction in AllocSetFreeIndex()
Date: 2019-12-27 16:29:47
Message-ID: 20191227162947.GA25500@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2019-Dec-27, Tom Lane wrote:

> This kind of leads me to wonder if we don't need to expend more
> effort on the non-CLZ version of pg_leftmost_one_pos32; it seems
> like it shouldn't be losing this badly to the only-slightly-
> improved logic that's currently in AllocSetFreeIndex. On the
> other hand, the buildfarm thinks that __builtin_clz is essentially
> universal these days --- the only active non-MSVC critter that
> reports not having it is anole. So maybe it's not worth sweating
> over that. Perhaps what we really ought to be working on is
> finding MSVC equivalents for __builtin_clz and friends.

Apparently clz() can be written using _BitScanReverse(), per
https://stackoverflow.com/a/20468180
https://docs.microsoft.com/en-us/cpp/intrinsics/bitscanreverse-bitscanreverse64?view=vs-2015

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Fetter 2019-12-27 16:37:28 Re: use CLZ instruction in AllocSetFreeIndex()
Previous Message Peter Eisentraut 2019-12-27 16:25:58 Remove libpq.rc, use win32ver.rc for libpq