mariadb/mysys
Marko Mäkelä 9ec7819c58 MDEV-33817: AVX512BW and VPCLMULQDQ based CRC-32
This is based on https://github.com/intel/intel-ipsec-mb/
and has been tested both on x86 and x86-64, with code that
was generated by several versions of GCC and clang.
GCC 11 or clang 8 or later should be able to compile this,
and so should recent versions of MSVC.

Thanks to Intel Corporation for providing access to hardware,
for answering my questions regarding the code, and for
providing the coefficients for the CRC-32C computation.

crc32_avx512(): Compute a reverse polynomial CRC-32 using
precomputed tables and carry-less product, for up to 256 bytes
of unaligned input per loop iteration.

Reviewed by: Vladislav Vaintroub
2024-05-03 15:55:20 +03:00
..
crc32 MDEV-33817: AVX512BW and VPCLMULQDQ based CRC-32 2024-05-03 15:55:20 +03:00
array.c Fix synopses in mysys APIs 2023-01-06 07:20:37 +11:00
base64.c
ChangeLog
charset-def.c MDEV-7947 strcmp() takes 0.37% in OLTP RO 2020-07-23 10:54:33 +03:00
charset.c Merge 10.4 into 10.5 2023-02-10 12:02:11 +02:00
CMakeLists.txt MDEV-33817 preparation: Restructuring and unit tests 2024-05-03 13:06:13 +03:00
crc32ieee.cc MDEV-33817 preparation: Restructuring and unit tests 2024-05-03 13:06:13 +03:00
errors.c MDEV-7947 strcmp() takes 0.37% in OLTP RO 2020-07-23 10:54:33 +03:00
file_logger.c Merge 10.4 into 10.5 2021-03-05 12:54:43 +02:00
get_password.c Merge commit '10.4' into 10.5 2023-07-20 11:54:52 +02:00
guess_malloc_library.c
hash.c Fix synopses in mysys APIs 2023-01-06 07:20:37 +11:00
lf_alloc-pin.c Merge 10.4 into 10.5 2024-03-11 10:08:20 +02:00
lf_dynarray.c perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
lf_hash.cc MDEV-27088: Server crash on ARM (WMM architecture) due to missing barriers in lf-hash (10.5) 2021-11-30 15:16:16 +11:00
list.c Merge 10.4 into 10.5 2020-05-13 14:25:06 +03:00
ma_dyncol.c Merge branch '10.4' into 10.5 2023-11-08 12:59:00 +01:00
mf_arr_appstr.c
mf_cache.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
mf_dirname.c MDEV-21581 Helper functions and methods for CHARSET_INFO 2020-01-28 12:29:23 +04:00
mf_fn_ext.c
mf_format.c
mf_getdate.c
mf_iocache.c Merge 10.4 into 10.5 2021-06-21 14:22:22 +03:00
mf_iocache2.c
mf_keycache.c Merge 10.4 into 10.5 2022-09-26 13:34:38 +03:00
mf_keycaches.c
mf_loadpath.c
mf_pack.c MDEV-21581 Helper functions and methods for CHARSET_INFO 2020-01-28 12:29:23 +04:00
mf_path.c
mf_qsort.c fix clang build: check alignment the other way 2021-07-26 12:37:25 +03:00
mf_qsort2.c
mf_radix.c
mf_same.c
mf_sort.c perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
mf_soundex.c
mf_tempdir.c cleanup: PSI key is *always* the first argument 2020-03-10 19:24:23 +01:00
mf_tempfile.c MDEV-26601: mysys - O_TMPFILE ^ O_CREAT 2021-09-14 21:06:34 +10:00
mf_unixpath.c
mf_wcomp.c
mulalloc.c Added detection of memory overwrite with multi_malloc 2023-02-27 19:25:44 +02:00
my_access.c
my_addr_resolve.c Backport my_addr_resolve from 10.6 to get latest bug fixes in. 2023-11-27 19:08:14 +02:00
my_alarm.c
my_alloc.c Merge branch '10.4' into 10.5 2023-12-02 01:02:50 +01:00
my_atomic_writes.c Merge remote-tracking branch '10.4' into 10.5 2023-03-31 21:32:41 +02:00
my_basename.c
my_bit.c
my_bitmap.c Merge 10.4 into 10.5 2020-05-31 10:28:59 +03:00
my_chmod.c
my_chsize.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_compare.c Merge branch '10.4' into 10.5 2023-11-08 12:59:00 +01:00
my_compress.c Cleanup: Remove IF_VALGRIND 2022-04-25 09:40:40 +03:00
my_conio.c Minimize unsafe C functions usage 2023-03-08 10:36:25 +00:00
my_context.c Merge 10.2 into 10.3 2021-10-13 11:38:21 +03:00
my_copy.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_cpu.c MDEV-19845: Make my_cpu.h self-contained 2020-02-01 14:56:05 +02:00
my_create.c
my_default.c Merge branch '10.4' into 10.5 2023-07-26 16:02:57 +02:00
my_delete.c Merge 10.4 into 10.5 2022-12-13 14:39:18 +02:00
my_div.c
my_dlerror.c
my_error.c Merge branch '10.4' into 10.5 2020-11-01 14:26:15 +01:00
my_file.c perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
my_fopen.c Merge 10.4 into 10.5 2020-04-25 21:57:52 +03:00
my_fstream.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_gethwaddr.c OS detection logic in my_gethwaddr.c is backwards 2022-11-13 13:12:37 +11:00
my_getncpus.c Correct FreeBSD cpuset_t type 2020-04-03 15:30:33 +02:00
my_getopt.c Minor improvements to options error handling 2024-04-13 19:02:33 +07:00
my_getpagesize.c
my_getsystime.c Merge 10.4 into 10.5 2019-09-06 17:16:40 +03:00
my_getwd.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_init.c MDEV-19935 Create unified CRC-32 interface 2020-09-17 16:07:37 +02:00
my_largepage.c MDEV-30572: my_large_malloc will only retry on ENOMEM 2023-02-07 21:26:52 +11:00
my_lib.c MDEV-24841: More workarounds 2022-03-14 10:37:39 +02:00
my_libwrap.c
my_likely.c Merge remote-tracking branch '10.4' into 10.5 2023-03-31 21:32:41 +02:00
my_lock.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_lockmem.c Merge 10.3 into 10.4 2019-10-10 11:19:25 +03:00
my_malloc.c Fix synopses in mysys APIs 2023-01-06 07:20:37 +11:00
my_memmem.c
my_mess.c MDEV-23846: O_TMPFILE error in mysqlbinlog stream output breaks restore 2020-11-23 12:16:45 +05:30
my_minidump.cc MDEV-11499 mysqltest, Windows : improve diagnostics if server fails to shutdown 2021-09-24 11:49:28 +02:00
my_mkdir.c Fix various spelling errors still found in code 2021-03-22 18:10:39 +11:00
my_mmap.c libpmem cmake macros 2020-02-04 23:23:50 +04:00
my_new.cc
my_once.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_open.c Merge 10.4 into 10.5 2020-04-25 21:57:52 +03:00
my_port.c
my_pread.c Merge 10.3 into 10.4 2019-06-19 10:49:00 +03:00
my_pthread.c Merge 10.4 into 10.5 2022-10-25 11:26:37 +03:00
my_quick.c
my_rdtsc.c MDEV-23175: my_timer_milliseconds clock_gettime for multiple platfomrs 2021-12-22 16:51:22 +01:00
my_read.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_redel.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_rename.c Merge 10.3 into 10.4 2022-12-13 11:37:33 +02:00
my_rnd.c MDEV-18531 : Use WolfSSL instead of YaSSL as "bundled" SSL/encryption library 2019-05-22 13:48:25 +02:00
my_safehash.c cleanup: PSI key is *always* the first argument 2020-03-10 19:24:23 +01:00
my_safehash.h
my_seek.c myseek: AIX has no "tell" 2021-03-19 11:14:53 +11:00
my_setuser.c
my_sleep.c
my_static.c MDEV-7947 strcmp() takes 0.37% in OLTP RO 2020-07-23 10:54:33 +03:00
my_static.h
my_symlink.c MDEV-24841 Build error with MSAN use-of-uninitialized-value in comp_err 2022-03-14 09:28:55 +02:00
my_symlink2.c MDEV-11412 Ensure that table is truly dropped when using DROP TABLE 2020-06-14 19:39:42 +03:00
my_sync.c MDEV-381: fdatasync() does not correctly flush growing binlog file 2023-08-10 19:52:04 +02:00
my_thr_init.c Merge remote-tracking branch '10.4' into 10.5 2023-03-31 21:32:41 +02:00
my_uuid.c
my_win_popen.cc Ensure that source files contain only valid UTF8 encodings (#2188) 2023-05-19 13:21:34 +01:00
my_wincond.c
my_winerr.c
my_winfile.c Merge 10.4 into 10.5 2022-12-13 14:39:18 +02:00
my_winthread.c
my_wintoken.c Merge pull request #1221 from grooverdan/10.4-MDEV-18851-multiple-sized-large-page-support 2020-04-02 23:54:08 +04:00
my_write.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
mysys_priv.h Merge 10.4 into 10.5 2022-12-13 14:39:18 +02:00
psi_noop.c Merge branch 'merge-perfschema-5.7' into 10.5 2022-08-02 09:34:15 +02:00
ptr_cmp.c
queues.c Merge 10.4 into 10.5 2020-05-05 21:16:22 +03:00
safemalloc.c Merge branch '10.4' into 10.5 2023-12-02 01:02:50 +01:00
stacktrace.c Merge 10.4 into 10.5 2020-08-20 12:52:44 +03:00
string.c perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
test_charset.c
test_dir.c
test_thr_mutex.c
test_xml.c
testhash.c
thr_alarm.c MDEV-33092 Undefined reference to concurrency on Solaris 2024-01-10 10:16:20 +01:00
thr_lock.c MDEV-33092 Undefined reference to concurrency on Solaris 2024-01-10 10:16:20 +01:00
thr_mutex.c Added DBUG_PUSH_EMPTY and DBUG_POP_EMPTY to speed up DBUG 2020-08-20 19:34:11 +03:00
thr_rwlock.c MDEV-19773 : simplify implementation of Windows rwlock 2019-06-18 00:37:09 +01:00
thr_timer.c MDEV-33092 Undefined reference to concurrency on Solaris 2024-01-10 10:16:20 +01:00
tree.c perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
typelib.c Added 'const' to arguments in get_one_option and find_typeset() 2021-02-08 12:16:29 +02:00
waiting_threads.c Merge 10.4 into 10.5 2020-04-25 21:57:52 +03:00
wqueue.c