jdk
jdk copied to clipboard
8342651: Refactor array constant to use an array of jbyte
Hi,
This small patch refactors array constants in C2 to use an array of jbytes instead of an array of jvalue. The former is much easier to work with and we can do memcpy with them trivially.
Since code buffers support alignment of the constant section, I have also allowed constant tables to be aligned more than 8 bytes and used it for constant vectors on machines not supporting SSE3. I also fixed an issue with code buffer relocation where the temporary buffer is not correctly aligned.
This patch is extracted from https://github.com/openjdk/jdk/pull/21229. Tests passed with UseSSE=2 where 16-byte constants would be generated, as well as normal testing routines.
Please take a look and leave your reviews, thanks a lot.
Progress
- [ ] Change must be properly reviewed (1 review required, with at least 1 Reviewer)
- [x] Change must not contain extraneous whitespace
- [x] Commit message must refer to an issue
Issue
- JDK-8342651: Refactor array constant to use an array of jbyte (Enhancement - P4)
Reviewing
Using git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/21596/head:pull/21596
$ git checkout pull/21596
Update a local copy of the PR:
$ git checkout pull/21596
$ git pull https://git.openjdk.org/jdk.git pull/21596/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 21596
View PR using the GUI difftool:
$ git pr show -t 21596
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/21596.diff
Webrev
:wave: Welcome back qamai! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.
@merykitty This change now passes all automated pre-integration checks.
ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.
After integration, the commit message for the final commit will be:
8342651: Refactor array constant to use an array of jbyte
Reviewed-by: thartmann, kvn
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.
At the time when this comment was updated there had been 48 new commits pushed to the master branch:
- 1e9204fa43e0c1e22c69dc140829ddf3af750a95: 8345273: Fix -Wzero-as-null-pointer-constant warnings in s390 code
- c40140eb9c156415622b2d03fd8681c16f6ee362: 8334581: Remove no-arg constructor BasicSliderUI()
- 8de0622c3a5c9e01e79659ef0b43b1b01dfa5cf6: 8345767: javax/swing/JSplitPane/4164779/JSplitPaneKeyboardNavigationTest.java fails in ubuntu22.04
- abcd23f4d65698f47fd79a95aed197a12edf2784: 8334756: javac crashed on call to non-existent generic method with explicit annotated type arg
- 2ddaa460545e043008aaf0b7ce33191b7c588833: 8305010: Test vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java timed out: thread not suspended
- c6317191e323e27cde61b5ed3c23d1a230053969: 8343170: java/awt/Cursor/JPanelCursorTest/JPanelCursorTest.java does not show the default cursor
- 29d648c642a68699340a9ab43252f832efdb5cbf: 8341781: Improve Min/Max node identities
- 4c39e9faa0cb8e4fd00d8b9dc0ac5ad64d6b287d: 8344924: Default CA certificates loaded despite request to use custom keystore
- 0f035545e5c0cd02d11ab8edd5786c1f1f6043a7: 8342469: Improve API documentation for java.lang.classfile.instruction
- 9bd70ec806ac0134926f32e222f4075e3d407422: 8345888: Broken links in the JDK 24 JavaDoc API documentation, build 27
- ... and 38 more: https://git.openjdk.org/jdk/compare/874d68a96ce67caaf944dd25fbfb44eab965dfd3...master
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.
➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.
@merykitty The following label will be automatically applied to this pull request:
hotspot-compiler
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.
Webrevs
- 04: Full - Incremental (ed66a106)
- 03: Full - Incremental (b8a8d9a3)
- 02: Full - Incremental (bd0628ea)
- 01: Full - Incremental (2efa68db)
- 00: Full (bcd0457c)
@TobiHartmann The total number of required reviews for this PR (including the jcheck configuration and the last /reviewers command) is now set to 2 (with at least 1 Reviewer, 1 Author).
@vnkozlov Thanks, I have merged the branch with the latest master
I started testing.
Leonid is fixing issue with GHA testing.
@TobiHartmann Could you please reapprove this PR, thanks very much.
Thanks very much for your reviews! /integrate
Going to push as commit 2c4567a689091721476b6ef0ef4ad042fd63c3fd.
Since your change was applied there have been 62 commits pushed to the master branch:
- 72c6daf1b1073bc1eb9d1b07794c0e8ba5b9b437: 8346007: Incorrect copyright header in UModLNodeIdealizationTests.java
- cc47918445b3b49fc188d4655996e43e7a3c75c3: 8345040: Clean up unused variables and code in
generate_native_wrapper - c34b87c52bbaf37d01cb2a73846631a037b312a5: 8345659: Fix broken alignment after ReservedSpace splitting in GC code
- e2948991544d50a901be509fbc6406c2a16849ec: 8345647: Fix recent NULL usage backsliding in Shenandoah
- d381d581bfc5bbe1db966088ed4cad01b65c5123: 8332268: C2: Add missing optimizations for UDivI/L and UModI/L and unify the shared logic with the signed nodes
- 45c914c3ad8fbc406af9ba9dec97f11c28c91299: 8343607: C2: Shenandoah crashes during barrier expansion in Continuation::enter
- a21d21f4d7b74e21f68b6bf9c5dc9ba7d3f9963c: 8345609: [C1] LIR Operations with one input should be implemented as LIR_Op1
- 2382a2de964aa9b3a8e1ec2500f6337eeeb94706: 8345661: Simplify page size alignment in code heap reservation
- 076bfa688c8ee19fa5eea1d18cfa84a3504af762: 8345656: Move os alignment functions out of ReservedSpace
- 2826838389ff0ce909289e3a804228226a2a6ab0: 8345658: WB_NMTCommitMemory redundantly records an NMT tag
- ... and 52 more: https://git.openjdk.org/jdk/compare/874d68a96ce67caaf944dd25fbfb44eab965dfd3...master
Your commit was automatically rebased without conflicts.
@merykitty Pushed as commit 2c4567a689091721476b6ef0ef4ad042fd63c3fd.
:bulb: You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.