diff options
author | Matthew Dempsky <mdempsky@google.com> | 2020-11-23 13:42:43 -0800 |
---|---|---|
committer | Matthew Dempsky <mdempsky@google.com> | 2020-11-24 19:50:09 +0000 |
commit | 742c05e3bce2cf2f4631762cb5fb733d2a92bc91 (patch) | |
tree | 943cecaf2c6429f458726ea215721382897dbd74 /src/cmd/compile/internal/gc/export.go | |
parent | 015423a15bcfae148d5121bcf4ba5b50d0847cd0 (diff) | |
download | go-742c05e3bce2cf2f4631762cb5fb733d2a92bc91.tar.gz go-742c05e3bce2cf2f4631762cb5fb733d2a92bc91.zip |
[dev.regabi] cmd/compile: prep refactoring for switching to go/constant
This CL replaces gc.Ctype (along with its CTINT, etc. constants) with
constant.Kind; renames Val.Ctype to Val.Kind; and replaces a handful
of abstraction-violating patterns that can be readily expressed
differently.
The next commit will actually replace Val with constant.Value.
Passes toolstash-check.
[git-generate]
cd src/cmd/compile/internal/gc
sed -i 's/type Ctype uint8/type Ctype = constant.Kind/' const.go
goimports -w const.go
rf '
inline -rm Ctype
mv Val.Ctype Val.Kind
ex import "go/constant"; \
CTxxx -> constant.Unknown; \
CTINT -> constant.Int; \
CTFLT -> constant.Float; \
CTCPLX -> constant.Complex; \
CTBOOL -> constant.Bool; \
CTSTR -> constant.String
rm CTxxx CTINT CTFLT CTCPLX CTBOOL CTSTR
ex import "cmd/compile/internal/types"; \
var t *types.Type; \
var v, v2 Val; \
v.U.(*Mpint).Cmp(maxintval[TINT]) > 0 -> doesoverflow(v, types.Types[TINT]); \
v.U.(*Mpint).Cmp(v2.U.(*Mpint)) > 0 -> compareOp(v, OGT, v2); \
maxintval[t.Etype].Cmp(maxintval[TUINT]) <= 0 -> t.Size() <= types.Types[TUINT].Size(); \
maxintval[t.Etype].Cmp(maxintval[TUINT]) > 0 -> t.Size() > types.Types[TUINT].Size();
'
go test cmd/compile -u
Change-Id: I6c22ec0597508845f88eee639a0d76cbaa66d08f
Reviewed-on: https://go-review.googlesource.com/c/go/+/272653
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
Trust: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/gc/export.go')
-rw-r--r-- | src/cmd/compile/internal/gc/export.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/gc/export.go b/src/cmd/compile/internal/gc/export.go index 5179b6c05b..15251062b4 100644 --- a/src/cmd/compile/internal/gc/export.go +++ b/src/cmd/compile/internal/gc/export.go @@ -9,6 +9,7 @@ import ( "cmd/internal/bio" "cmd/internal/src" "fmt" + "go/constant" ) var ( @@ -208,8 +209,8 @@ func dumpasmhdr() { } switch n.Op { case OLITERAL: - t := n.Val().Ctype() - if t == CTFLT || t == CTCPLX { + t := n.Val().Kind() + if t == constant.Float || t == constant.Complex { break } fmt.Fprintf(b, "#define const_%s %#v\n", n.Sym.Name, n.Val()) |