Skip to content

Valhalla JVMCI update #1493

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 98 commits into
base: lworld
Choose a base branch
from
Draft

Conversation

MichaelHaas99
Copy link

@MichaelHaas99 MichaelHaas99 commented Jun 30, 2025

Provides a JVMCI compiler with the following information:

  • value class semantics (identity flag, ValueObjectMethods etc.)
  • acmp profiling data
  • calling and return convention for value objects
  • null-restricted heap flattening of fields and arrays

To put this PR out of draft state the following steps are necessary:

  • rebase
  • remove the ImplicitlyConstructible concept
  • update the interface according to the heap flattening for JEP401 (atomic, nullable etc.)
  • also implement functionalities for other architectures other than x64
  • provide access to profiling data of the aaload and aastore bytecodes
  • test the JVMCI changes
  • remove the modifications made in the JTREG test cases

Progress

  • Change must not contain extraneous whitespace

Error

 ⚠️ OCA signatory status must be verified

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/valhalla.git pull/1493/head:pull/1493
$ git checkout pull/1493

Update a local copy of the PR:
$ git checkout pull/1493
$ git pull https://git.openjdk.org/valhalla.git pull/1493/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 1493

View PR using the GUI difftool:
$ git pr show -t 1493

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/valhalla/pull/1493.diff

…on also in Graal. Introduced nullable virtual objects, to support framestates at invokes returning nullable scalarized values
…alized with -1. In case they haven't been set before method registration, set them.
…e 14. T_VOID originally had the value 14, but now 15, so we need to adapt its JavaKind.
Refactored JVMCI of calling and return convention.
@bridgekeeper bridgekeeper bot added the oca Needs verification of OCA signatory status label Jun 30, 2025
@bridgekeeper
Copy link

bridgekeeper bot commented Jun 30, 2025

Hi @MichaelHaas99, welcome to this OpenJDK project and thanks for contributing!

We do not recognize you as Contributor and need to ensure you have signed the Oracle Contributor Agreement (OCA). If you have not signed the OCA, please follow the instructions. Please fill in your GitHub username in the "Username" field of the application. Once you have signed the OCA, please let us know by writing /signed in a comment in this pull request.

If you already are an OpenJDK Author, Committer or Reviewer, please click here to open a new issue so that we can record that fact. Please use "Add GitHub user MichaelHaas99" as summary for the issue.

If you are contributing this work on behalf of your employer and your employer has signed the OCA, please let us know by writing /covered in a comment in this pull request.

@openjdk
Copy link

openjdk bot commented Jun 30, 2025

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@openjdk
Copy link

openjdk bot commented Jun 30, 2025

@MichaelHaas99 this pull request can not be integrated into lworld due to one or more merge conflicts. To resolve these merge conflicts and update this pull request you can run the following commands in the local repository for your personal fork:

git checkout mh/GR-57655
git fetch https://git.openjdk.org/valhalla.git lworld
git merge FETCH_HEAD
# resolve conflicts and follow the instructions given by git merge
git commit -m "Merge lworld"
git push

@openjdk openjdk bot added the merge-conflict Pull request has merge conflict with target branch label Jun 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merge-conflict Pull request has merge conflict with target branch oca Needs verification of OCA signatory status
Development

Successfully merging this pull request may close these issues.

1 participant