aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Dempsky <mdempsky@google.com>2023-08-16 17:29:41 -0700
committerGopher Robot <gobot@golang.org>2023-08-17 16:36:37 +0000
commit36fc721419f0fd9e2088f67b3bc43e8869f4a4c8 (patch)
treecdfb1841230b597e8bc39c86bd935ee54ee1c385 /src
parentff47dd1d665d30d5f3d26f031192afebb4422c3c (diff)
downloadgo-36fc721419f0fd9e2088f67b3bc43e8869f4a4c8.tar.gz
cmd/compile/internal/ir: remove ODCLCONST and ODCLTYPE
These aren't constructed by the unified frontend. Change-Id: Ied87baa9656920bd11055464bc605933ff448e21 Reviewed-on: https://go-review.googlesource.com/c/go/+/520264 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Auto-Submit: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/compile/internal/escape/stmt.go2
-rw-r--r--src/cmd/compile/internal/inline/inl.go7
-rw-r--r--src/cmd/compile/internal/ir/node.go4
-rw-r--r--src/cmd/compile/internal/ir/op_string.go218
-rw-r--r--src/cmd/compile/internal/ir/stmt.go2
-rw-r--r--src/cmd/compile/internal/ssagen/ssa.go3
-rw-r--r--src/cmd/compile/internal/typecheck/typecheck.go11
-rw-r--r--src/cmd/compile/internal/walk/order.go2
-rw-r--r--src/cmd/compile/internal/walk/stmt.go2
9 files changed, 114 insertions, 137 deletions
diff --git a/src/cmd/compile/internal/escape/stmt.go b/src/cmd/compile/internal/escape/stmt.go
index cb2b72fa6b..8b66c14cb6 100644
--- a/src/cmd/compile/internal/escape/stmt.go
+++ b/src/cmd/compile/internal/escape/stmt.go
@@ -31,7 +31,7 @@ func (e *escape) stmt(n ir.Node) {
default:
base.Fatalf("unexpected stmt: %v", n)
- case ir.ODCLCONST, ir.ODCLTYPE, ir.OFALL, ir.OINLMARK:
+ case ir.OFALL, ir.OINLMARK:
// nop
case ir.OBREAK, ir.OCONTINUE, ir.OGOTO:
diff --git a/src/cmd/compile/internal/inline/inl.go b/src/cmd/compile/internal/inline/inl.go
index b51498a56c..078fba594d 100644
--- a/src/cmd/compile/internal/inline/inl.go
+++ b/src/cmd/compile/internal/inline/inl.go
@@ -647,10 +647,7 @@ func (v *hairyVisitor) doNode(n ir.Node) bool {
// should try to account for that if we're going to account for captures.
v.budget -= 15
- case ir.OGO,
- ir.ODEFER,
- ir.ODCLTYPE, // can't print yet
- ir.OTAILCALL:
+ case ir.OGO, ir.ODEFER, ir.OTAILCALL:
v.reason = "unhandled op " + n.Op().String()
return true
@@ -682,7 +679,7 @@ func (v *hairyVisitor) doNode(n ir.Node) bool {
// This doesn't produce code, but the children might.
v.budget++ // undo default cost
- case ir.ODCLCONST, ir.OFALL, ir.OTYPE:
+ case ir.OFALL, ir.OTYPE:
// These nodes don't produce code; omit from inlining budget.
return false
diff --git a/src/cmd/compile/internal/ir/node.go b/src/cmd/compile/internal/ir/node.go
index 769340e9cd..a6a4766336 100644
--- a/src/cmd/compile/internal/ir/node.go
+++ b/src/cmd/compile/internal/ir/node.go
@@ -175,9 +175,7 @@ const (
ODCL // var X (declares X of type X.Type)
// Used during parsing but don't last.
- ODCLFUNC // func f() or func (r) f()
- ODCLCONST // const pi = 3.14
- ODCLTYPE // type Int int or type Int = int
+ ODCLFUNC // func f() or func (r) f()
ODELETE // delete(Args)
ODOT // X.Sel (X is of struct type)
diff --git a/src/cmd/compile/internal/ir/op_string.go b/src/cmd/compile/internal/ir/op_string.go
index 571ac6cb45..1d8d61da05 100644
--- a/src/cmd/compile/internal/ir/op_string.go
+++ b/src/cmd/compile/internal/ir/op_string.go
@@ -58,119 +58,117 @@ func _() {
_ = x[OCOPY-47]
_ = x[ODCL-48]
_ = x[ODCLFUNC-49]
- _ = x[ODCLCONST-50]
- _ = x[ODCLTYPE-51]
- _ = x[ODELETE-52]
- _ = x[ODOT-53]
- _ = x[ODOTPTR-54]
- _ = x[ODOTMETH-55]
- _ = x[ODOTINTER-56]
- _ = x[OXDOT-57]
- _ = x[ODOTTYPE-58]
- _ = x[ODOTTYPE2-59]
- _ = x[OEQ-60]
- _ = x[ONE-61]
- _ = x[OLT-62]
- _ = x[OLE-63]
- _ = x[OGE-64]
- _ = x[OGT-65]
- _ = x[ODEREF-66]
- _ = x[OINDEX-67]
- _ = x[OINDEXMAP-68]
- _ = x[OKEY-69]
- _ = x[OSTRUCTKEY-70]
- _ = x[OLEN-71]
- _ = x[OMAKE-72]
- _ = x[OMAKECHAN-73]
- _ = x[OMAKEMAP-74]
- _ = x[OMAKESLICE-75]
- _ = x[OMAKESLICECOPY-76]
- _ = x[OMUL-77]
- _ = x[ODIV-78]
- _ = x[OMOD-79]
- _ = x[OLSH-80]
- _ = x[ORSH-81]
- _ = x[OAND-82]
- _ = x[OANDNOT-83]
- _ = x[ONEW-84]
- _ = x[ONOT-85]
- _ = x[OBITNOT-86]
- _ = x[OPLUS-87]
- _ = x[ONEG-88]
- _ = x[OOROR-89]
- _ = x[OPANIC-90]
- _ = x[OPRINT-91]
- _ = x[OPRINTN-92]
- _ = x[OPAREN-93]
- _ = x[OSEND-94]
- _ = x[OSLICE-95]
- _ = x[OSLICEARR-96]
- _ = x[OSLICESTR-97]
- _ = x[OSLICE3-98]
- _ = x[OSLICE3ARR-99]
- _ = x[OSLICEHEADER-100]
- _ = x[OSTRINGHEADER-101]
- _ = x[ORECOVER-102]
- _ = x[ORECOVERFP-103]
- _ = x[ORECV-104]
- _ = x[ORUNESTR-105]
- _ = x[OSELRECV2-106]
- _ = x[OMIN-107]
- _ = x[OMAX-108]
- _ = x[OREAL-109]
- _ = x[OIMAG-110]
- _ = x[OCOMPLEX-111]
- _ = x[OALIGNOF-112]
- _ = x[OOFFSETOF-113]
- _ = x[OSIZEOF-114]
- _ = x[OUNSAFEADD-115]
- _ = x[OUNSAFESLICE-116]
- _ = x[OUNSAFESLICEDATA-117]
- _ = x[OUNSAFESTRING-118]
- _ = x[OUNSAFESTRINGDATA-119]
- _ = x[OMETHEXPR-120]
- _ = x[OMETHVALUE-121]
- _ = x[OBLOCK-122]
- _ = x[OBREAK-123]
- _ = x[OCASE-124]
- _ = x[OCONTINUE-125]
- _ = x[ODEFER-126]
- _ = x[OFALL-127]
- _ = x[OFOR-128]
- _ = x[OGOTO-129]
- _ = x[OIF-130]
- _ = x[OLABEL-131]
- _ = x[OGO-132]
- _ = x[ORANGE-133]
- _ = x[ORETURN-134]
- _ = x[OSELECT-135]
- _ = x[OSWITCH-136]
- _ = x[OTYPESW-137]
- _ = x[OFUNCINST-138]
- _ = x[OINLCALL-139]
- _ = x[OEFACE-140]
- _ = x[OITAB-141]
- _ = x[OIDATA-142]
- _ = x[OSPTR-143]
- _ = x[OCFUNC-144]
- _ = x[OCHECKNIL-145]
- _ = x[ORESULT-146]
- _ = x[OINLMARK-147]
- _ = x[OLINKSYMOFFSET-148]
- _ = x[OJUMPTABLE-149]
- _ = x[ODYNAMICDOTTYPE-150]
- _ = x[ODYNAMICDOTTYPE2-151]
- _ = x[ODYNAMICTYPE-152]
- _ = x[OTAILCALL-153]
- _ = x[OGETG-154]
- _ = x[OGETCALLERPC-155]
- _ = x[OGETCALLERSP-156]
- _ = x[OEND-157]
+ _ = x[ODELETE-50]
+ _ = x[ODOT-51]
+ _ = x[ODOTPTR-52]
+ _ = x[ODOTMETH-53]
+ _ = x[ODOTINTER-54]
+ _ = x[OXDOT-55]
+ _ = x[ODOTTYPE-56]
+ _ = x[ODOTTYPE2-57]
+ _ = x[OEQ-58]
+ _ = x[ONE-59]
+ _ = x[OLT-60]
+ _ = x[OLE-61]
+ _ = x[OGE-62]
+ _ = x[OGT-63]
+ _ = x[ODEREF-64]
+ _ = x[OINDEX-65]
+ _ = x[OINDEXMAP-66]
+ _ = x[OKEY-67]
+ _ = x[OSTRUCTKEY-68]
+ _ = x[OLEN-69]
+ _ = x[OMAKE-70]
+ _ = x[OMAKECHAN-71]
+ _ = x[OMAKEMAP-72]
+ _ = x[OMAKESLICE-73]
+ _ = x[OMAKESLICECOPY-74]
+ _ = x[OMUL-75]
+ _ = x[ODIV-76]
+ _ = x[OMOD-77]
+ _ = x[OLSH-78]
+ _ = x[ORSH-79]
+ _ = x[OAND-80]
+ _ = x[OANDNOT-81]
+ _ = x[ONEW-82]
+ _ = x[ONOT-83]
+ _ = x[OBITNOT-84]
+ _ = x[OPLUS-85]
+ _ = x[ONEG-86]
+ _ = x[OOROR-87]
+ _ = x[OPANIC-88]
+ _ = x[OPRINT-89]
+ _ = x[OPRINTN-90]
+ _ = x[OPAREN-91]
+ _ = x[OSEND-92]
+ _ = x[OSLICE-93]
+ _ = x[OSLICEARR-94]
+ _ = x[OSLICESTR-95]
+ _ = x[OSLICE3-96]
+ _ = x[OSLICE3ARR-97]
+ _ = x[OSLICEHEADER-98]
+ _ = x[OSTRINGHEADER-99]
+ _ = x[ORECOVER-100]
+ _ = x[ORECOVERFP-101]
+ _ = x[ORECV-102]
+ _ = x[ORUNESTR-103]
+ _ = x[OSELRECV2-104]
+ _ = x[OMIN-105]
+ _ = x[OMAX-106]
+ _ = x[OREAL-107]
+ _ = x[OIMAG-108]
+ _ = x[OCOMPLEX-109]
+ _ = x[OALIGNOF-110]
+ _ = x[OOFFSETOF-111]
+ _ = x[OSIZEOF-112]
+ _ = x[OUNSAFEADD-113]
+ _ = x[OUNSAFESLICE-114]
+ _ = x[OUNSAFESLICEDATA-115]
+ _ = x[OUNSAFESTRING-116]
+ _ = x[OUNSAFESTRINGDATA-117]
+ _ = x[OMETHEXPR-118]
+ _ = x[OMETHVALUE-119]
+ _ = x[OBLOCK-120]
+ _ = x[OBREAK-121]
+ _ = x[OCASE-122]
+ _ = x[OCONTINUE-123]
+ _ = x[ODEFER-124]
+ _ = x[OFALL-125]
+ _ = x[OFOR-126]
+ _ = x[OGOTO-127]
+ _ = x[OIF-128]
+ _ = x[OLABEL-129]
+ _ = x[OGO-130]
+ _ = x[ORANGE-131]
+ _ = x[ORETURN-132]
+ _ = x[OSELECT-133]
+ _ = x[OSWITCH-134]
+ _ = x[OTYPESW-135]
+ _ = x[OFUNCINST-136]
+ _ = x[OINLCALL-137]
+ _ = x[OEFACE-138]
+ _ = x[OITAB-139]
+ _ = x[OIDATA-140]
+ _ = x[OSPTR-141]
+ _ = x[OCFUNC-142]
+ _ = x[OCHECKNIL-143]
+ _ = x[ORESULT-144]
+ _ = x[OINLMARK-145]
+ _ = x[OLINKSYMOFFSET-146]
+ _ = x[OJUMPTABLE-147]
+ _ = x[ODYNAMICDOTTYPE-148]
+ _ = x[ODYNAMICDOTTYPE2-149]
+ _ = x[ODYNAMICTYPE-150]
+ _ = x[OTAILCALL-151]
+ _ = x[OGETG-152]
+ _ = x[OGETCALLERPC-153]
+ _ = x[OGETCALLERSP-154]
+ _ = x[OEND-155]
}
-const _Op_name = "XXXNAMENONAMETYPELITERALNILADDSUBORXORADDSTRADDRANDANDAPPENDBYTES2STRBYTES2STRTMPRUNES2STRSTR2BYTESSTR2BYTESTMPSTR2RUNESSLICE2ARRSLICE2ARRPTRASAS2AS2DOTTYPEAS2FUNCAS2MAPRAS2RECVASOPCALLCALLFUNCCALLMETHCALLINTERCAPCLEARCLOSECLOSURECOMPLITMAPLITSTRUCTLITARRAYLITSLICELITPTRLITCONVCONVIFACECONVIDATACONVNOPCOPYDCLDCLFUNCDCLCONSTDCLTYPEDELETEDOTDOTPTRDOTMETHDOTINTERXDOTDOTTYPEDOTTYPE2EQNELTLEGEGTDEREFINDEXINDEXMAPKEYSTRUCTKEYLENMAKEMAKECHANMAKEMAPMAKESLICEMAKESLICECOPYMULDIVMODLSHRSHANDANDNOTNEWNOTBITNOTPLUSNEGORORPANICPRINTPRINTNPARENSENDSLICESLICEARRSLICESTRSLICE3SLICE3ARRSLICEHEADERSTRINGHEADERRECOVERRECOVERFPRECVRUNESTRSELRECV2MINMAXREALIMAGCOMPLEXALIGNOFOFFSETOFSIZEOFUNSAFEADDUNSAFESLICEUNSAFESLICEDATAUNSAFESTRINGUNSAFESTRINGDATAMETHEXPRMETHVALUEBLOCKBREAKCASECONTINUEDEFERFALLFORGOTOIFLABELGORANGERETURNSELECTSWITCHTYPESWFUNCINSTINLCALLEFACEITABIDATASPTRCFUNCCHECKNILRESULTINLMARKLINKSYMOFFSETJUMPTABLEDYNAMICDOTTYPEDYNAMICDOTTYPE2DYNAMICTYPETAILCALLGETGGETCALLERPCGETCALLERSPEND"
+const _Op_name = "XXXNAMENONAMETYPELITERALNILADDSUBORXORADDSTRADDRANDANDAPPENDBYTES2STRBYTES2STRTMPRUNES2STRSTR2BYTESSTR2BYTESTMPSTR2RUNESSLICE2ARRSLICE2ARRPTRASAS2AS2DOTTYPEAS2FUNCAS2MAPRAS2RECVASOPCALLCALLFUNCCALLMETHCALLINTERCAPCLEARCLOSECLOSURECOMPLITMAPLITSTRUCTLITARRAYLITSLICELITPTRLITCONVCONVIFACECONVIDATACONVNOPCOPYDCLDCLFUNCDELETEDOTDOTPTRDOTMETHDOTINTERXDOTDOTTYPEDOTTYPE2EQNELTLEGEGTDEREFINDEXINDEXMAPKEYSTRUCTKEYLENMAKEMAKECHANMAKEMAPMAKESLICEMAKESLICECOPYMULDIVMODLSHRSHANDANDNOTNEWNOTBITNOTPLUSNEGORORPANICPRINTPRINTNPARENSENDSLICESLICEARRSLICESTRSLICE3SLICE3ARRSLICEHEADERSTRINGHEADERRECOVERRECOVERFPRECVRUNESTRSELRECV2MINMAXREALIMAGCOMPLEXALIGNOFOFFSETOFSIZEOFUNSAFEADDUNSAFESLICEUNSAFESLICEDATAUNSAFESTRINGUNSAFESTRINGDATAMETHEXPRMETHVALUEBLOCKBREAKCASECONTINUEDEFERFALLFORGOTOIFLABELGORANGERETURNSELECTSWITCHTYPESWFUNCINSTINLCALLEFACEITABIDATASPTRCFUNCCHECKNILRESULTINLMARKLINKSYMOFFSETJUMPTABLEDYNAMICDOTTYPEDYNAMICDOTTYPE2DYNAMICTYPETAILCALLGETGGETCALLERPCGETCALLERSPEND"
-var _Op_index = [...]uint16{0, 3, 7, 13, 17, 24, 27, 30, 33, 35, 38, 44, 48, 54, 60, 69, 81, 90, 99, 111, 120, 129, 141, 143, 146, 156, 163, 170, 177, 181, 185, 193, 201, 210, 213, 218, 223, 230, 237, 243, 252, 260, 268, 274, 278, 287, 296, 303, 307, 310, 317, 325, 332, 338, 341, 347, 354, 362, 366, 373, 381, 383, 385, 387, 389, 391, 393, 398, 403, 411, 414, 423, 426, 430, 438, 445, 454, 467, 470, 473, 476, 479, 482, 485, 491, 494, 497, 503, 507, 510, 514, 519, 524, 530, 535, 539, 544, 552, 560, 566, 575, 586, 598, 605, 614, 618, 625, 633, 636, 639, 643, 647, 654, 661, 669, 675, 684, 695, 710, 722, 738, 746, 755, 760, 765, 769, 777, 782, 786, 789, 793, 795, 800, 802, 807, 813, 819, 825, 831, 839, 846, 851, 855, 860, 864, 869, 877, 883, 890, 903, 912, 926, 941, 952, 960, 964, 975, 986, 989}
+var _Op_index = [...]uint16{0, 3, 7, 13, 17, 24, 27, 30, 33, 35, 38, 44, 48, 54, 60, 69, 81, 90, 99, 111, 120, 129, 141, 143, 146, 156, 163, 170, 177, 181, 185, 193, 201, 210, 213, 218, 223, 230, 237, 243, 252, 260, 268, 274, 278, 287, 296, 303, 307, 310, 317, 323, 326, 332, 339, 347, 351, 358, 366, 368, 370, 372, 374, 376, 378, 383, 388, 396, 399, 408, 411, 415, 423, 430, 439, 452, 455, 458, 461, 464, 467, 470, 476, 479, 482, 488, 492, 495, 499, 504, 509, 515, 520, 524, 529, 537, 545, 551, 560, 571, 583, 590, 599, 603, 610, 618, 621, 624, 628, 632, 639, 646, 654, 660, 669, 680, 695, 707, 723, 731, 740, 745, 750, 754, 762, 767, 771, 774, 778, 780, 785, 787, 792, 798, 804, 810, 816, 824, 831, 836, 840, 845, 849, 854, 862, 868, 875, 888, 897, 911, 926, 937, 945, 949, 960, 971, 974}
func (i Op) String() string {
if i >= Op(len(_Op_index)-1) {
diff --git a/src/cmd/compile/internal/ir/stmt.go b/src/cmd/compile/internal/ir/stmt.go
index b6653ab528..de50f1f4a4 100644
--- a/src/cmd/compile/internal/ir/stmt.go
+++ b/src/cmd/compile/internal/ir/stmt.go
@@ -23,7 +23,7 @@ func NewDecl(pos src.XPos, op Op, x *Name) *Decl {
switch op {
default:
panic("invalid Decl op " + op.String())
- case ODCL, ODCLCONST, ODCLTYPE:
+ case ODCL:
n.op = op
}
return n
diff --git a/src/cmd/compile/internal/ssagen/ssa.go b/src/cmd/compile/internal/ssagen/ssa.go
index 74fa6b7fdd..64101a28dc 100644
--- a/src/cmd/compile/internal/ssagen/ssa.go
+++ b/src/cmd/compile/internal/ssagen/ssa.go
@@ -1440,8 +1440,7 @@ func (s *state) stmt(n ir.Node) {
n := n.(*ir.BlockStmt)
s.stmtList(n.List)
- // No-ops
- case ir.ODCLCONST, ir.ODCLTYPE, ir.OFALL:
+ case ir.OFALL: // no-op
// Expression statements
case ir.OCALLFUNC:
diff --git a/src/cmd/compile/internal/typecheck/typecheck.go b/src/cmd/compile/internal/typecheck/typecheck.go
index 5dac366b10..8790eac28a 100644
--- a/src/cmd/compile/internal/typecheck/typecheck.go
+++ b/src/cmd/compile/internal/typecheck/typecheck.go
@@ -802,17 +802,6 @@ func typecheck1(n ir.Node, top int) ir.Node {
case ir.ODCLFUNC:
tcFunc(n.(*ir.Func))
return n
-
- case ir.ODCLCONST:
- n := n.(*ir.Decl)
- n.X = Expr(n.X).(*ir.Name)
- return n
-
- case ir.ODCLTYPE:
- n := n.(*ir.Decl)
- n.X = typecheck(n.X, ctxType).(*ir.Name)
- types.CheckSize(n.X.Type())
- return n
}
// No return n here!
diff --git a/src/cmd/compile/internal/walk/order.go b/src/cmd/compile/internal/walk/order.go
index 057e0b75b8..3e3bda15e7 100644
--- a/src/cmd/compile/internal/walk/order.go
+++ b/src/cmd/compile/internal/walk/order.go
@@ -713,8 +713,6 @@ func (o *orderState) stmt(n ir.Node) {
case ir.OBREAK,
ir.OCONTINUE,
ir.ODCL,
- ir.ODCLCONST,
- ir.ODCLTYPE,
ir.OFALL,
ir.OGOTO,
ir.OLABEL,
diff --git a/src/cmd/compile/internal/walk/stmt.go b/src/cmd/compile/internal/walk/stmt.go
index c6a03d2bd8..2356f803d3 100644
--- a/src/cmd/compile/internal/walk/stmt.go
+++ b/src/cmd/compile/internal/walk/stmt.go
@@ -88,8 +88,6 @@ func walkStmt(n ir.Node) ir.Node {
ir.OLABEL,
ir.OJUMPTABLE,
ir.ODCL,
- ir.ODCLCONST,
- ir.ODCLTYPE,
ir.OCHECKNIL:
return n