-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Delete GT_ADDR
#84147
Delete GT_ADDR
#84147
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsThe real work has at this point been done, so this just deletes the oper and its last use as a sentinel. Some Closes #11057. No diffs expected. With one legacy IR construct gone, let's see how much time will it take to delete its Depends on #79722.
|
1066eb8
to
ff0b7be
Compare
And they said this day would never come... Glad to see this at long last. |
ff0b7be
to
13f5b0a
Compare
@dotnet/jit-contrib |
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.
will leave it open for someone else to take another look
Congrats! 🎉 @SingleAccretion, design docs also mention $ git grep GT_ADDR
docs/design/coreclr/jit/ryujit-overview.md:| [Rationalization](#rationalization) | Flowgraph order changes from `FGOrderTree` to `FGOrderLinear`. All `GT_COMMA`, `GT_ASG` and `GT_ADDR` nodes are transformed. |
docs/design/coreclr/jit/ryujit-overview.md:* Elimination of address nodes (`GT_ADDR`). These are problematic because of the need for parent context to analyze the child.
docs/design/coreclr/jit/ryujit-overview.md: * All `GT_ADDR` nodes are eliminated (e.g. with `GT_LCL_VAR_ADDR`).
docs/design/coreclr/jit/ryujit-tutorial.md: - Eliminate GT_ADDR: Need parent context to analyze child
docs/design/coreclr/jit/ryujit-tutorial.md:We would like to ensure that all data flows are from child to parent. Examples where this is currently violated are in the assignment, or GT_ASG node, where the data flows from the right hand side of the assignment "over" the parent assignment, to the value being defined on the left hand side. Similarly, the child of a GT_ADDR node may appear to be a use or a definition of the value, when instead its address is being taken.
docs/design/coreclr/jit/ryujit-tutorial.md:- All GT_ADDR nodes are eliminated (e.g. with GT_LCL_VAR_ADDR) |
Thank you :). |
The real work has at this point been done, so this just deletes the oper and its last use as a sentinel. No diffs.
Some
TODO-ADDR
s in source still remain, but they can be addressed separately.Closes #11057.
With this legacy IR construct gone, let's see how much time will it take to delete its
ASG
cousin :).