Commit 828ac637b2

Jacob Young <jacobly0@users.noreply.github.com>
2023-01-03 06:29:31
MultiArrayList: delete pessimizing vector usage
By factoring out the comptime parts of this computation, vectors are no longer useful in this function.
1 parent b76fed8
Changed files (1)
lib/std/multi_array_list.zig
@@ -433,15 +433,9 @@ pub fn MultiArrayList(comptime S: type) type {
         }
 
         fn capacityInBytes(capacity: usize) usize {
-            if (builtin.zig_backend == .stage2_c) {
-                var bytes: usize = 0;
-                for (sizes.bytes) |size| bytes += size * capacity;
-                return bytes;
-            } else {
-                const sizes_vector: @Vector(sizes.bytes.len, usize) = sizes.bytes;
-                const capacity_vector = @splat(sizes.bytes.len, capacity);
-                return @reduce(.Add, capacity_vector * sizes_vector);
-            }
+            comptime var elem_bytes: usize = 0;
+            inline for (sizes.bytes) |size| elem_bytes += size;
+            return elem_bytes * capacity;
         }
 
         fn allocatedBytes(self: Self) []align(@alignOf(S)) u8 {