-
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 unused emitter call types and improve INS_tail_i_jmp handling #59495
Conversation
The size estimation for INS_tail_i_jmp instructions was working by accident: we were always regarding these as requiring rex.w prefixes, even when they did not. Fix the logic so that rex.w is not considered required for 8-byte tail jumps, but add it manually for the forms where it is really necessary. There were also a lot of unused emitter call types that I have removed.
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsThe size estimation for INS_tail_i_jmp instructions was working by There were also a lot of unused emitter call types that I have removed. cc @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.
LGTM.
asm diffs?
|
||
// EC_FUNC_VIRTUAL, // Call to a virtual method (using the vtable) |
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.
At this point, I think there's not much point in keeping all the non-ARM cases here. They were initially left in during the port to make it easier to compare to x86. If you're going to delete this, I would delete the other commented-out cases (EC_FUNC_TOKEN_INDIR, EC_INDIR_SR, etc.), as well as the huge comment just above.
EC_INDIR_R, // Indirect call via register | ||
// EC_INDIR_SR, // Indirect call via stack-reference (local var) | ||
// EC_INDIR_C, // Indirect call via static class var |
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 comment here about deleting non-arm cases
No diffs on {x64, arm64}x{windows, linux}. |
Failures are #59541 |
The size estimation for INS_tail_i_jmp instructions was working by
accident: we were always regarding these as requiring rex.w
prefixes, even when they did not. Fix the logic so that rex.w is not
considered required for 8-byte tail jumps, but add it manually for the
forms where it is really necessary.
There were also a lot of unused emitter call types that I have removed.
cc @dotnet/jit-contrib