]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/ir: remove OFUNCINST and InstExpr
authorMatthew Dempsky <mdempsky@google.com>
Fri, 18 Aug 2023 06:04:08 +0000 (23:04 -0700)
committerGopher Robot <gobot@golang.org>
Fri, 18 Aug 2023 22:38:55 +0000 (22:38 +0000)
These were only ever used by the pre-unified generics frontend. I
initially kept them because I thought they'd be useful for the unified
frontend eventually too, but that hasn't manifested.

Change-Id: Iaa31a76ac4d62533ec269d2a7141442b8e344180
Reviewed-on: https://go-review.googlesource.com/c/go/+/520608
Auto-Submit: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
src/cmd/compile/internal/ir/expr.go
src/cmd/compile/internal/ir/node.go
src/cmd/compile/internal/ir/node_gen.go
src/cmd/compile/internal/ir/op_string.go
src/cmd/compile/internal/typecheck/typecheck.go

index 69edd1c3cf8d1b890c6c703e27660d3eef6bc90d..5eed85ed84c0d0211674c2de885706b58f68cbce 100644 (file)
@@ -753,25 +753,6 @@ func (n *UnaryExpr) SetOp(op Op) {
        }
 }
 
-// Probably temporary: using Implicit() flag to mark generic function nodes that
-// are called to make getGfInfo analysis easier in one pre-order pass.
-func (n *InstExpr) Implicit() bool     { return n.flags&miniExprImplicit != 0 }
-func (n *InstExpr) SetImplicit(b bool) { n.flags.set(miniExprImplicit, b) }
-
-// An InstExpr is a generic function or type instantiation.
-type InstExpr struct {
-       miniExpr
-       X     Node
-       Targs []Ntype
-}
-
-func NewInstExpr(pos src.XPos, op Op, x Node, targs []Ntype) *InstExpr {
-       n := &InstExpr{X: x, Targs: targs}
-       n.pos = pos
-       n.op = op
-       return n
-}
-
 func IsZero(n Node) bool {
        switch n.Op() {
        case ONIL:
index 4ba560bba7b9aba9de45a0b5b77674e2b3569b3d..317c716b16a86e5f336b7cad8104d3f388daf494 100644 (file)
@@ -280,7 +280,6 @@ const (
        // OTYPESW:  X := Y.(type) (appears as .Tag of OSWITCH)
        //   X is nil if there is no type-switch variable
        OTYPESW
-       OFUNCINST // instantiation of a generic function
 
        // misc
        // intermediate representation of an inlined call.  Uses Init (assignments
index 2dda76b1e3f498595e9a1c31be23a8347106badd..debaeefc3d394044fa6b26ca56c66d88b3744f97 100644 (file)
@@ -866,40 +866,6 @@ func (n *InlinedCallExpr) editChildrenWithHidden(edit func(Node) Node) {
        editNodes(n.ReturnVars, edit)
 }
 
-func (n *InstExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) }
-func (n *InstExpr) copy() Node {
-       c := *n
-       c.init = copyNodes(c.init)
-       c.Targs = copyNtypes(c.Targs)
-       return &c
-}
-func (n *InstExpr) doChildren(do func(Node) bool) bool {
-       if doNodes(n.init, do) {
-               return true
-       }
-       if n.X != nil && do(n.X) {
-               return true
-       }
-       if doNtypes(n.Targs, do) {
-               return true
-       }
-       return false
-}
-func (n *InstExpr) editChildren(edit func(Node) Node) {
-       editNodes(n.init, edit)
-       if n.X != nil {
-               n.X = edit(n.X).(Node)
-       }
-       editNtypes(n.Targs, edit)
-}
-func (n *InstExpr) editChildrenWithHidden(edit func(Node) Node) {
-       editNodes(n.init, edit)
-       if n.X != nil {
-               n.X = edit(n.X).(Node)
-       }
-       editNtypes(n.Targs, edit)
-}
-
 func (n *JumpTableStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) }
 func (n *JumpTableStmt) copy() Node {
        c := *n
index 1d8d61da055c6fea30ae09636412b3de562cff60..500a534d14a47dd3ad422377a5e051292ea8ddf3 100644 (file)
@@ -144,31 +144,30 @@ func _() {
        _ = 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]
+       _ = x[OINLCALL-136]
+       _ = x[OEFACE-137]
+       _ = x[OITAB-138]
+       _ = x[OIDATA-139]
+       _ = x[OSPTR-140]
+       _ = x[OCFUNC-141]
+       _ = x[OCHECKNIL-142]
+       _ = x[ORESULT-143]
+       _ = x[OINLMARK-144]
+       _ = x[OLINKSYMOFFSET-145]
+       _ = x[OJUMPTABLE-146]
+       _ = x[ODYNAMICDOTTYPE-147]
+       _ = x[ODYNAMICDOTTYPE2-148]
+       _ = x[ODYNAMICTYPE-149]
+       _ = x[OTAILCALL-150]
+       _ = x[OGETG-151]
+       _ = x[OGETCALLERPC-152]
+       _ = x[OGETCALLERSP-153]
+       _ = x[OEND-154]
 }
 
-const _Op_name = "XXXNAMENONAMETYPELITERALNILADDSUBORXORADDSTRADDRANDANDAPPENDBYTES2STRBYTES2STRTMPRUNES2STRSTR2BYTESSTR2BYTESTMPSTR2RUNESSLICE2ARRSLICE2ARRPTRASAS2AS2DOTTYPEAS2FUNCAS2MAPRAS2RECVASOPCALLCALLFUNCCALLMETHCALLINTERCAPCLEARCLOSECLOSURECOMPLITMAPLITSTRUCTLITARRAYLITSLICELITPTRLITCONVCONVIFACECONVIDATACONVNOPCOPYDCLDCLFUNCDELETEDOTDOTPTRDOTMETHDOTINTERXDOTDOTTYPEDOTTYPE2EQNELTLEGEGTDEREFINDEXINDEXMAPKEYSTRUCTKEYLENMAKEMAKECHANMAKEMAPMAKESLICEMAKESLICECOPYMULDIVMODLSHRSHANDANDNOTNEWNOTBITNOTPLUSNEGORORPANICPRINTPRINTNPARENSENDSLICESLICEARRSLICESTRSLICE3SLICE3ARRSLICEHEADERSTRINGHEADERRECOVERRECOVERFPRECVRUNESTRSELRECV2MINMAXREALIMAGCOMPLEXALIGNOFOFFSETOFSIZEOFUNSAFEADDUNSAFESLICEUNSAFESLICEDATAUNSAFESTRINGUNSAFESTRINGDATAMETHEXPRMETHVALUEBLOCKBREAKCASECONTINUEDEFERFALLFORGOTOIFLABELGORANGERETURNSELECTSWITCHTYPESWFUNCINSTINLCALLEFACEITABIDATASPTRCFUNCCHECKNILRESULTINLMARKLINKSYMOFFSETJUMPTABLEDYNAMICDOTTYPEDYNAMICDOTTYPE2DYNAMICTYPETAILCALLGETGGETCALLERPCGETCALLERSPEND"
+const _Op_name = "XXXNAMENONAMETYPELITERALNILADDSUBORXORADDSTRADDRANDANDAPPENDBYTES2STRBYTES2STRTMPRUNES2STRSTR2BYTESSTR2BYTESTMPSTR2RUNESSLICE2ARRSLICE2ARRPTRASAS2AS2DOTTYPEAS2FUNCAS2MAPRAS2RECVASOPCALLCALLFUNCCALLMETHCALLINTERCAPCLEARCLOSECLOSURECOMPLITMAPLITSTRUCTLITARRAYLITSLICELITPTRLITCONVCONVIFACECONVIDATACONVNOPCOPYDCLDCLFUNCDELETEDOTDOTPTRDOTMETHDOTINTERXDOTDOTTYPEDOTTYPE2EQNELTLEGEGTDEREFINDEXINDEXMAPKEYSTRUCTKEYLENMAKEMAKECHANMAKEMAPMAKESLICEMAKESLICECOPYMULDIVMODLSHRSHANDANDNOTNEWNOTBITNOTPLUSNEGORORPANICPRINTPRINTNPARENSENDSLICESLICEARRSLICESTRSLICE3SLICE3ARRSLICEHEADERSTRINGHEADERRECOVERRECOVERFPRECVRUNESTRSELRECV2MINMAXREALIMAGCOMPLEXALIGNOFOFFSETOFSIZEOFUNSAFEADDUNSAFESLICEUNSAFESLICEDATAUNSAFESTRINGUNSAFESTRINGDATAMETHEXPRMETHVALUEBLOCKBREAKCASECONTINUEDEFERFALLFORGOTOIFLABELGORANGERETURNSELECTSWITCHTYPESWINLCALLEFACEITABIDATASPTRCFUNCCHECKNILRESULTINLMARKLINKSYMOFFSETJUMPTABLEDYNAMICDOTTYPEDYNAMICDOTTYPE2DYNAMICTYPETAILCALLGETGGETCALLERPCGETCALLERSPEND"
 
-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}
+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, 823, 828, 832, 837, 841, 846, 854, 860, 867, 880, 889, 903, 918, 929, 937, 941, 952, 963, 966}
 
 func (i Op) String() string {
        if i >= Op(len(_Op_index)-1) {
index 2bc7f19af693e29ca877a9e860f04d70b60ba5e9..16e6db6a25a8efbb39c31dbcbf9b289d12f5d88a 100644 (file)
@@ -673,9 +673,6 @@ func typecheckargs(n ir.InitNode) {
 // rewriting f()(...) to t0 := f(); t0(...).
 func RewriteNonNameCall(n *ir.CallExpr) {
        np := &n.X
-       if inst, ok := (*np).(*ir.InstExpr); ok && inst.Op() == ir.OFUNCINST {
-               np = &inst.X
-       }
        if dot, ok := (*np).(*ir.SelectorExpr); ok && (dot.Op() == ir.ODOTMETH || dot.Op() == ir.ODOTINTER || dot.Op() == ir.OMETHVALUE) {
                np = &dot.X // peel away method selector
        }