-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8346039: [BACKOUT] - [C1] LIR Operations with one input should be implemented as LIR_Op1 #22690
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
…nted as LIR_Op1" This reverts commit a21d21f.
|
👋 Welcome back dholmes! A progress list of the required criteria for merging this PR into |
|
@dholmes-ora 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 2 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
|
@dholmes-ora The following label 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 list. If you would like to change these labels, use the /label pull request command. |
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.
|
Thanks for the review @vnkozlov ! Just awaiting testing to complete. |
TheRealMDoerr
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.
Backout looks correct. I wonder on what kind of machine the issue showed up. Was it 32 bit? Tier 2 has passed on our machines.
|
@TheRealMDoerr Windows -x64 and Linux-x64. It is intermittent (I guess random register content might cause that). Thanks for the review. |
|
@TheRealMDoerr I've added some failing test info to JDK-8346038 |
|
It must be machine dependent. I guess |
|
Yes the failing runs have |
|
Thanks for confirming! jdk/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp Line 3802 in 64fad1c
xorps in C1? That would simplify the code a lot and avoid an extra temp register and the preloading with LIR_OprFact::floatConst(-0.0)?
|
|
@TheRealMDoerr I don't know simple answer for your question. These checks were added after failures during testing changes for JDK-821076 diffs Here is review of these changes: https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2018-September/030629.html The issue could be that we should avoid mixing encoding modes for AVX instructions (when C1 and C2 compiled methods call each other). May be we should wait when @sviswa7 is back from vacation and get her answer to your question. If it is not about mixing mode we can accept small performance issues since C1 generated code will be replaced with C2 generated. |
|
/integrate |
|
Going to push as commit ec219ae.
Your commit was automatically rebased without conflicts. |
|
@dholmes-ora Pushed as commit ec219ae. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
|
@TheRealMDoerr I have not looked too closely at your change, but from the error messages I guess the failure may be due to the fact that input operands are not required to live during the node, while temp operands live only during the node. As a result, they may be assigned the same register by the allocator, which is not correct for some of the nodes here. |
|
Thanks everyone for looking into the issue and the assistance. I have understood the problem. C1 allows using the same register for a temp and an input operand. Another problem is that the |
|
I've created a draft PR with the removal: #22709 |
Revert "8345609: [C1] LIR Operations with one input should be implemented as LIR_Op1"
This reverts commit a21d21f.
Testing tiers 1-3 in progress
Thanks
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/22690/head:pull/22690$ git checkout pull/22690Update a local copy of the PR:
$ git checkout pull/22690$ git pull https://git.openjdk.org/jdk.git pull/22690/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 22690View PR using the GUI difftool:
$ git pr show -t 22690Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/22690.diff
Using Webrev
Link to Webrev Comment