-
Notifications
You must be signed in to change notification settings - Fork 721
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
Implement initial Vector API expansion #13213
Conversation
gita-omr
commented
Jul 19, 2021
•
edited
Loading
edited
- create new optimization pass(VectorAPIExpansion)
- add VectorAPIExpansion to the cheap warm optimization strategy
- recognize and scalarize load(), store() and binaryOp() intrinsics
- add -Xjit command line option disableVectorAPIExpansion
- add -Xjit command line option traceVectorAPIExpansion
Made WIP due to 2 sanity failures which are most likely not related. Investigating. |
Removed WIP since similar failures happened without this PR. Hoping somebody can take a look soon since there is a lot of code and we would like to get this into 0.28. |
@vijaysun-omr @0xdaryl @jdmpapin @r30shah @BradleyWood could you please review as much as you can? |
Noticed some GRA related issues. Fixing. |
Added commit with some fixes. |
Changed to WIP to make sure Byte and Short types work properly. |
Added a commit to handle Byte and Short types. As @jdmpapin pointed out there were some issues with those. I decided to use the type promotion approach (see commit message). |
WIP: several fixes are coming and also would like to squash all the commits before merging. |
Thanks a lot for all the findings and suggestions! Please let me know what you think. @r30shah @jdmpapin @BradleyWood @0xdaryl @vijaysun-omr [1] eclipse/omr#6117 |
Setting and checking IfVector sounds reasonable to me; a walk over the trees to collect this info may or may not even be needed, e.g. if the flag was set during IL gen itself (I believe this is how other flags are managed, e.g. IfNews) as the trees are being generated. Regardless, a walk over IL trees (if you figure that is what we need in the end) is also not really significant overhead even at warm. I assume there would be an option to disable all the vector handling at once. |
Depends on eclipse/omr#6136 |
eclipse/omr#6136 passed acceptance builds, so removing WIP. |
@gita-omr could you take a look at the linter + line endings job failures? They look related to this PR. Once we have that fixed we can launch sanity tests + any Vector API testing we have available via PR triggers. |
I believe Linter should pass now since eclipse/omr#6136 got propagated. |
Removed training spaces in all files from this PR. Please let me know when I can squash all the commits. |
Still one left. We should squash after that. |
Wow, my sed script did not catch that :) |
d27dbc0
to
77d180b
Compare
Jenkins test sanity all jdk8,jdk17 |
I am fixing AIX(XLC) build issue. |
Fixed xlC errors. Please let me know when to squash again. |
Jenkins test sanity all jdk8,jdk17 |
52d2991
to
45058ef
Compare
- create new optimization pass(VectorAPIExpansion) - add VectorAPIExpansion to the cheap warm optimization strategy - recognize and scalarize load(), store() and binaryOp() intrinsics - add -Xjit command line option disableVectorAPIExpansion - add -Xjit command line option traceVectorAPIExpansion
45058ef
to
c29d6e6
Compare
Squashed and rebased. |
Jenkins test sanity all jdk8,jdk17 |
Jenkins test sanity win jdk8 |
Windows 32-bit failure is fixed via #13406. |