-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8345287: C2: live in computation is broken #22473
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 roland! A progress list of the required criteria for merging this PR into |
|
@rwestrel 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 171 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 |
|
Good catch! Do you have an example where the final schedule is affected by this issue? |
|
Well spotted! |
I don't. I noticed that live in sets are always empty while looking at memory usage of some |
It's a performance optimization from https://bugs.openjdk.org/browse/JDK-8234003 |
OK, thanks. I will start by running some benchmarks on x64 with and without this fix. Will report results in a couple of days. |
🤦♂️ of course! Thanks for the explanation (sorry that I missed that)! |
Sounds good. Thanks. If there happen to be a regression, I think it would make more sense to fix the code (with this patch) and disable |
|
Test results on Oracle CI look good, benchmarks are still running but the results look rather neutral so far. |
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.
Benchmarking is done now, the results of applying this changeset are as follows:
Given these results, I think it might be good to investigate what is the overall effect of |
What happens to the regresions with |
Thanks for running benchmarks! |
I will do a new benchmark run of jdk-24+26 with default configuration vs. jdk-24+26 with |
|
All benefits described in JDK-8234003 could be due to not iterating at all in -5% regression in monte-carlo is seen only on old macos-x64 machine which does not have AVX512 (only AVX2). It would be interesting to investigate but I think it is fine if we do that after push. So I agree to integrate this fix into JDK 24. Fixing regression could be done in 24u update release.
|
OK. |
Turning off |
Thanks @robcasloz for the test results. I filed https://bugs.openjdk.org/browse/JDK-8345820 |
|
@robcasloz @vnkozlov @dean-long thanks for the reviews |
|
/integrate |
|
Going to push as commit cc628a1.
Your commit was automatically rebased without conflicts. |
8234003 (Improve IndexSet iteration) broke live in computation:
liveinis initially empy and the patch above only adds element to it if:which is never true.
This doesn't affect correctness as live in sets are only used to drive
scheduling.
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/22473/head:pull/22473$ git checkout pull/22473Update a local copy of the PR:
$ git checkout pull/22473$ git pull https://git.openjdk.org/jdk.git pull/22473/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 22473View PR using the GUI difftool:
$ git pr show -t 22473Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/22473.diff
Using Webrev
Link to Webrev Comment