-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
8269574: C2: Avoid redundant uncommon traps in GraphKit::builtin_throw() for JVMTI exception events #4623
Conversation
…w for JVMTI exception events
👋 Welcome back rrich! A progress list of the required criteria for merging this PR into |
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. Let me run some tests before push.
@reinrich 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 50 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 |
tier1-3 testing passed clean. You need second review. |
Thank you for reviewing and testing. I'll wait for another review. |
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.
Looks good to me.
Thanks! |
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.
Looks good.
Thanks Nils! |
/integrate |
Going to push as commit 72530ef.
Your commit was automatically rebased without conflicts. |
This change moves the first uncommon trap in
GraphKit::builtin_throw()
to the block where it is actually needed because it has a return statement.Other paths reach the second uncommon trap at the end of
GraphKit::builtin_throw()
. On these paths the first UCT is not needed.The change improves performance if the VM can post exceptions to JVMTI agents.
E.g. I found that the change improves the score for the compiler.compiler benchmark of SPECjvm2008 by 4% if the JDWP agent is loaded (see attachment in JBS).
Note that with the change we can trap with
Deoptimization::Action_maybe_recompile
if we don't throw a preallocated exception where before we would have trapped withDeoptimization::Action_none
if it was for posting the exception to JVMTI. I'd think this is preferable.The fix passed our CI testing: JCK and JTREG, also in Xcomp mode, SPECjvm2008, SPECjbb2015, Renaissance Suite,
SAP specific tests with fastdebug and release builds on all platforms.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/4623/head:pull/4623
$ git checkout pull/4623
Update a local copy of the PR:
$ git checkout pull/4623
$ git pull https://git.openjdk.java.net/jdk pull/4623/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 4623
View PR using the GUI difftool:
$ git pr show -t 4623
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/4623.diff