Go to file
Nathan Bossart f78667bd91 Use __attribute__((target(...))) for AVX-512 support.
Presently, we check for compiler support for the required
intrinsics both with and without extra compiler flags (e.g.,
-mxsave), and then depending on the results of those checks, we
pick which files to compile with which flags.  This is tedious and
complicated, and it results in unsustainable coding patterns such
as separate files for each portion of code may need to be built
with different compiler flags.

This commit introduces support for __attribute__((target(...))) and
uses it for the AVX-512 code.  This simplifies both the
configure-time checks and the build scripts, and it allows us to
place the functions that use the intrinsics in files that we
otherwise do not want to build with special CPU instructions.  We
are careful to avoid using __attribute__((target(...))) on
compilers that do not understand it, but we still perform the
configure-time checks in case the compiler allows using the
intrinsics without it (e.g., MSVC).

A similar change could likely be made for some of the CRC-32C code,
but that is left as a future exercise.

Suggested-by: Andres Freund
Reviewed-by: Raghuveer Devulapalli, Andres Freund
Discussion: https://postgr.es/m/20240731205254.vfpap7uxwmebqeaf%40awork3.anarazel.de
2024-11-07 13:58:43 -06:00
.github Add CODE_OF_CONDUCT.md, CONTRIBUTING.md, and SECURITY.md. 2024-07-02 13:03:58 -05:00
config Use __attribute__((target(...))) for AVX-512 support. 2024-11-07 13:58:43 -06:00
contrib Update contrib/sepgsql regression tests for commit 89e51abcb. 2024-11-01 12:50:01 -04:00
doc doc: Reword ALTER TABLE ATTACH restriction on NO INHERIT constraints 2024-11-07 14:06:24 +01:00
src Use __attribute__((target(...))) for AVX-512 support. 2024-11-07 13:58:43 -06:00
.cirrus.star
.cirrus.tasks.yml Make PG_TEST_EXTRA env var override the "meson setup" option 2024-11-04 14:09:25 +02:00
.cirrus.yml
.dir-locals.el
.editorconfig
.git-blame-ignore-revs Add commit 7f7474a8e4 to .git-blame-ignore-revs. 2024-10-14 15:09:39 -05:00
.gitattributes
.gitignore
.mailmap Add a Git .mailmap file 2024-11-05 13:56:02 +01:00
aclocal.m4
configure Use __attribute__((target(...))) for AVX-512 support. 2024-11-07 13:58:43 -06:00
configure.ac Use __attribute__((target(...))) for AVX-512 support. 2024-11-07 13:58:43 -06:00
COPYRIGHT
GNUmakefile.in Allow selecting the git revision to be packaged by "make dist". 2024-05-03 11:08:50 -04:00
HISTORY
Makefile
meson_options.txt Make PG_TEST_EXTRA env var override the "meson setup" option 2024-11-04 14:09:25 +02:00
meson.build Use __attribute__((target(...))) for AVX-512 support. 2024-11-07 13:58:43 -06:00
README.md Revise the style of a paragraph in README.md. 2024-03-21 10:16:41 -05:00

PostgreSQL Database Management System

This directory contains the source code distribution of the PostgreSQL database management system.

PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. This distribution also contains C language bindings.

Copyright and license information can be found in the file COPYRIGHT.

General documentation about this version of PostgreSQL can be found at https://www.postgresql.org/docs/devel/. In particular, information about building PostgreSQL from the source code can be found at https://www.postgresql.org/docs/devel/installation.html.

The latest version of this software, and related software, may be obtained at https://www.postgresql.org/download/. For more information look at our web site located at https://www.postgresql.org/.