authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-01-03 00:29:31-05:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-02-21 00:27:12-05:00
log828ac637b2703bfd3e40316a28e1f6b8315c6ed1
tree10a8d5b026422f48dd5ffeffc1a678be2906c07f
parentb76fed82061823fb1ed1f4ab81296135858ce26c

MultiArrayList: delete pessimizing vector usage

By factoring out the comptime parts of this computation, vectors are no longer useful in this function.

1 files changed, 3 insertions(+), 9 deletions(-)

lib/std/multi_array_list.zig+3-9
......@@ -433,15 +433,9 @@ pub fn MultiArrayList(comptime S: type) type {
433433 }
434434
435435 fn capacityInBytes(capacity: usize) usize {
436 if (builtin.zig_backend == .stage2_c) {
437 var bytes: usize = 0;
438 for (sizes.bytes) |size| bytes += size * capacity;
439 return bytes;
440 } else {
441 const sizes_vector: @Vector(sizes.bytes.len, usize) = sizes.bytes;
442 const capacity_vector = @splat(sizes.bytes.len, capacity);
443 return @reduce(.Add, capacity_vector * sizes_vector);
444 }
436 comptime var elem_bytes: usize = 0;
437 inline for (sizes.bytes) |size| elem_bytes += size;
438 return elem_bytes * capacity;
445439 }
446440
447441 fn allocatedBytes(self: Self) []align(@alignOf(S)) u8 {