From 47a0d467161c10f80bc3fcf7b0385b80d1194c7a Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sat, 14 May 2022 22:45:05 -0400 Subject: [PATCH] cmd/compile/internal/ssa: generate code via a //go:generate directive The standard way to generate code in a Go package is via //go:generate directives, which are invoked by the developer explicitly running: go generate import/path/of/said/package Switch to using that approach here. This way, developers don't need to learn and remember a custom way that each particular Go package may choose to implement its code generation. It also enables conveniences such as 'go generate -n' to discover how code is generated without running anything (this works on all packages that rely on //go:generate directives), being able to generate multiple packages at once and from any directory, and so on. Change-Id: I0e5b6a1edeff670a8e588befeef0c445613803c7 Reviewed-on: https://go-review.googlesource.com/c/go/+/460135 Reviewed-by: Dmitri Shuralyov Reviewed-by: Keith Randall Auto-Submit: Dmitri Shuralyov Run-TryBot: Dmitri Shuralyov TryBot-Result: Gopher Robot Reviewed-by: Keith Randall --- src/cmd/compile/internal/ssa/README.md | 4 ++-- src/cmd/compile/internal/ssa/_gen/README | 10 +++++++--- src/cmd/compile/internal/ssa/_gen/allocators.go | 2 +- src/cmd/compile/internal/ssa/_gen/main.go | 2 +- src/cmd/compile/internal/ssa/_gen/rulegen.go | 3 +-- src/cmd/compile/internal/ssa/allocators.go | 2 +- src/cmd/compile/internal/ssa/generate.go | 9 +++++++++ src/cmd/compile/internal/ssa/opGen.go | 2 +- src/cmd/compile/internal/ssa/rewrite386.go | 3 +-- src/cmd/compile/internal/ssa/rewrite386splitload.go | 3 +-- src/cmd/compile/internal/ssa/rewriteAMD64.go | 3 +-- src/cmd/compile/internal/ssa/rewriteAMD64latelower.go | 3 +-- src/cmd/compile/internal/ssa/rewriteAMD64splitload.go | 3 +-- src/cmd/compile/internal/ssa/rewriteARM.go | 3 +-- src/cmd/compile/internal/ssa/rewriteARM64.go | 3 +-- src/cmd/compile/internal/ssa/rewriteARM64latelower.go | 3 +-- src/cmd/compile/internal/ssa/rewriteLOONG64.go | 3 +-- src/cmd/compile/internal/ssa/rewriteMIPS.go | 3 +-- src/cmd/compile/internal/ssa/rewriteMIPS64.go | 3 +-- src/cmd/compile/internal/ssa/rewritePPC64.go | 3 +-- src/cmd/compile/internal/ssa/rewritePPC64latelower.go | 3 +-- src/cmd/compile/internal/ssa/rewriteRISCV64.go | 3 +-- .../compile/internal/ssa/rewriteRISCV64latelower.go | 3 +-- src/cmd/compile/internal/ssa/rewriteS390X.go | 3 +-- src/cmd/compile/internal/ssa/rewriteWasm.go | 3 +-- src/cmd/compile/internal/ssa/rewritedec.go | 3 +-- src/cmd/compile/internal/ssa/rewritedec64.go | 3 +-- src/cmd/compile/internal/ssa/rewritegeneric.go | 3 +-- 28 files changed, 43 insertions(+), 51 deletions(-) create mode 100644 src/cmd/compile/internal/ssa/generate.go diff --git a/src/cmd/compile/internal/ssa/README.md b/src/cmd/compile/internal/ssa/README.md index 27ac02b4a2..5dc4fbee6f 100644 --- a/src/cmd/compile/internal/ssa/README.md +++ b/src/cmd/compile/internal/ssa/README.md @@ -214,8 +214,8 @@ To read more on rewrite rules, have a look at the top comments in Similarly, the code to manage operators is also code generated from `_gen/*Ops.go`, as it is easier to maintain a few tables than a lot of code. -After changing the rules or operators, see [_gen/README](_gen/README) for -instructions on how to generate the Go code again. +After changing the rules or operators, run `go generate cmd/compile/internal/ssa` +to generate the Go code again.