// AlgType returns the fixed-width AMEMxx variants instead of the general // AMEM kind when possible. func AlgType(t *types.Type) types.AlgKind { … } // genhash returns a symbol which is the closure used to compute // the hash of a value of type t. // Note: the generated function must match runtime.typehash exactly. func genhash(t *types.Type) *obj.LSym { … } func hashFunc(t *types.Type) *ir.Func { … } func runtimeHashFor(name string, t *types.Type) *ir.Name { … } // hashfor returns the function to compute the hash of a value of type t. func hashfor(t *types.Type) *ir.Name { … } // sysClosure returns a closure which will call the // given runtime function (with no closed-over variables). func sysClosure(name string) *obj.LSym { … } // geneq returns a symbol which is the closure used to compute // equality for two objects of type t. func geneq(t *types.Type) *obj.LSym { … } func eqFunc(t *types.Type) *ir.Func { … } // EqFor returns ONAME node represents type t's equal function, and a boolean // to indicates whether a length needs to be passed when calling the function. func EqFor(t *types.Type) (ir.Node, bool) { … } func anyCall(fn *ir.Func) bool { … } func hashmem(t *types.Type) ir.Node { … }