-
Notifications
You must be signed in to change notification settings - Fork 18k
cmd/compile: convert s390x to SSA backend #16677
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
Comments
@mundaym will be handling the changesets. |
Any progress report? Can I help with anything? |
We have done the basic work and built the runtime and the compiler itself with SSA, but there still some bugs to sort out. These are functional bugs, not just performance issues. @mundaym will begin pushing CL's in the next while. I guess maybe we're not quite as fast as you are :-) It's coming.... |
The SSA backend for s390x is fully functional now. Many thanks to Yu Heng Zhang (@annitazhang) and Yu Xuan Zhang (@zyxsh) over at IBM China for doing a lot of the work. There are still quite a few improvements I'd like to make but those can wait until it's in master (we haven't done the intrinsics yet for example). I'll probably start by sending CLs for the assembly/assembler changes. The SSA backend uses 32-bit ops where it can (as opposed to 64-bit ops everywhere) so it needs some additional instructions. I've also re-purposed R0 as general purpose register (rather than always holding zero) which is an ABI change so there are some changes related to that. The old backend does still work though (although R0 needs to be removed from the list of allocatable registers when using a mix of SSA and non-SSA). Once this is all in master do you think you'll keep the old back-end around for long, or is the plan to get rid of it straight away? I'd like to remove the current requirement to have dedicated temporary registers and it will be cleaner to do this once the old backend is gone. |
Excellent. The plan is to start excising the old backend ASAP. |
Great news!
I think everybody wants to see the old backend deleted straight away for similar ease-of-cleanups reasons. Having two backends makes things trickier everywhere. |
CL https://golang.org/cl/28978 mentions this issue. |
As part of deleting the legacy compiler (#16357) and letting the frontend assume an SSA backend, the s390x port needs to be converted to SSA.
I assume @mundaym et al will be doing this?
/cc @randall77 @cherrymui
The text was updated successfully, but these errors were encountered: