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
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
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
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
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
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
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
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
Matthias Baesken
a37d8434ab
8352015: LIBVERIFY_OPTIMIZATION remove special optimization settings
...
Reviewed-by: erikj, ihse
2025-03-18 12:59:29 +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
Chen Liang
c7fa499bf5
8350118: Simplify the layout access VarHandle
...
Reviewed-by: mcimadamore, jvernee, erikj
2025-02-28 20:01:17 +00:00
Magnus Ihse Bursie
964dd18fd2
8349515: [REDO] Framework for tracing makefile inclusion and parsing
...
Reviewed-by: erikj
2025-02-11 10:55:47 +00:00
David Holmes
64bd8d2592
8349511: [BACKOUT] Framework for tracing makefile inclusion and parsing
...
Reviewed-by: darcy, mikael
2025-02-06 02:51:12 +00:00
Magnus Ihse Bursie
61465883b4
8348190: Framework for tracing makefile inclusion and parsing
...
Reviewed-by: erikj
2025-02-05 11:17:08 +00:00
Magnus Ihse Bursie
46ba515c49
8346669: Increase abstraction in SetupBuildLauncher and remove extra args
...
Reviewed-by: erikj
2025-01-10 17:59:27 +00:00
Magnus Ihse Bursie
b120404620
8345793: Update copyright year to 2024 for the build system in files where it was missed
...
Reviewed-by: kbarrett, erikj
2024-12-09 15:53:48 +00:00
Sean Mullan
db85090553
8338411: Implement JEP 486: Permanently Disable the Security Manager
...
Co-authored-by: Sean Mullan <mullan@openjdk.org>
Co-authored-by: Alan Bateman <alanb@openjdk.org>
Co-authored-by: Weijun Wang <weijun@openjdk.org>
Co-authored-by: Aleksei Efimov <aefimov@openjdk.org>
Co-authored-by: Brian Burkhalter <bpb@openjdk.org>
Co-authored-by: Daniel Fuchs <dfuchs@openjdk.org>
Co-authored-by: Harshitha Onkar <honkar@openjdk.org>
Co-authored-by: Joe Wang <joehw@openjdk.org>
Co-authored-by: Jorn Vernee <jvernee@openjdk.org>
Co-authored-by: Justin Lu <jlu@openjdk.org>
Co-authored-by: Kevin Walls <kevinw@openjdk.org>
Co-authored-by: Lance Andersen <lancea@openjdk.org>
Co-authored-by: Naoto Sato <naoto@openjdk.org>
Co-authored-by: Roger Riggs <rriggs@openjdk.org>
Co-authored-by: Brent Christian <bchristi@openjdk.org>
Co-authored-by: Stuart Marks <smarks@openjdk.org>
Co-authored-by: Ian Graves <igraves@openjdk.org>
Co-authored-by: Phil Race <prr@openjdk.org>
Co-authored-by: Erik Gahlin <egahlin@openjdk.org>
Co-authored-by: Jaikiran Pai <jpai@openjdk.org>
Reviewed-by: kevinw, aivanov, rriggs, lancea, coffeys, dfuchs, ihse, erikj, cjplummer, coleenp, naoto, mchung, prr, weijun, joehw, azvegint, psadhukhan, bchristi, sundar, attila
2024-11-12 17:16:15 +00:00
Magnus Ihse Bursie
66945e5010
8339336: Fix build system whitespace to adhere to coding conventions
...
Reviewed-by: erikj
2024-09-03 15:31:09 +00:00
Magnus Ihse Bursie
a528c4b370
8339156: Use more fine-granular clang unused warnings
...
Reviewed-by: erikj, kbarrett
2024-08-30 16:43:16 +00:00
Magnus Ihse Bursie
362f9ce077
8339120: Use more fine-granular gcc unused warnings
...
Reviewed-by: jwaters, kbarrett, erikj
2024-08-29 07:29:12 +00:00
Magnus Ihse Bursie
129f527f4f
8338290: Xcode project generator for hotspot
...
Co-authored-by: Gerard Ziemski <gziemski@openjdk.org>
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Reviewed-by: azafari, erikj
2024-08-22 10:31:34 +00:00
Magnus Ihse Bursie
f0bffbce35
8333301: Remove static builds using --enable-static-build
...
Reviewed-by: sgehwolf, erikj
2024-06-03 10:03:42 +00:00
Jonathan Gibbons
10eb1cb639
8331879: Clean up non-standard use of /// comments in java.base
...
Reviewed-by: naoto, iris, darcy
2024-05-31 22:16:35 +00:00
Jonathan Gibbons
0a58cffe88
8298405: Implement JEP 467: Markdown Documentation Comments
...
8329296: Update Elements for '///' documentation comments
Co-authored-by: Jim Laskey <jlaskey@openjdk.org>
Reviewed-by: prappo, darcy, hannesw
2024-05-17 17:42:46 +00:00
Magnus Ihse Bursie
61fa4d45b6
8330351: Remove the SHARED_LIBRARY and STATIC_LIBRARY macros
...
Reviewed-by: erikj
2024-04-16 13:51:14 +00:00
Magnus Ihse Bursie
16061874ff
8326947: Minimize MakeBase.gmk
...
Reviewed-by: erikj
2024-04-11 14:15:34 +00:00
Magnus Ihse Bursie
f0cd866a37
8329704: Implement framework for proper handling of JDK_LIBS
...
Reviewed-by: erikj, jwaters
2024-04-11 09:40:12 +00:00
Magnus Ihse Bursie
3f4b167c97
8329672: Only call SetupNativeCompilation from SetupJdkNativeCompilation
...
Reviewed-by: erikj
2024-04-05 08:37:41 +00:00
Magnus Ihse Bursie
9d052e9331
8329131: Fold libjli_static back into libjli on AIX
...
Reviewed-by: erikj, clanger
2024-03-31 11:15:49 +00:00
Matthias Baesken
b9c76dedf4
8329074: AIX build fails after JDK-8328824
...
Reviewed-by: clanger, goetz
2024-03-26 10:00:56 +00:00
Magnus Ihse Bursie
26b2ec4847
8328824: Clean up java.base native compilation
...
Reviewed-by: erikj
2024-03-25 15:04:38 +00:00
Magnus Ihse Bursie
9e98118f28
8328177: Move LDFLAGS_JDK[LIB/EXE] to JdkNativeCompilation.gmk
...
Reviewed-by: erikj
2024-03-18 14:41:51 +00:00
Magnus Ihse Bursie
bfba4894e1
8328157: Move C[XX]FLAGS_JDK[LIB/EXE] to JdkNativeCompilation.gmk
...
Reviewed-by: erikj
2024-03-15 14:36:57 +00:00
Magnus Ihse Bursie
42aec8c5e7
8328146: Set LIBCXX automatically
...
Reviewed-by: erikj
2024-03-15 13:23:37 +00:00
Chad Rakoczy
a232e8fb4e
8325621: Improve jspawnhelper version checks
...
Reviewed-by: erikj, shade, rriggs, ihse
2024-03-14 13:26:03 +00:00
Magnus Ihse Bursie
107cb536e7
8327701: Remove the xlc toolchain
...
Reviewed-by: jwaters, erikj
2024-03-13 08:42:12 +00:00
Magnus Ihse Bursie
585a958441
8327675: jspawnhelper should be built on all unix platforms
...
Reviewed-by: shade, stuefe, erikj
2024-03-08 14:21:20 +00:00
Jan Lahoda
27a03e0dc3
8327218: Add an ability to specify modules which should have native access enabled
...
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Reviewed-by: mcimadamore, erikj, alanb, ihse
2024-03-08 11:21:24 +00:00
Naoto Sato
809995b526
8174269: Remove COMPAT locale data provider from JDK
...
Reviewed-by: ihse, joehw
2024-03-05 19:32:29 +00:00
Magnus Ihse Bursie
ac3ce2aa15
8326583: Remove over-generalized DefineNativeToolchain solution
...
Reviewed-by: erikj
2024-02-27 11:14:11 +00:00