-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8302673: [SuperWord] MaxReduction and MinReduction should vectorize for int #13924
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
Closed
Closed
Changes from all commits
Commits
Show all changes
30 commits
Select commit
Hold shift + click to select a range
be1888f
Clean up MinI/MaxI Ideal function
robcasloz 9b218df
Add basic test from https://github.com/openjdk/jdk/pull/13260
robcasloz cd84227
Added more Max test cases with swapped inputs
robcasloz 3973102
Handle all four max-of-max cases without canonicalization
robcasloz c56efa2
Extract MaxINode::Ideal() and MinINode::Ideal() into MaxNode::IdealI()
robcasloz 2149d34
Flatten nested if
robcasloz 7adf075
Re-add comment
robcasloz 872bcbe
Simplify
robcasloz d7c7987
Refactor
robcasloz 89cebb1
Add some comments
robcasloz d53cb53
Complement idealization tests with negative ones
robcasloz 3c12095
Uncomment tests
robcasloz 83e7630
Update copyright header
robcasloz 9fd482b
Refine comments
robcasloz 80b100e
Merge branch 'master' into JDK-8302673
robcasloz 6308044
Merge branch 'master' into JDK-8302673
robcasloz c736c0a
Randomize array values in min/max test computation
robcasloz 8f8faf2
Make auxiliary add operand extraction function return a tuple
robcasloz 3aba9bc
Refactor idealization and extracted Identity transformation for clarity
robcasloz a769913
Merge branch 'master' into JDK-8302673
robcasloz c3ea6f7
Defer op(x, x) to constant/identity propagation early
robcasloz a6db3cc
Merge branch 'master' into JDK-8302673
robcasloz 29922ea
Extract MinI/MaxI construction; pass around ConstAddOperands instead …
robcasloz 3adee22
Add tests to exercise the case without inner additions
robcasloz efb8ac0
Handle case without inner additions by restoring 'as_add_with_constan…
robcasloz 3b4d799
Complete test battery with remaining no-add cases
robcasloz c26f585
Revert extraction of min/max building
robcasloz 5a96171
Abort idealization if any of the adds has a TOP input
robcasloz f4837ac
Merge branch 'master' into JDK-8302673
robcasloz cfcc16f
Re-apply extraction of min/max building after JDK-8309295
robcasloz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Did something prevent you from directly using
MaxNode::build_min_max?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.
Technically I think that should be possible, but I find that extracting the core logic into a separate function is more readable (makes it straightforward to understand the effect of the call in
MaxNode::IdealI()) and efficient (avoids a redundant application ofPhaseGVN::transform()to the newly createdMinI/MaxInodes).