From 298be61f3c74a010d3f6bb6c827b268cd3a5fca8 Mon Sep 17 00:00:00 2001 From: David Chase Date: Tue, 29 Oct 2019 14:44:54 -0400 Subject: [PATCH] cmd/compile: add json logging for escape analysis Change-Id: I7ca075e50d144aa449a20ebfbaf7337406e1e510 Reviewed-on: https://go-review.googlesource.com/c/go/+/204161 Run-TryBot: David Chase TryBot-Result: Gobot Gobot Reviewed-by: Cherry Zhang --- src/cmd/compile/internal/gc/escape.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/cmd/compile/internal/gc/escape.go b/src/cmd/compile/internal/gc/escape.go index bd4df1d84f..0f71f9990b 100644 --- a/src/cmd/compile/internal/gc/escape.go +++ b/src/cmd/compile/internal/gc/escape.go @@ -5,6 +5,7 @@ package gc import ( + "cmd/compile/internal/logopt" "cmd/compile/internal/types" "fmt" "math" @@ -1379,8 +1380,13 @@ func (e *Escape) finish(fns []*Node) { // Update n.Esc based on escape analysis results. if loc.escapes { - if Debug['m'] != 0 && n.Op != ONAME { - Warnl(n.Pos, "%S escapes to heap", n) + if n.Op != ONAME { + if Debug['m'] != 0 { + Warnl(n.Pos, "%S escapes to heap", n) + } + if logopt.Enabled() { + logopt.LogOpt(n.Pos, "escape", "escape", e.curfn.funcname()) + } } n.Esc = EscHeap addrescapes(n) -- 2.50.0