Commit 09d4455f authored by Matthew Dempsky's avatar Matthew Dempsky

cmd/compile: enable inlining variadic functions

As a side effect of working on mid-stack inlining, we've fixed support
for inlining variadic functions. Might as well enable it.

Change-Id: I7f555f8b941969791db7eb598c0b49f6dc0820aa
Reviewed-on: https://go-review.googlesource.com/100456Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
parent c74aa39f
......@@ -13,7 +13,7 @@
// 0: disabled
// 1: 80-nodes leaf functions, oneliners, lazy typechecking (default)
// 2: (unassigned)
// 3: allow variadic functions
// 3: (unassigned)
// 4: allow non-leaf functions
//
// At some point this may get another default and become switch-offable with -N.
......@@ -23,9 +23,6 @@
//
// The debug['m'] flag enables diagnostic output. a single -m is useful for verifying
// which calls get inlined or not, more is for debugging, and may go away at any point.
//
// TODO:
// - inline functions with ... args
package gc
......@@ -141,17 +138,6 @@ func caninl(fn *Node) {
Fatalf("caninl on non-typechecked function %v", fn)
}
// can't handle ... args yet
if Debug['l'] < 3 {
f := fn.Type.Params().Fields()
if len := f.Len(); len > 0 {
if t := f.Index(len - 1); t.Isddd() {
reason = "has ... args"
return
}
}
}
// Runtime package must not be instrumented.
// Instrument skips runtime package. However, some runtime code can be
// inlined into other packages and instrumented there. To avoid this,
......
// errorcheck -0 -m -l=3
// errorcheck -0 -m
// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Test more aggressive inlining (-l=3 allows variadic functions)
// Test inlining of variadic functions.
// See issue #18116.
package foo
......
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