From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | Abhijit Menon-Sen <ams(at)2ndQuadrant(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Andres Freund <andres(at)2ndquadrant(dot)com> |
Subject: | Re: What exactly is our CRC algorithm? |
Date: | 2014-12-26 15:50:33 |
Message-ID: | 20141226155033.GB3763@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Dec 25, 2014 at 11:57:29AM +0530, Abhijit Menon-Sen wrote:
> Hi.
>
> Here's a proposed patch to use CPUID at startup to determine if the
> SSE4.2 CRC instructions are available, to use them instead of the
> slice-by-8 implementation (posted earlier).
>
> A few notes:
>
> 1. GCC has included cpuid.h since 4.3.0, so I figured it was safe to
> use. It can be replaced with some inline assembly otherwise.
>
> 2. I've also used the crc32b/crc32q instructions directly rather than
> using ".bytes" to encode the instructions; bintuils versions since
> 2007 or so have supported them.
>
> 3. I've included the MSVC implementation mostly as an example of how to
> extend this to different compilers/platforms. It's written according
> to the documentation for MSVC intrinsics, but I have not tested it.
> Suggestions/improvements are welcome.
Uh, what happens if the system is compiled on a different CPU that it is
run on? Seems we would need a run-time CPU test.
--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ Everyone has their own god. +
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2014-12-26 15:50:41 | Re: BUG #12330: ACID is broken for unique constraints |
Previous Message | Marko Tiikkaja | 2014-12-26 15:44:25 | Re: BUG #12330: ACID is broken for unique constraints |