• Keith Randall's avatar
    runtime: remove size argument from hash and equal algorithms · d5e4c406
    Keith Randall authored
    The equal algorithm used to take the size
       equal(p, q *T, size uintptr) bool
    With this change, it does not
       equal(p, q *T) bool
    Similarly for the hash algorithm.
    
    The size is rarely used, as most equal functions know the size
    of the thing they are comparing.  For instance f32equal already
    knows its inputs are 4 bytes in size.
    
    For cases where the size is not known, we allocate a closure
    (one for each size needed) that points to an assembly stub that
    reads the size out of the closure and calls generic code that
    has a size argument.
    
    Reduces the size of the go binary by 0.07%.  Performance impact
    is not measurable.
    
    Change-Id: I6e00adf3dde7ad2974adbcff0ee91e86d2194fec
    Reviewed-on: https://go-review.googlesource.com/2392Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    d5e4c406
hashmap.go 28.3 KB