-
Notifications
You must be signed in to change notification settings - Fork 17.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
cmd/compile: delete the legacy compiler back end #16357
Comments
386 - #16358 |
mips64, @cherrymui ? |
MIPS64- #16359 |
amd64p32 is now using the SSA backend. |
386 (including GO386=387) is now using the SSA backend. |
ARM is done. |
MIPS64 is done. All that is left is s390x and ppc64(be). |
ppc64be lacks only a test machine. On Fri, Aug 26, 2016 at 4:51 PM, Keith Randall notifications@github.com
|
working on s390x |
arm64 is done. |
s390x is done #16677 |
@randall77, could GOSSAHASH remain but instead of using the old backend, mean to disable optimizations (like |
That would work if you're hacking on an SSA pass that is disabled with -N. That covers some cases but not all. |
How about a top level flag (-hash=) and a support function (func hashmatch(name string) bool) that reports whether it matches. Then you can conditionally enable/disable any chunk of code you want, anywhere in the compiler. |
An individual phase would be pretty easy to hack in by hand, yes. |
I've done Josh's method before, and I'm pretty happy with that method. |
Back to the exciting topic of deleting the old backend, Keith, it seems to me you should have the honor of doing the first big del, if you want it. |
Another, much more complicated GOSSAHASH idea: Teach the linker to be able to combine two sources of object files. Using the known good compiler, compile everything and stash the object files. At link time, use GOSSAHASH to merge them. Wrap up behind a tool, maybe via -toolexec? Sounds complicated, but maybe that's ok...or maybe it'll inspire a better idea in someone else. |
I am licking my lips. On Tue, Sep 13, 2016 at 1:52 PM, Josh Bleecher Snyder <
|
Given that we export all the phases as function pointers, this sort of old/new switchiness is perhaps not that magical. We might want to be more disciplined in our connections between gc/ssa.go and the ssa package. |
I like Josh's idea. Kind of like a per-function toolstash. A hacky Go On Tue, Sep 13, 2016 at 2:00 PM, dr2chase notifications@github.com wrote:
|
Ah, I misunderstood. Is that going to be easy/possible to embed within make.bash or go test? |
You would presumably write a wrapper, like what buildall does for toolstash -cmp. |
Rip out the code that allows SSA to be used conditionally. No longer exists: ssa=0 flag GOSSAHASH GOSSAPKG SSATEST GOSSAFUNC now only controls the printing of the IR/html. Still need to rip out all of the old backend. It should no longer be callable after this CL. Update #16357 Change-Id: Ib30cc18fba6ca52232c41689ba610b0a94aa74f5 Reviewed-on: https://go-review.googlesource.com/29155 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
CL https://golang.org/cl/29168 mentions this issue. |
It's not everything, but it is a good start. I tried to make the CL delete only. goimports forced a few exceptions to that rule. Update #16357 Change-Id: I041925cb2fe68bb7ae1617af862b22c48da649c1 Reviewed-on: https://go-review.googlesource.com/29168 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Martin Möhrmann <martisch@uos.de>
Delete legacy backend tests, make SSA tests unconditional. Next CL will remove _ssa from the file names. Update #16357 Change-Id: I2a7f5dcbc69455f63b5e6e6b2725df26ab86c8dd Reviewed-on: https://go-review.googlesource.com/29231 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Everything is SSA now. Update #16357 Change-Id: I436dbe367b863ee81a3695a7d653ba4bfc5b0f6c Reviewed-on: https://go-review.googlesource.com/29232 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Should I start including and suggesting others to add "Updates #16357" to cleanup CLs related to this? |
Yes, can't hurt. On Fri, Sep 16, 2016 at 10:44 AM, Matthew Dempsky notifications@github.com
|
Roger roger. |
CL https://golang.org/cl/29350 mentions this issue. |
Updates #16357. Change-Id: I37f04d83134b5e1e7f6ba44eb9a566758ef594d3 Reviewed-on: https://go-review.googlesource.com/29350 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Update #16357. Change-Id: I507676212d7137a62c76de7bfa0ba8dbd68e840f Reviewed-on: https://go-review.googlesource.com/29358 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dave Cheney <dave@cheney.net>
Updates #16357. Change-Id: I35f938d675ca5c31f65c4419ee0732bbc593b5cb Reviewed-on: https://go-review.googlesource.com/29368 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org>
CL https://golang.org/cl/29219 mentions this issue. |
Updates #16357. Change-Id: Ia837dd44bad76931baa9469e64371bc253d6694b Reviewed-on: https://go-review.googlesource.com/29219 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
Introduced in CL 9263 (prepare to unexport gc.Mp*) and CL 9267 (prepare Node.Val to be unexported), their only callers were in the old backend and all got deleted in CL 29168 (cmd/compile: delete lots of the legacy backend). Update #16357 Change-Id: I0a5d76b98b418e8ec0984c033c3bc0ac3fc5f38a Reviewed-on: https://go-review.googlesource.com/29997 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Convconst is not used in the new backend, and all its callers were deleted in CL 29168 (cmd/compile: delete lots of the legacy backend). iconv was an helper function for Convconst. Updates #16357 Change-Id: I65c7345586d7af81cdc2fb09c68f744ffb161a17 Reviewed-on: https://go-review.googlesource.com/30090 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Declaring this done. |
When all the SSA backends are done, delete the legacy compiler.
This is basically a tracking bug for the work on all the SSA backends.
amd64 - done
arm - #15365
arm64 - #16009
ppc64 - #16010 #16175
The text was updated successfully, but these errors were encountered: