On Fri, 17 Jul 2026 10:07:58 GMT, Ehsan Behrangi <[email protected]> wrote:
>> The current AArch64 implementation of ArraysSupport.vectorizedHashCode >> processes polynomial reductions in relatively small groups, which limits >> parallelism in the hash accumulation path for large arrays. >> >> This change increases polynomial batch size to 16-element groups using a >> larger precomputed powers-of-31 table. The updated implementation enables >> more independent multiply operations and reduces dependency chains in the >> main hashing loop. >> >> The optimization also reduces generated stub size for all supported element >> types, lowering instruction cache pressure in hot hashing workloads. >> >> The optimization applies to boolean[], byte[], char[], short[], and int[] >> array hashing paths and is enabled only for array lengths >= 8. Shorter >> arrays continue to use the existing scalar implementation. >> >> Generated stub size reduction: >> >> >> | Element type | New size | JDK 25 size | Reduction | >> | ------------ | -------- | ----------- | --------- | >> | boolean | 332 B | 428 B | -96 B | >> | byte | 332 B | 428 B | -96 B | >> | char | 332 B | 408 B | -76 B | >> | short | 332 B | 408 B | -76 B | >> | int | 300 B | 324 B | -24 B | >> >> ## BYTE[] Arrays.hashCode throughput (ops/ms): >> Lengths below 8 use the existing scalar path and are therefore expected to >> show no meaningful change. >> >> | Length | Baseline | New | Improvement | >> |--------|----------|--------|-------------| >> | 2 | 696842 | 681572 | -2.2% | >> | 7 | 349082 | 349392 | +0.1% | >> | 8 | 309193 | 395677 | +28.0% | >> | 9 | 294240 | 367510 | +24.9% | >> | 15 | 160372 | 202718 | +26.4% | >> | 16 | 241651 | 348854 | +44.4% | >> | 17 | 228929 | 308820 | +34.9% | >> | 23 | 139463 | 186679 | +33.9% | >> | 24 | 177955 | 253809 | +42.6% | >> | 25 | 173594 | 253786 | +46.2% | >> | 31 | 113638 | 159672 | +40.5% | >> | 32 | 164228 | 214765 | +30.8% | >> | 33 | 155093 | 199425 | +28.6% | >> | 47 | 103190 | 135190 | +31.0% | >> | 48 | 116600 | 145178 | +24.5% | >> | 49 | 112067 | 163144 | +45.6% | >> | 63 | 79978 | 116111 | +45.2% | >> | 64 | 104182 | 130175 | +25.0% | >> | 65 | 101735 | 125010 | +22.9% | >> >> >> ## CHAR[] Arrays.hashCode throughput (ops/ms) >> >> | Length | Baseline | New | Improvement | >> |-... > > Ehsan Behrangi has updated the pull request incrementally with one additional > commit since the last revision: > > Improve intrinsic test coverage for ArraysSupport.vectorizedHashCode Marked as reviewed by ruben (Author). ------------- PR Review: https://git.openjdk.org/jdk/pull/31674#pullrequestreview-4724270342
