From 060038bdd036e98622e22bc4538c7d192fb7217c Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 18 Mar 2016 18:12:14 -0700 Subject: [PATCH] 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 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/inl.go | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/cmd/compile/internal/gc/inl.go b/src/cmd/compile/internal/gc/inl.go index cc311c4445..77cdc195f0 100644 --- a/src/cmd/compile/internal/gc/inl.go +++ b/src/cmd/compile/internal/gc/inl.go @@ -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)--