-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Remove AreVNsEquivalent #113304
Remove AreVNsEquivalent #113304
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
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.
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
@AndyAyersMS @jakobbotsch @dotnet/jit-contrib PTAL, simple PR, zero-diff, TP improvements - see desc. |
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.
The PR that added this had some diffs and improvements: #104752. You might look at the case mentioned there. Maybe we're now able to get these cases by other means?
I had more ambitious plans for this but reasoning about memory proved challenging.
From top of my head, since then we did:
|
I recall we had to revert parts of that change because of soundness issues due to the fact that VNs from different loop iterations can be equal without actually having the same value. Looks like the revert happened in #106229, so perhaps that took all of the diffs with it as well. |
Ah that explains it. Looks like number of benchmarks improved and then regressed match for these PRs |
Yeah reading the notes on the revert it looks like we had regressions, so perhaps the net was zero diffs. |
Seems to be useless and decreases JIT TP.
Zero size diffs with TP improvements.
The function seems to try to compare two PHI defs and make sure their Phi args are the same. Judging by the diffs that never happens and we just pay a big TP price for it.
Maybe someday we'll have some generic tooling to decide whether two different VNs are in fact the same, but not today.