]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: deprecate derived info needed field
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Sun, 25 Aug 2024 14:06:49 +0000 (21:06 +0700)
committerGopher Robot <gobot@golang.org>
Mon, 26 Aug 2024 17:46:56 +0000 (17:46 +0000)
This field is unused since shape-based stenciling was added for Unified
IR (CL 421821). The derived types information is now explicitly using
derived-type dictionaries (CL 331829).

This CL follows the pattern used in CL 606035.

Updates #68778

Change-Id: Ie784b6443c0a651854bfbcebb8a5166b1481408b
Reviewed-on: https://go-review.googlesource.com/c/go/+/608216
Reviewed-by: Robert Griesemer <gri@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Tim King <taking@google.com>
src/cmd/compile/internal/importer/ureader.go
src/cmd/compile/internal/noder/reader.go
src/cmd/compile/internal/noder/writer.go
src/go/internal/gcimporter/ureader.go

index 5f14eb695e44dd580741f88af101900551f3299d..9a85764fee6ad9e3b6af64427ef7d78d2b9ac5ce 100644 (file)
@@ -483,7 +483,10 @@ func (pr *pkgReader) objDictIdx(idx pkgbits.Index) *readerDict {
                dict.derived = make([]derivedInfo, r.Len())
                dict.derivedTypes = make([]types2.Type, len(dict.derived))
                for i := range dict.derived {
-                       dict.derived[i] = derivedInfo{r.Reloc(pkgbits.RelocType), r.Bool()}
+                       dict.derived[i] = derivedInfo{idx: r.Reloc(pkgbits.RelocType)}
+                       if r.Version().Has(pkgbits.DerivedInfoNeeded) {
+                               assert(!r.Bool())
+                       }
                }
 
                pr.retireReader(r)
index 33fb7d35e1c0fad15cfdd7382fd0189b19cb2e7c..98ae60d51eb110d28966b9f88a0678cde7c8bc2b 100644 (file)
@@ -984,7 +984,10 @@ func (pr *pkgReader) objDictIdx(sym *types.Sym, idx index, implicits, explicits
        dict.derived = make([]derivedInfo, r.Len())
        dict.derivedTypes = make([]*types.Type, len(dict.derived))
        for i := range dict.derived {
-               dict.derived[i] = derivedInfo{r.Reloc(pkgbits.RelocType), r.Bool()}
+               dict.derived[i] = derivedInfo{idx: r.Reloc(pkgbits.RelocType)}
+               if r.Version().Has(pkgbits.DerivedInfoNeeded) {
+                       assert(!r.Bool())
+               }
        }
 
        // Runtime dictionary information; private to the compiler.
index ecc03cbd838f24bf7fc7d2b8bfc922fc6b511b3a..695fdcceea760256f65d521c6d0943f29b50c78d 100644 (file)
@@ -236,8 +236,7 @@ func (dict *writerDict) typeParamIndex(typ *types2.TypeParam) int {
 
 // A derivedInfo represents a reference to an encoded generic Go type.
 type derivedInfo struct {
-       idx    index
-       needed bool // TODO(mdempsky): Remove.
+       idx index
 }
 
 // A typeInfo represents a reference to an encoded Go type.
@@ -915,7 +914,9 @@ func (w *writer) objDict(obj types2.Object, dict *writerDict) {
        w.Len(nderived)
        for _, typ := range dict.derived {
                w.Reloc(pkgbits.RelocType, typ.idx)
-               w.Bool(typ.needed)
+               if w.Version().Has(pkgbits.DerivedInfoNeeded) {
+                       w.Bool(false)
+               }
        }
 
        // Write runtime dictionary information.
index b763ff5cca368618ac6f6e5e466707190cdd13be..88f27641c9c54b68d3743bd65e2d409f53a5608a 100644 (file)
@@ -575,7 +575,10 @@ func (pr *pkgReader) objDictIdx(idx pkgbits.Index) *readerDict {
                dict.derived = make([]derivedInfo, r.Len())
                dict.derivedTypes = make([]types.Type, len(dict.derived))
                for i := range dict.derived {
-                       dict.derived[i] = derivedInfo{r.Reloc(pkgbits.RelocType), r.Bool()}
+                       dict.derived[i] = derivedInfo{idx: r.Reloc(pkgbits.RelocType)}
+                       if r.Version().Has(pkgbits.DerivedInfoNeeded) {
+                               assert(!r.Bool())
+                       }
                }
 
                pr.retireReader(r)