-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8350258: AArch64: Client build fails after JDK-8347917 #23682
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 dchuyko! A progress list of the required criteria for merging this PR into |
|
@dchuyko 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 42 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 |
Webrevs
|
| #if COMPILER2_OR_JVMCI | ||
| #if COMPILER1_OR_COMPILER2 | ||
| if (map->update_map()) { | ||
| update_map_with_saved_link(map, (intptr_t**) addr_at(link_offset)); |
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.
Is it correct that this is only needed when PreserveFramePointer is false, and it's harmless to do when PreserveFramePointer is true?
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.
Yes. I'd say rfp always has a location, but it only can contain oop if PreserveFramePointer is false.
See MacroAssembler::build_frame()/remove_frame()
| assert(framesize >= 2 * wordSize, "framesize must include space for FP/LR"); |
and frame::update_map_with_saved_link()
| // The interpreter and compiler(s) always save FP in a known |
|
The original COMPILER2 guard comes from the 'Initial load' commit for x86 https://github.com/openjdk/jdk/blame/bb2c21a0252d12dc9edef3b676a12051caf7643e/hotspot/src/cpu/x86/vm/frame_x86.cpp#L407 |
|
/label hotspot-compiler |
|
@dean-long |
|
@dean-long |
dean-long
left a comment
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.
LGTM
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.
COMPILER1_OR_COMPILER2 condition is used instead of COMPILER2_OR_JVMCI, which also covers INCLUDE_JVMCI case.
Where you got this? Client VM will have only C1 and your guard will pass.
dean-long
left a comment
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.
I think @vnkozlov is right. I don't see where COMPILER1_OR_COMPILER2 is true for JVMCI. Should we use COMPILER1 || COMPILER2_OR_JVMCI, or remove the #if and instead guard with !PreserveFramePointer?
Yes, I mean this check. |
It doesn't seem necessary to change the current behavior for Int->C2, especially only for a single platform. |
Configure also prevent to to build VM with JVMCI without C1 or C2: jvm-features.m4#L517 |
|
I was about suggest to add comment to avoid confusion but then I thought what @dean-long suggested is better and don't need comment: We already use such condition: threads.cpp#L727 |
|
OK, changed to a full condition. |
vnkozlov
left a comment
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.
Good.
|
Dean, Vladimir, thanks for reviews. |
|
/integrate |
|
Going to push as commit 25322aa.
Your commit was automatically rebased without conflicts. |
The location for rfp should be set in in the register map. In particular, it wasn't set in frame::sender_for_interpreter_frame() if neither C2 nor JVMCI were included.
COMPILER1_OR_COMPILER2 condition is used instead of COMPILER2_OR_JVMCI, which also covers INCLUDE_JVMCI case.
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/23682/head:pull/23682$ git checkout pull/23682Update a local copy of the PR:
$ git checkout pull/23682$ git pull https://git.openjdk.org/jdk.git pull/23682/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 23682View PR using the GUI difftool:
$ git pr show -t 23682Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/23682.diff
Using Webrev
Link to Webrev Comment