1
0
mirror of https://github.com/golang/go synced 2024-10-01 16:08:33 -06:00

cmd/compile: don't penalize ODOT and friends when inlining

Historically ODOT and friends have been considered to cost an extra
budget point when deciding whether they should be inlined, because they
had an ONAME node that represented the name to the right of the dot.
This doesn't really make sense, as in general that symbol does not add
any extra instructions; it just affects the offset of the load or store
instruction.  And the ONAME node is gone now.  So, remove the extra
cost.

This does not pass toolstash -cmp, as it changes inlining decisions.
For example, mspan.init in runtime/mheap.go is now considered to be an
inlining candidate.

Change-Id: I5ad27f08c66fd5daa4c8472dd0795df989183f5e
Reviewed-on: https://go-review.googlesource.com/20891
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Ian Lance Taylor 2016-03-18 18:12:14 -07:00
parent d6d33f678d
commit 060038bdd0

View File

@ -220,13 +220,6 @@ func ishairy(n *Node, budget *int) bool {
ODCLTYPE, // can't print yet
ORETJMP:
return true
case ODOT, ODOTPTR, ODOTMETH, ODOTINTER:
// These used to store the symbol name as an ONAME in
// the Right field, meaning that it cost one budget
// unit. Stay compatible for now.
// TODO(iant): Remove this.
(*budget)--
}
(*budget)--