mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 21:08:36 +00:00
autohash: force inlining of integer hashing so that the optimizer can see the fast path based on key's size which is known at comptime
otherwise it will always outline the call to hasher.update, resulting in much worse performance
This commit is contained in:
parent
3faf5d3857
commit
54255ee32e
@ -21,7 +21,9 @@ pub fn autoHash(hasher: var, key: var) void {
|
||||
builtin.TypeId.EnumLiteral,
|
||||
=> @compileError("cannot hash this type"),
|
||||
|
||||
builtin.TypeId.Int => hasher.update(std.mem.asBytes(&key)),
|
||||
// Help the optimizer see that hashing an int is easy by inlining!
|
||||
// TODO Check if the situation is better after #561 is resolved.
|
||||
builtin.TypeId.Int => @inlineCall(hasher.update, std.mem.asBytes(&key)),
|
||||
|
||||
builtin.TypeId.Float => |info| autoHash(hasher, @bitCast(@IntType(false, info.bits), key)),
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user