-
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
JIT: Unify GT_JMP
handling in the backends
#102117
Conversation
Switch the handling of `GT_JMP` into a single unified implementation that utilizes the new ABI representation.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
cc @dotnet/jit-contrib PTAL @kunalspathak Some minor diffs where the new logic allows using some wider reads from the stack for struct locals. This should be fine. |
{ | ||
JITDUMP("\t\t\t\t\t\t\tVar V%02u becoming live\n", varNum); | ||
regNumber intArgReg = compiler->getCallArgIntRegister(segment.GetRegister()); | ||
inst_Mov(TYP_LONG, intArgReg, segment.GetRegister(), /* canSkip */ false, |
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.
any reason why we can't skip the move, if possible?
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.
It will never be possible (this is moving from an XMM register to a GP register)
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
Switch the handling of `GT_JMP` into a single unified implementation that utilizes the new ABI representation.
Switch the handling of
GT_JMP
into a single unified implementation that utilizes the new ABI representation.Initially I tried doing this through #80732, by implementing support for fast tailcalls on win-x86, but it is non-trivial to guarantee that all
GT_JMP
calls can be translated into fast tail-callableGT_CALL
in all scenarios.