321 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
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