]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compiler: skip some go/printer work in rulegen
authorDaniel Martí <mvdan@mvdan.cc>
Fri, 13 Sep 2019 14:45:18 +0000 (15:45 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Mon, 16 Sep 2019 21:37:16 +0000 (21:37 +0000)
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í <mvdan@mvdan.cc>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/compile/internal/ssa/gen/rulegen.go

index 3a18ca252c71790e68dfe9b70df22e3ae2dd7c2e..ed3ed75638d1fc86d1bb230550f25a9fec461292 100644 (file)
@@ -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.