Commit e040fd46 authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

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/8733Reviewed-by: 's avatarDave Cheney <dave@cheney.net>
Reviewed-by: 's avatarKeith Randall <khr@golang.org>
parent 8262a8fb
...@@ -466,9 +466,6 @@ func Naddr(a *obj.Addr, n *Node) { ...@@ -466,9 +466,6 @@ func Naddr(a *obj.Addr, n *Node) {
break // len(nil) break // len(nil)
} }
a.Etype = Simtype[TUINT] a.Etype = Simtype[TUINT]
if Thearch.Thechar == '7' || Thearch.Thechar == '9' {
a.Etype = Simtype[TINT]
}
a.Offset += int64(Array_nel) a.Offset += int64(Array_nel)
if Thearch.Thechar != '5' { // TODO(rsc): Do this even on arm. if Thearch.Thechar != '5' { // TODO(rsc): Do this even on arm.
a.Width = int64(Widthint) a.Width = int64(Widthint)
...@@ -482,9 +479,6 @@ func Naddr(a *obj.Addr, n *Node) { ...@@ -482,9 +479,6 @@ func Naddr(a *obj.Addr, n *Node) {
break // cap(nil) break // cap(nil)
} }
a.Etype = Simtype[TUINT] a.Etype = Simtype[TUINT]
if Thearch.Thechar == '7' || Thearch.Thechar == '9' {
a.Etype = Simtype[TINT]
}
a.Offset += int64(Array_cap) a.Offset += int64(Array_cap)
if Thearch.Thechar != '5' { // TODO(rsc): Do this even on arm. if Thearch.Thechar != '5' { // TODO(rsc): Do this even on arm.
a.Width = int64(Widthint) a.Width = int64(Widthint)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment