mirror of
https://github.com/golang/go
synced 2024-11-27 04:21:24 -07:00
cmd/compile/internal/gc: better inliner diagnostics
When debugging inliner with -m -m print cost of complex functions, instead of simple "function too complex". This helps to understand, how close to inlining is this particular function. Change-Id: I6871f69b5b914d23fd0b43a24d7c6fc928f4b716 Reviewed-on: https://go-review.googlesource.com/63330 Run-TryBot: Ilya Tocar <ilya.tocar@intel.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
8e5ac83d43
commit
475df0ebcc
@ -157,7 +157,7 @@ func caninl(fn *Node) {
|
||||
return
|
||||
}
|
||||
if visitor.budget < 0 {
|
||||
reason = "function too complex"
|
||||
reason = fmt.Sprintf("function too complex: cost %d exceeds budget %d", maxBudget-visitor.budget, maxBudget)
|
||||
return
|
||||
}
|
||||
|
||||
@ -297,8 +297,8 @@ func (v *hairyVisitor) visit(n *Node) bool {
|
||||
v.budget -= 2
|
||||
}
|
||||
|
||||
if v.budget < 0 {
|
||||
v.reason = "function too complex"
|
||||
// When debugging, don't stop early, to get full cost of inlining this function
|
||||
if v.budget < 0 && Debug['m'] < 2 {
|
||||
return true
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user