runtime: inline and remove eqtype
authorIan Lance Taylor <ian@gcc.gnu.org>
Fri, 21 Jun 2019 22:21:40 +0000 (22:21 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 21 Jun 2019 22:21:40 +0000 (22:21 +0000)
    Now that type equality is just a pointer equality, write it
    inlined and remove the eqtype function.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/182978

From-SVN: r272578

gcc/go/gofrontend/MERGE
libgo/go/runtime/alg.go
libgo/go/runtime/iface.go
libgo/go/runtime/type.go

index 252e9b1bc52565c424e27e55cc12ee269359a32a..13e366a78c12b8c6f708fb6b73ca336826f0ade6 100644 (file)
@@ -1,4 +1,4 @@
-5bca69ab3b41df535193474baecc3a8a4c0b3dbe
+fdf0af774aabb31ba8a62f358b7b40dfe8b35da9
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index c6bc6b624934b2873840d2a17439f30be289fa70..ec951e38cf51cabfab3b6ae5c88a0fff8dd03687 100644 (file)
@@ -205,7 +205,7 @@ func nilinterequal(p, q unsafe.Pointer) bool {
 }
 func efaceeq(x, y eface) bool {
        t := x._type
-       if !eqtype(t, y._type) {
+       if t != y._type {
                return false
        }
        if t == nil {
@@ -229,7 +229,7 @@ func ifaceeq(x, y iface) bool {
                return false
        }
        t := *(**_type)(xtab)
-       if !eqtype(t, *(**_type)(y.tab)) {
+       if t != *(**_type)(y.tab) {
                return false
        }
        eq := t.equalfn
@@ -247,7 +247,7 @@ func ifacevaleq(x iface, t *_type, p unsafe.Pointer) bool {
                return false
        }
        xt := *(**_type)(x.tab)
-       if !eqtype(xt, t) {
+       if xt != t {
                return false
        }
        eq := t.equalfn
@@ -268,7 +268,7 @@ func ifaceefaceeq(x iface, y eface) bool {
                return false
        }
        xt := *(**_type)(x.tab)
-       if !eqtype(xt, y._type) {
+       if xt != y._type {
                return false
        }
        eq := xt.equalfn
@@ -285,7 +285,7 @@ func efacevaleq(x eface, t *_type, p unsafe.Pointer) bool {
        if x._type == nil {
                return false
        }
-       if !eqtype(x._type, t) {
+       if x._type != t {
                return false
        }
        eq := t.equalfn
index 6def7388df7948a58f655aaee1eab77f87de8acf..d434f9e0afc1c74f5a9716ccd37a05c0011199dc 100644 (file)
@@ -233,7 +233,7 @@ func (m *itab) init() string {
                        ri++
                }
 
-               if !eqtype(lhsMethod.typ, rhsMethod.mtyp) {
+               if lhsMethod.typ != rhsMethod.mtyp {
                        m.methods[1] = nil
                        return *lhsMethod.name
                }
@@ -406,7 +406,7 @@ func ifaceI2I2(inter *_type, i iface) (iface, bool) {
 
 // Convert an empty interface to a pointer non-interface type.
 func ifaceE2T2P(t *_type, e eface) (unsafe.Pointer, bool) {
-       if !eqtype(t, e._type) {
+       if t != e._type {
                return nil, false
        } else {
                return e.data, true
@@ -415,7 +415,7 @@ func ifaceE2T2P(t *_type, e eface) (unsafe.Pointer, bool) {
 
 // Convert a non-empty interface to a pointer non-interface type.
 func ifaceI2T2P(t *_type, i iface) (unsafe.Pointer, bool) {
-       if i.tab == nil || !eqtype(t, *(**_type)(i.tab)) {
+       if i.tab == nil || t != *(**_type)(i.tab) {
                return nil, false
        } else {
                return i.data, true
@@ -424,7 +424,7 @@ func ifaceI2T2P(t *_type, i iface) (unsafe.Pointer, bool) {
 
 // Convert an empty interface to a non-pointer non-interface type.
 func ifaceE2T2(t *_type, e eface, ret unsafe.Pointer) bool {
-       if !eqtype(t, e._type) {
+       if t != e._type {
                typedmemclr(t, ret)
                return false
        } else {
@@ -439,7 +439,7 @@ func ifaceE2T2(t *_type, e eface, ret unsafe.Pointer) bool {
 
 // Convert a non-empty interface to a non-pointer non-interface type.
 func ifaceI2T2(t *_type, i iface, ret unsafe.Pointer) bool {
-       if i.tab == nil || !eqtype(t, *(**_type)(i.tab)) {
+       if i.tab == nil || t != *(**_type)(i.tab) {
                typedmemclr(t, ret)
                return false
        } else {
@@ -485,7 +485,7 @@ func ifaceT2Ip(to, from *_type) bool {
                        ri++
                }
 
-               if !eqtype(fromMethod.mtyp, toMethod.typ) {
+               if fromMethod.mtyp != toMethod.typ {
                        return false
                }
 
index 3bdb8f1493ff3351508d12077f72b3ef1ecc9fc7..8af6246367257367defcaee40d7020b1e5ede50a 100644 (file)
@@ -48,11 +48,6 @@ func (t *_type) pkgpath() string {
        return ""
 }
 
-// Return whether two type descriptors are equal.
-func eqtype(t1, t2 *_type) bool {
-       return t1 == t2
-}
-
 type method struct {
        name    *string
        pkgPath *string