-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8339112: Move JVM Klass flags out of AccessFlags #20719
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
Conversation
|
👋 Welcome back coleenp! A progress list of the required criteria for merging this PR into |
|
@coleenp 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: 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 133 new commits pushed to the
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 |
|
@coleenp The following labels will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command. |
…erts because the opcode is Op_LoadUB. No idea why.
Webrevs
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
x86 and ARM interpreter code looks good, just one potential nit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dean and Matias, thank you for the improvements to the assembly code. Dean I took your suggestions, including refactoring C2 code. Thanks for the thorough look at this change.
src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java
Show resolved
Hide resolved
src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interpreter changes look good, thanks!
|
Thanks Chris and Matias for reviewing parts of this. |
|
Hi @coleenp, I got this error while build on my Mac-M1, did you see something like this ? : These are the changes with which I am build the JVM. I can reproduce it on my s390x-machine as well. diff --git a/src/hotspot/share/runtime/globals.hpp b/src/hotspot/share/runtime/globals.hpp
index d442894798b..fbd1a2b3281 100644
--- a/src/hotspot/share/runtime/globals.hpp
+++ b/src/hotspot/share/runtime/globals.hpp
@@ -170,7 +170,7 @@ const int ObjectAlignmentInBytes = 8;
product(bool, AlwaysSafeConstructors, false, EXPERIMENTAL, \
"Force safe construction, as if all fields are final.") \
\
- product(bool, UnlockDiagnosticVMOptions, trueInDebug, DIAGNOSTIC, \
+ product(bool, UnlockDiagnosticVMOptions, true, DIAGNOSTIC, \
"Enable normal processing of flags relating to field diagnostics")\
\
product(bool, UnlockExperimentalVMOptions, false, EXPERIMENTAL, \
@@ -819,7 +819,7 @@ const int ObjectAlignmentInBytes = 8;
product(bool, RestrictContended, true, \
"Restrict @Contended to trusted classes") \
\
- product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
+ product(int, DiagnoseSyncOnValueBasedClasses, 1, DIAGNOSTIC, \
"Detect and take action upon identifying synchronization on " \
"value based classes. Modes: " \
"0: off; " \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The JIT changes look good to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JVMCI changes look good to me!
|
@offamitkumar Thank you for finding this bug. These flags have asserts that they're only set once, but CDS restores sets the value for this flag. Since it was set when dumping the archive, it resets it, which is okay in this case. I have a fix for this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updates look good!
|
Thank you for reviewing, Dean, Tobias, Amit, Exe-Boss and reviewing the updates also Matias. |
|
Going to push as commit 0cfd08f.
Your commit was automatically rebased without conflicts. |
Move JVM implementation access flags that are not specified by the classfile format into Klass so we can shrink AccessFlags to u2 in a future change.
Tested with tier1-7.
NOTE: there are arm, ppc and s390 changes to this that are just a guess. Also, graal changes.
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/20719/head:pull/20719$ git checkout pull/20719Update a local copy of the PR:
$ git checkout pull/20719$ git pull https://git.openjdk.org/jdk.git pull/20719/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 20719View PR using the GUI difftool:
$ git pr show -t 20719Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/20719.diff
Webrev
Link to Webrev Comment