]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.ssa] cmd/compile: don't issue nops for static data
authorKeith Randall <khr@golang.org>
Tue, 20 Oct 2015 20:56:16 +0000 (13:56 -0700)
committerKeith Randall <khr@golang.org>
Tue, 20 Oct 2015 21:59:01 +0000 (21:59 +0000)
It confuses live variable analysis to have a bunch of unreachable
no-ops at the end of a function.  Symptom is:
    gc/plive.go:483 panic: interface conversion: interface {} is nil, not *gc.BasicBlock

I don't see any reason why the old compiler needs these no-ops either.
all.bash passes with the equivalent code removed on master.

Change-Id: Ifcd2c3e139aa16314f08aebc9079b2fb7aa60556
Reviewed-on: https://go-review.googlesource.com/16132
Reviewed-by: David Chase <drchase@google.com>
src/cmd/compile/internal/gc/sinit.go

index 70d32f75c6b675497d9bc2dc458b76274cc8ecce..c1165cde050249e48ece0dfa4f01e4926da2ccdb 100644 (file)
@@ -1431,9 +1431,6 @@ func gen_as_init(n *Node, reportOnly bool) bool {
        case OSLICEARR:
                if nr.Right.Op == OKEY && nr.Right.Left == nil && nr.Right.Right == nil {
                        nr = nr.Left
-                       if !reportOnly {
-                               gused(nil) // in case the data is the dest of a goto
-                       }
                        nl := nr
                        if nr == nil || nr.Op != OADDR {
                                goto no