-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Improve branch optimizer around implied relops #95234
Merged
Merged
Changes from 17 commits
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
2447227
Optimize "implied relops" in assertprop
EgorBo a6e0867
Improve impl
EgorBo 579c05e
Clean up
EgorBo 7171a5d
Clean up
EgorBo 62a5f35
Add GT_EQ
EgorBo 7489fad
add GT_NE as well
EgorBo a104102
clean up
EgorBo ffa7d1a
Test commit
EgorBo 3f82e12
Implement in redundant-branch phase
EgorBo eff4f9d
jit-format
EgorBo cbe3461
Fix build
EgorBo 069279c
Fix build
EgorBo 2c18ec4
test
EgorBo 541ada4
jit-format
EgorBo 5245290
Test commit
EgorBo dacc1ed
Merge branch 'main' of github.com:dotnet/runtime into implied-relop-a…
EgorBo 4c18b0b
Merge branch 'main' of github.com:dotnet/runtime into implied-relop-a…
EgorBo a3b15c9
Merge branch 'main' of github.com:dotnet/runtime into implied-relop-a…
EgorBo 9418be5
test fix
EgorBo efbb400
Better fix
EgorBo 714c001
Final clean up
EgorBo d796e79
Rename function
EgorBo 5f66730
Revert previous changes
EgorBo 94776af
Clean up
EgorBo 6bdd596
Handle GT_NE
EgorBo a23517e
Merge branch 'implied-relop-assertprop' of github.com:EgorBo/runtime-…
EgorBo bb3f8cb
Merge branch 'main' of github.com:dotnet/runtime into implied-relop-a…
EgorBo b1c69f0
test
EgorBo c8136b0
Check type of domApp.m_args[0] (same as treeApp.m_args[0])
EgorBo 302430e
Update redundantbranchopts.cpp
EgorBo ce5e346
Merge branch 'main' of github.com:dotnet/runtime into implied-relop-a…
EgorBo 2d8a6df
Replace ssize_t with target_ssize_t
EgorBo 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 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 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.
The reversal/negation here is a bit tricky, but I think I follow it.
Seems like there's a complementary case where you don't negate the upper relop and then may instead have
canInferFromTrue
abilities?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.
Yeah, basically there are two cases:
canInferFromFalse
:canInferFromTrue
:I'll check separately the 2nd case (last I tried it added very little diffs)