From 0e0bff840e3cd041aa9d103c6135862faae9c03f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Fri, 13 Sep 2019 15:45:18 +0100 Subject: [PATCH] cmd/compiler: skip some go/printer work in rulegen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We use go/format on the final output, so don't bother with the added tabwriter work to align comments when using go/printer. name old time/op new time/op delta Rulegen 2.53s ± 2% 2.48s ± 1% -2.20% (p=0.032 n=5+5) name old user-time/op new user-time/op delta Rulegen 11.2s ± 1% 10.8s ± 0% -3.72% (p=0.008 n=5+5) name old sys-time/op new sys-time/op delta Rulegen 218ms ±17% 207ms ±19% ~ (p=0.548 n=5+5) name old peak-RSS-bytes new peak-RSS-bytes delta Rulegen 184MB ± 3% 175MB ± 4% ~ (p=0.056 n=5+5) Change-Id: I53bad2ab15cace67415f2171fffcd13ed596e62b Reviewed-on: https://go-review.googlesource.com/c/go/+/195219 Run-TryBot: Daniel Martí Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/ssa/gen/rulegen.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cmd/compile/internal/ssa/gen/rulegen.go b/src/cmd/compile/internal/ssa/gen/rulegen.go index 3a18ca252c7179..ed3ed75638d1fc 100644 --- a/src/cmd/compile/internal/ssa/gen/rulegen.go +++ b/src/cmd/compile/internal/ssa/gen/rulegen.go @@ -607,7 +607,7 @@ func fprint(w io.Writer, n Node) { fprint(w, n.expr) fmt.Fprintf(w, " {\nbreak\n}\n") case ast.Node: - printer.Fprint(w, emptyFset, n) + printConfig.Fprint(w, emptyFset, n) if _, ok := n.(ast.Stmt); ok { fmt.Fprintln(w) } @@ -616,6 +616,10 @@ func fprint(w io.Writer, n Node) { } } +var printConfig = printer.Config{ + Mode: printer.RawFormat, // we use go/format later, so skip work here +} + var emptyFset = token.NewFileSet() // Node can be a Statement or an ast.Expr.