From 812b34efaed87584977dd56fbd3b366e13b314f5 Mon Sep 17 00:00:00 2001 From: Mark Pulford Date: Sun, 3 Sep 2017 23:53:38 +1000 Subject: [PATCH] cmd/compile: ignore non-code nodes when inlining Avoid counting nodes that don't generate code (eg, constants) against the inlining budget. Fixes #21749 Change-Id: I10fca073e64be7d304709ef33e125eb8c78d5e4d Reviewed-on: https://go-review.googlesource.com/61250 Reviewed-by: Matthew Dempsky Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/inl.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cmd/compile/internal/gc/inl.go b/src/cmd/compile/internal/gc/inl.go index dfa13e3c3b..f9f273f5a8 100644 --- a/src/cmd/compile/internal/gc/inl.go +++ b/src/cmd/compile/internal/gc/inl.go @@ -279,6 +279,10 @@ func (v *hairyVisitor) visit(n *Node) bool { ORETJMP: v.reason = "unhandled op " + n.Op.String() return true + + case ODCLCONST, OEMPTY, OFALL, OLABEL: + // These nodes don't produce code; omit from inlining budget. + return false } v.budget-- -- 2.50.0