From: Josh Bleecher Snyder Date: Fri, 10 Apr 2015 00:58:52 +0000 (-0700) Subject: cmd/internal/gc: registerize more in 7g and 9g X-Git-Tag: go1.5beta1~1075 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e040fd46540930c9816de5acb59329d00ce3ffba;p=gostls13.git cmd/internal/gc: registerize more in 7g and 9g 7g and 9g disagree with componentgen about what type len and cap have. This results in an etype mismatch, which inhibits registerization. Fixing this results in 7406 more registerizations while building the stdlib. There are still 1512 missed opportunities. This should improve the performance benefit to 7g of enabling componentgen (CL 8636). This CL reduces the size of godoc by 203k (-1.177%). This was discovered by using the diagnostics added in CL 8732 and running: GOARCH=arm64 GOOS=linux go build -gcflags="-d registerization" std See CL 91850043 for similar earlier fixes for 6g and 8g. Change-Id: I57f478228a000ad7529d4136bad94a51343c4daa Reviewed-on: https://go-review.googlesource.com/8733 Reviewed-by: Dave Cheney Reviewed-by: Keith Randall --- diff --git a/src/cmd/internal/gc/gsubr.go b/src/cmd/internal/gc/gsubr.go index 4483d4e4f5..99ef74e428 100644 --- a/src/cmd/internal/gc/gsubr.go +++ b/src/cmd/internal/gc/gsubr.go @@ -466,9 +466,6 @@ func Naddr(a *obj.Addr, n *Node) { break // len(nil) } a.Etype = Simtype[TUINT] - if Thearch.Thechar == '7' || Thearch.Thechar == '9' { - a.Etype = Simtype[TINT] - } a.Offset += int64(Array_nel) if Thearch.Thechar != '5' { // TODO(rsc): Do this even on arm. a.Width = int64(Widthint) @@ -482,9 +479,6 @@ func Naddr(a *obj.Addr, n *Node) { break // cap(nil) } a.Etype = Simtype[TUINT] - if Thearch.Thechar == '7' || Thearch.Thechar == '9' { - a.Etype = Simtype[TINT] - } a.Offset += int64(Array_cap) if Thearch.Thechar != '5' { // TODO(rsc): Do this even on arm. a.Width = int64(Widthint)