Skip to content
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

cmd/compile: convert s390x to SSA backend #16677

Closed
bradfitz opened this issue Aug 12, 2016 · 7 comments
Closed

cmd/compile: convert s390x to SSA backend #16677

bradfitz opened this issue Aug 12, 2016 · 7 comments
Milestone

Comments

@bradfitz
Copy link
Contributor

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

@bradfitz bradfitz added this to the Go1.8 milestone Aug 12, 2016
@billotosyr
Copy link

@mundaym will be handling the changesets.

@randall77
Copy link
Contributor

Any progress report? Can I help with anything?

@billotosyr
Copy link

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....

@mundaym
Copy link
Member

mundaym commented Sep 11, 2016

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.

@randall77
Copy link
Contributor

Excellent.

The plan is to start excising the old backend ASAP.

@bradfitz
Copy link
Contributor Author

Great news!

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.

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.

@gopherbot
Copy link

CL https://golang.org/cl/28978 mentions this issue.

@golang golang locked and limited conversation to collaborators Sep 13, 2017
@rsc rsc unassigned mundaym Jun 23, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants