127 Commits

Author SHA1 Message Date
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