-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Shared: Use edge dominance terminology in basic block library #18696
Conversation
56cac75
to
820d2cb
Compare
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 16 out of 16 changed files in this pull request and generated no comments.
Tip: If you use Visual Studio Code, you can request a review from Copilot before you push from the "Source Control" tab. Learn more
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.
LGTM
I have started DCA runs. |
Co-authored-by: Tom Hvitved <[email protected]>
* can only be reached through `bb` and dominated by an _edge_ `s` if it can | ||
* only be reached through `s`. |
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.
same
* it can only be reached through `bb` and dominated by an _edge_ `s` if it | ||
* can only be reached through `s`. |
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.
same
Co-authored-by: Anders Schack-Mulligen <[email protected]>
Thanks for the reviews. Comments should be addressed now. |
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.
LGTM
Follow up to #18497.
This PR changes the shared basic block library to use the term "edge dominance" instead of "control". A key benefit of doing this is that "edge dominance" should be intuitive to those familiar with the standard notion of dominance in control flow graphs.
immediatelyControls/3
is nowdominatingEdge/2
. I've dropped an argument since the last two contain the same amount of information. I wasn't quite sure whether to drop the basic block or the successor type, but ended up keeping the later for consistency with Java. It's also no longer a member predicate since it's not related to any of it's two arguments more than the other.controls
is nowedgeDominates
, but is otherwise unchanged.ConditionBlock
classes I've added deprecations. These libraries are not re-exportingdominatingEdge
because 1/ The existingimmediatelyControls
seems unused (I'm guessing it's key job is as a building block forcontrol
/edgeDominates
and 2/edgeDominates
can subsume it.Todo