mirror of
https://github.com/golang/go
synced 2024-11-19 10:14:44 -07: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:
parent
d6d33f678d
commit
060038bdd0
@ -220,13 +220,6 @@ func ishairy(n *Node, budget *int) bool {
|
|||||||
ODCLTYPE, // can't print yet
|
ODCLTYPE, // can't print yet
|
||||||
ORETJMP:
|
ORETJMP:
|
||||||
return true
|
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)--
|
(*budget)--
|
||||||
|
Loading…
Reference in New Issue
Block a user