Bhavana Kilambi
|
513b1f1d82
|
AArch64 SVE implementation for Arrays.sort
This patch adds an SVE implementation of primitive array sorting
(Arrays.sort()) on AArch64 systems that support SVE. On non-SVE machines,
we fall back to the existing Java implementation.
For smaller arrays (length <= 64), we use insertion sort;
for larger arrays we use an SVE-vectorized quicksort partitioner
followed by an odd-even transposition cleanup pass.
The SVE path is enabled by default for int type.
For float type, it is available through the experimental flag :
-XX:+UnlockExperimentalVMOptions -XX:+UseSVELibSimdSortForFP
Without this flag being enabled, the default Java implementation would
be executed for floats (the flag is disabled by default).
Float is gated due to observed regressions on some small/medium sizes.
On larger arrays, the SVE float path shows upto 1.47x speedup on
Neoverse V2 and 2.12x on Neoverse V1.
Following are the performance numbers for ArraysSort JMH benchmark -
Case A: Ratio between the scores of master branch and
UseSVELibSimdSortForFP flag disabled (which is the default).
Case B: Ratio between the scores of master branch and
UseSVELibSimdSortForFP flag enabled (the int numbers will be the same
but this now enables SVE vectorized sorting for floats).
We would want the ratios to be >= 1 to be at par or better than the
default Java implementation (master branch).
On Neoverse V1:
Benchmark (size) Mode Cnt A B
ArraysSort.floatParallelSort 10 avgt 3 0.98 0.98
ArraysSort.floatParallelSort 25 avgt 3 1.01 0.83
ArraysSort.floatParallelSort 50 avgt 3 0.99 0.55
ArraysSort.floatParallelSort 75 avgt 3 0.99 0.66
ArraysSort.floatParallelSort 100 avgt 3 0.98 0.66
ArraysSort.floatParallelSort 1000 avgt 3 1.00 0.84
ArraysSort.floatParallelSort 10000 avgt 3 1.03 1.52
ArraysSort.floatParallelSort 100000 avgt 3 1.03 1.46
ArraysSort.floatParallelSort 1000000 avgt 3 0.98 1.81
ArraysSort.floatSort 10 avgt 3 1.00 0.98
ArraysSort.floatSort 25 avgt 3 1.00 0.81
ArraysSort.floatSort 50 avgt 3 0.99 0.56
ArraysSort.floatSort 75 avgt 3 0.99 0.65
ArraysSort.floatSort 100 avgt 3 0.98 0.70
ArraysSort.floatSort 1000 avgt 3 0.99 0.84
ArraysSort.floatSort 10000 avgt 3 0.99 1.72
ArraysSort.floatSort 100000 avgt 3 1.00 1.94
ArraysSort.floatSort 1000000 avgt 3 1.00 2.13
ArraysSort.intParallelSort 10 avgt 3 1.08 1.08
ArraysSort.intParallelSort 25 avgt 3 1.04 1.05
ArraysSort.intParallelSort 50 avgt 3 1.29 1.30
ArraysSort.intParallelSort 75 avgt 3 1.16 1.16
ArraysSort.intParallelSort 100 avgt 3 1.07 1.07
ArraysSort.intParallelSort 1000 avgt 3 1.13 1.13
ArraysSort.intParallelSort 10000 avgt 3 1.49 1.38
ArraysSort.intParallelSort 100000 avgt 3 1.64 1.62
ArraysSort.intParallelSort 1000000 avgt 3 2.26 2.27
ArraysSort.intSort 10 avgt 3 1.08 1.08
ArraysSort.intSort 25 avgt 3 1.02 1.02
ArraysSort.intSort 50 avgt 3 1.25 1.25
ArraysSort.intSort 75 avgt 3 1.16 1.20
ArraysSort.intSort 100 avgt 3 1.07 1.07
ArraysSort.intSort 1000 avgt 3 1.12 1.13
ArraysSort.intSort 10000 avgt 3 1.94 1.95
ArraysSort.intSort 100000 avgt 3 1.86 1.86
ArraysSort.intSort 1000000 avgt 3 2.09 2.09
On Neoverse V2:
Benchmark (size) Mode Cnt A B
ArraysSort.floatParallelSort 10 avgt 3 1.02 1.02
ArraysSort.floatParallelSort 25 avgt 3 0.97 0.71
ArraysSort.floatParallelSort 50 avgt 3 0.94 0.65
ArraysSort.floatParallelSort 75 avgt 3 0.96 0.82
ArraysSort.floatParallelSort 100 avgt 3 0.95 0.84
ArraysSort.floatParallelSort 1000 avgt 3 1.01 0.94
ArraysSort.floatParallelSort 10000 avgt 3 1.01 1.25
ArraysSort.floatParallelSort 100000 avgt 3 1.01 1.09
ArraysSort.floatParallelSort 1000000 avgt 3 1.00 1.10
ArraysSort.floatSort 10 avgt 3 1.02 1.00
ArraysSort.floatSort 25 avgt 3 0.99 0.76
ArraysSort.floatSort 50 avgt 3 0.97 0.66
ArraysSort.floatSort 75 avgt 3 1.01 0.83
ArraysSort.floatSort 100 avgt 3 1.00 0.85
ArraysSort.floatSort 1000 avgt 3 0.99 0.93
ArraysSort.floatSort 10000 avgt 3 1.00 1.28
ArraysSort.floatSort 100000 avgt 3 1.00 1.37
ArraysSort.floatSort 1000000 avgt 3 1.00 1.48
ArraysSort.intParallelSort 10 avgt 3 1.05 1.05
ArraysSort.intParallelSort 25 avgt 3 0.99 0.84
ArraysSort.intParallelSort 50 avgt 3 1.03 1.14
ArraysSort.intParallelSort 75 avgt 3 0.91 0.99
ArraysSort.intParallelSort 100 avgt 3 0.98 0.96
ArraysSort.intParallelSort 1000 avgt 3 1.32 1.30
ArraysSort.intParallelSort 10000 avgt 3 1.40 1.40
ArraysSort.intParallelSort 100000 avgt 3 1.00 1.04
ArraysSort.intParallelSort 1000000 avgt 3 1.15 1.14
ArraysSort.intSort 10 avgt 3 1.05 1.05
ArraysSort.intSort 25 avgt 3 1.03 1.03
ArraysSort.intSort 50 avgt 3 1.08 1.14
ArraysSort.intSort 75 avgt 3 0.88 0.98
ArraysSort.intSort 100 avgt 3 1.01 0.99
ArraysSort.intSort 1000 avgt 3 1.3 1.32
ArraysSort.intSort 10000 avgt 3 1.43 1.43
ArraysSort.intSort 100000 avgt 3 1.30 1.30
ArraysSort.intSort 1000000 avgt 3 1.37 1.37
|
2025-12-05 14:23:12 +00:00 |
|
Henry Jen
|
8f0cb57e43
|
8347831: Re-examine version check when cross linking
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Reviewed-by: erikj, alanb
|
2025-12-02 22:11:38 +00:00 |
|
Xueming Shen
|
b97ed667db
|
8365675: Add String Unicode Case-Folding Support
Reviewed-by: rriggs, naoto, ihse
|
2025-12-02 19:47:18 +00:00 |
|
Jayathirth D V
|
c7a489db9e
|
8372534: Update Libpng to 1.6.51
Reviewed-by: serb, azvegint, prr
|
2025-12-01 05:40:51 +00:00 |
|
Matthias Baesken
|
5ef2c9aa09
|
8370438: Offer link time optimization support on library level
Reviewed-by: erikj, serb, azvegint
|
2025-11-25 08:25:12 +00:00 |
|
Magnus Ihse Bursie
|
2dd15cf5bf
|
8346719: Add relaunchers to the static JDK image for missing executables
Reviewed-by: alanb, erikj
|
2025-11-05 13:57:18 +00:00 |
|
Volkan Yazici
|
c1476fca9d
|
8366575: Remove SDP support
Reviewed-by: alanb, erikj, jpai, michaelm
|
2025-11-04 08:03:30 +00:00 |
|
Jaikiran Pai
|
2eb0898fef
|
8367157: Remove jrunscript tool
Reviewed-by: erikj, ayang, ihse, alanb
|
2025-10-14 06:10:09 +00:00 |
|
Matthias Baesken
|
0a64358aa8
|
8368273: LIBPTHREAD dependency is not needed for some jdk libs
Reviewed-by: ihse
|
2025-09-24 13:07:45 +00:00 |
|
Matthias Baesken
|
82bdef1639
|
8367913: LIBDL dependency seems to be not needed for some jdk libs
Reviewed-by: aivanov, ihse, clanger, mdoerr
|
2025-09-23 15:07:59 +00:00 |
|
Magnus Ihse Bursie
|
65aea48588
|
8367859: Remove nio exception gensrc
Reviewed-by: naoto, erikj, bpb
|
2025-09-19 10:06:02 +00:00 |
|
Erik Joelsson
|
56e37352d5
|
8367130: JDK builds broken by 8366837: Clean up gensrc by spp.Spp
Reviewed-by: liach
|
2025-09-08 20:52:31 +00:00 |
|
Magnus Ihse Bursie
|
55af9d8380
|
8366837: Clean up gensrc by spp.Spp
Reviewed-by: erikj
|
2025-09-08 16:48:14 +00:00 |
|
Chen Liang
|
cdc8b5eb83
|
8366455: Move VarHandles.GuardMethodGenerator to execute on build
Reviewed-by: psandoz, redestad, erikj
|
2025-09-05 21:08:29 +00:00 |
|
Aleksey Shipilev
|
685da0323b
|
8345810: Custom launchers must be linked with pthread to avoid dynamic linker issues
Reviewed-by: asemenyuk, erikj, dholmes
|
2025-09-01 06:25:45 +00:00 |
|
Jan Lahoda
|
72e22b4de5
|
8362885: A more formal way to mark javac's Flags that belong to a specific Symbol type only
Reviewed-by: ihse, liach, vromero, mcimadamore, erikj
|
2025-08-13 08:07:45 +00:00 |
|
Magnus Ihse Bursie
|
23985c29b4
|
8357979: Compile jdk.internal.vm.ci targeting the Boot JDK version
Reviewed-by: erikj, dnsimon
|
2025-08-11 14:12:55 +00:00 |
|
Alexey Semenyuk
|
c1c0155604
|
8364129: Rename libwixhelper
Reviewed-by: erikj, almatvee
|
2025-08-08 21:41:44 +00:00 |
|
Ao Qi
|
a9f3d3a290
|
8364177: JDK fails to build due to undefined symbol in libpng on LoongArch64
Reviewed-by: prr, aivanov, erikj
|
2025-08-04 12:37:11 +00:00 |
|
Xueming Shen
|
401af27b9d
|
8360459: UNICODE_CASE and character class with non-ASCII range does not match ASCII char
Reviewed-by: naoto
|
2025-07-15 17:57:13 +00:00 |
|
Naoto Sato
|
fcb68ea22d
|
8358626: Emit UTF-8 CLDR resources
Reviewed-by: erikj, vyazici
|
2025-06-09 19:03:21 +00:00 |
|
Harshitha Onkar
|
85ca0813f1
|
8354316: clang/linux build fails with -Wunused-result warning at XToolkit.c:695:9
Reviewed-by: aivanov, ihse, serb, kizune, syan, erikj
|
2025-05-23 17:59:47 +00:00 |
|
Sergey Bylokhov
|
5f38d1bb94
|
8357193: [VS 2022 17.14] Warning C5287 in debugInit.c: enum type mismatch during build
Reviewed-by: sspitsyn
|
2025-05-21 08:57:55 +00:00 |
|
Magnus Ihse Bursie
|
568dcc15cb
|
8334391: JDK build should exclude *-files directories for Java source
Reviewed-by: erikj
|
2025-05-09 10:05:23 +00:00 |
|
Sergey Bylokhov
|
9a0e6f338f
|
8356571: Re-enable -Wtype-limits for GCC in LCMS
Reviewed-by: jwaters, prr
|
2025-05-09 02:08:29 +00:00 |
|
Jiangli Zhou
|
acd93df612
|
8355080: java.base/jdk.internal.foreign.SystemLookup.find() doesn't work on static JDK
Reviewed-by: mcimadamore, jvernee
|
2025-04-28 18:55:26 +00:00 |
|
Severin Gehwolf
|
4e24dc003c
|
8353185: Introduce the concept of upgradeable files in context of JEP 493
Reviewed-by: clanger, ihse, alanb
|
2025-04-15 10:16:31 +00:00 |
|
Chen Liang
|
5c438c5e6b
|
8352748: Remove com.sun.tools.classfile from the JDK
Reviewed-by: ihse, jlahoda, vromero
|
2025-04-09 22:58:44 +00:00 |
|
Chen Liang
|
4dc9e58906
|
8310310: Migrate CreateSymbols tool in make/langtools to Classfile API
Reviewed-by: ihse, jlahoda
|
2025-04-09 14:51:15 +00:00 |
|
Magnus Ihse Bursie
|
42dc99eac1
|
8301197: Make sure use of printf is correct and actually needed
Reviewed-by: erikj
|
2025-04-07 20:34:30 +00:00 |
|
Vladimir Ivanov
|
130b0cdaa6
|
8353217: Build libsleef on macos-aarch64
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Reviewed-by: erikj, kvn, ihse
|
2025-04-02 19:42:30 +00:00 |
|
Magnus Ihse Bursie
|
4a50778a26
|
8353458: Don't pass -Wno-format-nonliteral to CFLAGS
Reviewed-by: erikj
|
2025-04-02 09:30:35 +00:00 |
|
Matthias Baesken
|
6bc480358c
|
8351277: Remove pipewire from AIX build
Reviewed-by: ihse, prr, azvegint
|
2025-03-25 08:01:15 +00:00 |
|
Joachim Kern
|
d8c2f59a1b
|
8352064: AIX: now also able to build static-jdk image with a statically linked launcher
Reviewed-by: mdoerr, mbaesken, ihse
|
2025-03-24 16:15:36 +00:00 |
|
Magnus Ihse Bursie
|
06ba6cf3a1
|
8329173: LCMS_CFLAGS from configure are lost
Reviewed-by: erikj, azvegint
|
2025-03-20 22:25:49 +00:00 |
|
Matthias Baesken
|
a37d8434ab
|
8352015: LIBVERIFY_OPTIMIZATION remove special optimization settings
Reviewed-by: erikj, ihse
|
2025-03-18 12:59:29 +00:00 |
|
Harshitha Onkar
|
6b82b42a21
|
8348598: Update Libpng to 1.6.47
Reviewed-by: azvegint, prr, erikj
|
2025-03-17 16:50:33 +00:00 |
|
Matthias Baesken
|
06289f3d90
|
8351821: VMManagementImpl.c avoid switching off warnings
Reviewed-by: ihse, kevinw
|
2025-03-16 13:04:45 +00:00 |
|
Harald Eilertsen
|
771e160da4
|
8351323: Parameterize compiler and linker flags for iconv
Reviewed-by: ihse, erikj
|
2025-03-13 16:54:54 +00:00 |
|
Matthias Baesken
|
c3db667156
|
8351542: LIBMANAGEMENT_OPTIMIZATION remove special optimization settings
Reviewed-by: ihse, kevinw
|
2025-03-13 12:41:57 +00:00 |
|
Jiangli Zhou
|
a21fa463c4
|
8351309: test/hotspot/jtreg/runtime/posixSig/TestPosixSig.java fails on static-jdk
Reviewed-by: manc, ihse, stuefe
|
2025-03-12 14:40:43 +00:00 |
|
Artur Barashev
|
9a49418138
|
8345940: Migrate security-related resources from Java classes to properties files
Reviewed-by: jlu, weijun, erikj
|
2025-03-11 20:07:10 +00:00 |
|
Harald Eilertsen
|
b957e5ed1a
|
8351322: Parameterize link option for pthreads
Reviewed-by: erikj, ihse, dholmes
|
2025-03-11 15:11:10 +00:00 |
|
Harshitha Onkar
|
dbdbbd4730
|
8348597: Update HarfBuzz to 10.4.0
Reviewed-by: erikj, prr
|
2025-03-10 17:47:54 +00:00 |
|
Magnus Ihse Bursie
|
fae37aaae8
|
8345627: [REDO] Use gcc12 -ftrivial-auto-var-init=pattern in debug builds
Reviewed-by: erikj, kbarrett
|
2025-03-04 10:27:52 +00:00 |
|
Chen Liang
|
c7fa499bf5
|
8350118: Simplify the layout access VarHandle
Reviewed-by: mcimadamore, jvernee, erikj
|
2025-02-28 20:01:17 +00:00 |
|
Jiangli Zhou
|
18958c6298
|
8349925: [REDO] Support static JDK in libfontmanager/freetypeScaler.c
Reviewed-by: prr
|
2025-02-13 15:44:46 +00:00 |
|
Matthias Baesken
|
c2fc947826
|
8349378: Build splashscreen lib with SIZE optimization
Reviewed-by: erikj, prr, honkar
|
2025-02-13 14:16:23 +00:00 |
|
Vladimir Kozlov
|
336d0d8592
|
8349926: [BACKOUT] Support static JDK in libfontmanager/freetypeScaler.c
Reviewed-by: jiangli, shade
|
2025-02-12 18:26:37 +00:00 |
|
Jiangli Zhou
|
332d87cc7e
|
8349859: Support static JDK in libfontmanager/freetypeScaler.c
Reviewed-by: prr
|
2025-02-12 16:29:08 +00:00 |
|