]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: fix -N build
authorKeith Randall <khr@golang.org>
Mon, 11 Apr 2016 19:22:26 +0000 (12:22 -0700)
committerKeith Randall <khr@golang.org>
Mon, 11 Apr 2016 19:43:47 +0000 (19:43 +0000)
The decomposer of builtin types is confused by having structs
still around from the user-type decomposer.  They're all dead though,
so just enabling a deadcode pass fixes things.

Change-Id: I2df6bc7e829be03eabfd24c8dda1bff96f3d7091
Reviewed-on: https://go-review.googlesource.com/21839
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/ssa/compile.go
src/cmd/compile/internal/ssa/decompose.go

index d52ae9c6dab814c1d466a5f4a73734557315b09e..b4215f119ef586e24604a3e82a6fc89db4e5d296 100644 (file)
@@ -230,9 +230,9 @@ var passes = [...]pass{
        {name: "early deadcode", fn: deadcode}, // remove generated dead code to avoid doing pointless work during opt
        {name: "short circuit", fn: shortcircuit},
        {name: "decompose user", fn: decomposeUser, required: true},
-       {name: "opt", fn: opt, required: true},           // TODO: split required rules and optimizing rules
-       {name: "zero arg cse", fn: zcse, required: true}, // required to merge OpSB values
-       {name: "opt deadcode", fn: deadcode},             // remove any blocks orphaned during opt
+       {name: "opt", fn: opt, required: true},               // TODO: split required rules and optimizing rules
+       {name: "zero arg cse", fn: zcse, required: true},     // required to merge OpSB values
+       {name: "opt deadcode", fn: deadcode, required: true}, // remove any blocks orphaned during opt
        {name: "generic cse", fn: cse},
        {name: "phiopt", fn: phiopt},
        {name: "nilcheckelim", fn: nilcheckelim},
index de02885d76f860c515bcb3a34ce9956fc2ff68a2..53116ba593de46dea8e23b83bae261c2b7675084 100644 (file)
@@ -79,7 +79,7 @@ func decomposeBuiltIn(f *Func) {
                        }
                        delete(f.NamedValues, name)
                case t.Size() > f.Config.IntSize:
-                       f.Unimplementedf("undecomposed named type %s", t)
+                       f.Unimplementedf("undecomposed named type %s %s", name, t)
                default:
                        newNames = append(newNames, name)
                }