Commit 060038bd authored by Ian Lance Taylor's avatar Ian Lance Taylor

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/20891Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent d6d33f67
...@@ -220,13 +220,6 @@ func ishairy(n *Node, budget *int) bool { ...@@ -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)--
......
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