-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Remove potential NULLCHECK creation after LIR on arm32. #40349
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 potential NULLCHECK creation after LIR on arm32. #40349
Conversation
|
PTAL @erozenfeld @CarolEidt @dotnet/jit-contrib |
erozenfeld
left a comment
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
CarolEidt
left a comment
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, though I believe that historically GT_NULLCHECKs have always been TYP_BYTE (not sure why, since codegen ignores it) so I'm just curious why you changed it.
We are changing it to I could make a change in |
No need; I was just curious about the reasoning. Thanks |
* Use `TransformUnusedIndirection` in LIR liveness. * Use `TYP_INT` as `TransformUnusedIndirection` does. * fix grammar.
@erozenfeld noticed that changes from #39824 could work wrong on arm32 because we could create a NullCheck node after Lower phase. If it reaches codegen it will fail there. I don't have a repro test, this path is probably unreachable for arm32 currently, but it is better to use a newly added function from #40226 to handle it.
Also, use
TYP_INTfor the newNULLCHECKnodes, before in some places we were usingTYP_BYTE. The actual type doesn't matter, codegen ignores it.No libs diffs.