runtime: inline and remove eqtype

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
This commit is contained in:
Ian Lance Taylor 2019-06-21 22:21:40 +00:00
parent 0514cb3374
commit f4e7200b1d
4 changed files with 12 additions and 17 deletions

View File

@ -1,4 +1,4 @@
5bca69ab3b41df535193474baecc3a8a4c0b3dbe fdf0af774aabb31ba8a62f358b7b40dfe8b35da9
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.

View File

@ -205,7 +205,7 @@ func nilinterequal(p, q unsafe.Pointer) bool {
} }
func efaceeq(x, y eface) bool { func efaceeq(x, y eface) bool {
t := x._type t := x._type
if !eqtype(t, y._type) { if t != y._type {
return false return false
} }
if t == nil { if t == nil {
@ -229,7 +229,7 @@ func ifaceeq(x, y iface) bool {
return false return false
} }
t := *(**_type)(xtab) t := *(**_type)(xtab)
if !eqtype(t, *(**_type)(y.tab)) { if t != *(**_type)(y.tab) {
return false return false
} }
eq := t.equalfn eq := t.equalfn
@ -247,7 +247,7 @@ func ifacevaleq(x iface, t *_type, p unsafe.Pointer) bool {
return false return false
} }
xt := *(**_type)(x.tab) xt := *(**_type)(x.tab)
if !eqtype(xt, t) { if xt != t {
return false return false
} }
eq := t.equalfn eq := t.equalfn
@ -268,7 +268,7 @@ func ifaceefaceeq(x iface, y eface) bool {
return false return false
} }
xt := *(**_type)(x.tab) xt := *(**_type)(x.tab)
if !eqtype(xt, y._type) { if xt != y._type {
return false return false
} }
eq := xt.equalfn eq := xt.equalfn
@ -285,7 +285,7 @@ func efacevaleq(x eface, t *_type, p unsafe.Pointer) bool {
if x._type == nil { if x._type == nil {
return false return false
} }
if !eqtype(x._type, t) { if x._type != t {
return false return false
} }
eq := t.equalfn eq := t.equalfn

View File

@ -233,7 +233,7 @@ func (m *itab) init() string {
ri++ ri++
} }
if !eqtype(lhsMethod.typ, rhsMethod.mtyp) { if lhsMethod.typ != rhsMethod.mtyp {
m.methods[1] = nil m.methods[1] = nil
return *lhsMethod.name 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. // Convert an empty interface to a pointer non-interface type.
func ifaceE2T2P(t *_type, e eface) (unsafe.Pointer, bool) { func ifaceE2T2P(t *_type, e eface) (unsafe.Pointer, bool) {
if !eqtype(t, e._type) { if t != e._type {
return nil, false return nil, false
} else { } else {
return e.data, true 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. // Convert a non-empty interface to a pointer non-interface type.
func ifaceI2T2P(t *_type, i iface) (unsafe.Pointer, bool) { 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 return nil, false
} else { } else {
return i.data, true 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. // Convert an empty interface to a non-pointer non-interface type.
func ifaceE2T2(t *_type, e eface, ret unsafe.Pointer) bool { func ifaceE2T2(t *_type, e eface, ret unsafe.Pointer) bool {
if !eqtype(t, e._type) { if t != e._type {
typedmemclr(t, ret) typedmemclr(t, ret)
return false return false
} else { } 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. // Convert a non-empty interface to a non-pointer non-interface type.
func ifaceI2T2(t *_type, i iface, ret unsafe.Pointer) bool { 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) typedmemclr(t, ret)
return false return false
} else { } else {
@ -485,7 +485,7 @@ func ifaceT2Ip(to, from *_type) bool {
ri++ ri++
} }
if !eqtype(fromMethod.mtyp, toMethod.typ) { if fromMethod.mtyp != toMethod.typ {
return false return false
} }

View File

@ -48,11 +48,6 @@ func (t *_type) pkgpath() string {
return "" return ""
} }
// Return whether two type descriptors are equal.
func eqtype(t1, t2 *_type) bool {
return t1 == t2
}
type method struct { type method struct {
name *string name *string
pkgPath *string pkgPath *string