-
Notifications
You must be signed in to change notification settings - Fork 729
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
Compare nodes in addition to symRef in SequentialStoreSimplification #20841
Conversation
fyi @hzongaro |
I will wait for @hzongaro review and the WIP to be taken off before I consider merging. |
fadb1a1
to
2c17546
Compare
Sequential Load Simplification is a part of I added another commit to this PR that solves that. |
a607ebb
to
d35b090
Compare
May I request some printfs in the code to tell you how many times the sequential store elimination did transformations in a couple of the benchmarks that would run the opt with and without your changes ? If the opt only runs at hot and above, then you probably won't be able to run Liberty scenarios to gauge the effectiveness, and would need some other apps like SPECjbb2015 or ILOG or Spark. I understand the optimization was doing a potentially incorrect transformation, but there may have been a case where it did not have commoned nodes and was still transforming correctly, but now no longer does so. I don't want to delay your changes too much, so you can fix the functional issue first, and then follow up with performance evaluation in the near term and that would be okay with me. |
I'll lookup on the load simplification changes necessary and may decide to put do it separately after instead to get this fix going. Load simplification will be functionally correct but not being able to transform the specific case of first element accesses. I'll add the printfs and measure it after completing the fix. |
61b4851
to
393882c
Compare
PR ready for merge. Testing performance I don't see difference in running benchmarks. |
Jenkins test sanity.functional,sanity.openjdk jdk21 |
Jenkins test sanity.functional,sanity.openjdk xlinux jdk21 |
Testing has passed, @hzongaro are you thinking of approving this ? I ask, to check before I consider a merge |
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.
I think this looks good. Thanks!
Sorry for the delay - I had just finished reviewing. |
SequentialStoreSimplification compares baseVar symRef to confirm stores being to the same array for simplification. For object fields the symRef matches even if arrays are different. To fix the issue a node check is used instead to make sure that its storing to the same array even if symRefs match.
393882c
to
2b85c07
Compare
Jenkins test sanity.functional,sanity.openjdk xlinux jdk21 |
SequentialStoreSimplification compares baseVar (first child to
aladd
) symRef to confirm stores being to the same array for simplification. For object fields the symRef matches even if arrays are different.To fix the issue a node check is added to make sure that its storing to the same array even if symRefs match.