Qt Base (Core, Gui, Widgets, Network, ...)
Go to file
Thiago Macieira 2b718d5ca1 qHash: force inlining of the hash16bytes() helper
It wasn't getting inlined in aeshash256_lt32_avx256() (used by VAES +
AVX512VL variant) due to a GCC __attribute__((target())) mismatch,
causing a major loss of performance compared to the VAES + AVX2 variant.

Comparing the throughput after this fix on an Intel Core i7-1165G7
(Tiger Lake) laptop, with qHashBits modified to statically select either
[A] aeshash256() or [B] aeshash256_avx256(), out of 5 runs:

            dictionary   numbers     paths-small  uuids      longstrings
A/B (avg)   103.7%       101.1%      103.5%       104.5%     100.3%
A/B (best)  103.4%       100.9%      103.2%       103.6%     100.8%

Considering that a string representation of a UUID is 37 characters (74
bytes), neither "uuids" nor "longstrings" are directly affected by this
change. However, the overhead does change, with the aeshash256_avx256()
needing slightly fewer instructions to reach aeshash256_ge32().

Benchmarking on an Intel Xeon Scalable 4th Generation (Sapphire Rapids),
the "uuids" data set has a 10% performance loss for some reason.

Pick-to: 6.5
Change-Id: I50e2158aeade4256ad1dfffd17b1b105d3cab482
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 6ab4623cad)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 6a9be62270)
2024-02-11 17:54:21 +00:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
LICENSES Update QLocale and calendar data to CLDR v44.1 2024-02-07 16:17:52 +01:00
bin CMake: Don't strip debug builds with qt-cmake-private-install in CI 2023-11-06 13:05:46 +00:00
cmake Add plugins of imported QtModules to the _qt_plugins property 2024-02-07 16:17:52 +01:00
coin Coin: Add native MSVC ARM64 instructions 2023-12-19 04:17:48 +00:00
config.tests Remove the mandatory x86-64 features from its feature list 2023-05-31 14:55:37 -07:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc QFile::moveToTrash: add documentation about run time and fail conditions 2024-01-26 18:30:25 +00:00
examples Android: request POST_NOTIFICATIONS permission for Android Notifier 2024-02-08 14:58:56 +00:00
lib
libexec CMake: Add a config.redo script similar to qt5's config.status 2023-09-21 14:43:23 +02:00
mkspecs CMake: Warn when configuring Qt with an unsupported Apple SDK or Xcode 2023-11-30 10:18:33 +01:00
qmake Remove build machine path that was baked into the qmake binary 2023-12-16 01:34:20 +00:00
src qHash: force inlining of the hash16bytes() helper 2024-02-11 17:54:21 +00:00
tests Make TEST_CTOR macros use the "do { ... } while (false)" pattern 2024-02-11 08:41:56 +01:00
util Update QLocale and calendar data to CLDR v44.1 2024-02-07 16:17:52 +01:00
.cmake.conf Bump version to 6.6.3 2024-01-23 08:23:36 +02:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore Add .cache/ to .gitignore 2023-11-09 02:42:49 +00:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.tag
CMakeLists.txt CMake: Fix find_package(Qt6*Tools) in non-qtbase tests 2023-11-28 17:19:23 +01:00
config_help.txt CMake: Allow installation of example sources into the Qt prefix 2023-08-17 07:38:18 +00:00
configure configure: Make sure the configure script exits with cmake's exit code 2023-11-22 07:46:51 +00:00
configure.bat CMake: Add a config.redo script similar to qt5's config.status 2023-09-21 14:43:23 +02:00
configure.cmake CMake: Fix Threads global promotion issue when using static openssl 2024-01-22 18:53:16 +00:00
dependencies.yaml
qt_cmdline.cmake CMake: Allow installation of example sources into the Qt prefix 2023-08-17 07:38:18 +00:00
sync.profile rhi: Make it a QPA-style private but semi-public API 2023-05-21 15:42:58 +02:00