| author | |
| committer | |
| log | 8c96487bb95e45a86f35e7cfa6012c265c0fdcca |
| tree | d862cf6b6b98f2147e3232c89826528a0207cf5d |
| parent | a4d8e9608e0cb2704bad00b2f87af078c6d4ed59 |
21 files changed, 161 insertions(+), 141 deletions(-)
lib/compiler/aro/aro/CodeGen.zig+3-2| ... | ... | @@ -54,8 +54,9 @@ return_label: Ir.Ref = undefined, |
| 54 | 54 | compound_assign_dummy: ?Ir.Ref = null, |
| 55 | 55 | |
| 56 | 56 | fn fail(c: *CodeGen, comptime fmt: []const u8, args: anytype) error{ FatalError, OutOfMemory } { |
| 57 | var sf = std.heap.stackFallback(1024, c.comp.gpa); | |
| 58 | const allocator = sf.get(); | |
| 57 | var sf_buf: [u8]1024 = undefined; | |
| 58 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, c.comp.gpa); | |
| 59 | const allocator = sf.allocator(); | |
| 59 | 60 | var buf: std.ArrayList(u8) = .empty; |
| 60 | 61 | defer buf.deinit(allocator); |
| 61 | 62 |
lib/compiler/aro/aro/Compilation.zig+9-6| ... | ... | @@ -1761,8 +1761,9 @@ fn addToSearchPath(comp: *Compilation, include: Include, verbose: bool) !void { |
| 1761 | 1761 | try comp.search_path.append(comp.gpa, include); |
| 1762 | 1762 | } |
| 1763 | 1763 | fn removeDuplicateSearchPaths(comp: *Compilation, start: usize, verbose: bool) !void { |
| 1764 | var sf = std.heap.stackFallback(1024, comp.gpa); | |
| 1765 | const allocator = sf.get(); | |
| 1764 | var sf_buf: [1024]u8 = undefined; | |
| 1765 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, comp.gpa); | |
| 1766 | const allocator = sf.allocator(); | |
| 1766 | 1767 | var seen_includes: std.StringHashMapUnmanaged(void) = .empty; |
| 1767 | 1768 | defer seen_includes.deinit(allocator); |
| 1768 | 1769 | var seen_frameworks: std.StringHashMapUnmanaged(void) = .empty; |
| ... | ... | @@ -1976,8 +1977,9 @@ const FindInclude = struct { |
| 1976 | 1977 | ) Allocator.Error!?Result { |
| 1977 | 1978 | const comp = find.comp; |
| 1978 | 1979 | |
| 1979 | var stack_fallback = std.heap.stackFallback(path_buf_stack_limit, comp.gpa); | |
| 1980 | const sfa = stack_fallback.get(); | |
| 1980 | var stack_fallback_buf: [path_buf_stack_limit]u8 = undefined; | |
| 1981 | var stack_fallback: std.heap.StackFallbackAllocator = .init(&stack_fallback_buf, comp.gpa); | |
| 1982 | const sfa = stack_fallback.allocator(); | |
| 1981 | 1983 | const header_path = try std.fmt.allocPrint(sfa, format, args); |
| 1982 | 1984 | defer sfa.free(header_path); |
| 1983 | 1985 | find.comp.normalizePath(header_path); |
| ... | ... | @@ -2068,8 +2070,9 @@ pub fn findEmbed( |
| 2068 | 2070 | } |
| 2069 | 2071 | } |
| 2070 | 2072 | |
| 2071 | var stack_fallback = std.heap.stackFallback(path_buf_stack_limit, comp.gpa); | |
| 2072 | const sf_allocator = stack_fallback.get(); | |
| 2073 | var stack_fallback_buf: [path_buf_stack_limit]u8 = undefined; | |
| 2074 | var stack_fallback: std.heap.StackFallbackAllocator = .init(&stack_fallback_buf, comp.gpa); | |
| 2075 | const sf_allocator = stack_fallback.allocator(); | |
| 2073 | 2076 | |
| 2074 | 2077 | switch (include_type) { |
| 2075 | 2078 | .quotes, .cli => { |
lib/compiler/aro/aro/Driver.zig+9-6| ... | ... | @@ -947,8 +947,9 @@ fn addImacros(d: *Driver, path: []const u8) !void { |
| 947 | 947 | } |
| 948 | 948 | |
| 949 | 949 | pub fn err(d: *Driver, fmt: []const u8, args: anytype) Compilation.Error!void { |
| 950 | var sf = std.heap.stackFallback(1024, d.comp.gpa); | |
| 951 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 950 | var sf_buf: [1024]u8 = undefined; | |
| 951 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, d.comp.gpa); | |
| 952 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 952 | 953 | defer allocating.deinit(); |
| 953 | 954 | |
| 954 | 955 | Diagnostics.formatArgs(&allocating.writer, fmt, args) catch return error.OutOfMemory; |
| ... | ... | @@ -956,8 +957,9 @@ pub fn err(d: *Driver, fmt: []const u8, args: anytype) Compilation.Error!void { |
| 956 | 957 | } |
| 957 | 958 | |
| 958 | 959 | pub fn warn(d: *Driver, fmt: []const u8, args: anytype) Compilation.Error!void { |
| 959 | var sf = std.heap.stackFallback(1024, d.comp.gpa); | |
| 960 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 960 | var sf_buf: [1024]u8 = undefined; | |
| 961 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, d.comp.gpa); | |
| 962 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 961 | 963 | defer allocating.deinit(); |
| 962 | 964 | |
| 963 | 965 | Diagnostics.formatArgs(&allocating.writer, fmt, args) catch return error.OutOfMemory; |
| ... | ... | @@ -1101,8 +1103,9 @@ fn parseTarget(d: *Driver, arch_os_abi: []const u8, opt_cpu_features: ?[]const u |
| 1101 | 1103 | } |
| 1102 | 1104 | |
| 1103 | 1105 | pub fn fatal(d: *Driver, comptime fmt: []const u8, args: anytype) error{ FatalError, OutOfMemory } { |
| 1104 | var sf = std.heap.stackFallback(1024, d.comp.gpa); | |
| 1105 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 1106 | var sf_buf: [1024]u8 = undefined; | |
| 1107 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, d.comp.gpa); | |
| 1108 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 1106 | 1109 | defer allocating.deinit(); |
| 1107 | 1110 | |
| 1108 | 1111 | Diagnostics.formatArgs(&allocating.writer, fmt, args) catch return error.OutOfMemory; |
lib/compiler/aro/aro/Parser.zig+18-12| ... | ... | @@ -215,8 +215,9 @@ fn checkIdentifierCodepointWarnings(p: *Parser, codepoint: u21, loc: Source.Loca |
| 215 | 215 | assert(codepoint >= 0x80); |
| 216 | 216 | |
| 217 | 217 | const prev_total = p.diagnostics.total; |
| 218 | var sf = std.heap.stackFallback(1024, p.comp.gpa); | |
| 219 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 218 | var sf_buf: [1024]u8 = undefined; | |
| 219 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, p.comp.gpa); | |
| 220 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 220 | 221 | defer allocating.deinit(); |
| 221 | 222 | |
| 222 | 223 | if (!char_info.isC99IdChar(codepoint)) { |
| ... | ... | @@ -429,8 +430,9 @@ pub fn err(p: *Parser, tok_i: TokenIndex, diagnostic: Diagnostic, args: anytype) |
| 429 | 430 | if (diagnostic.suppress_unless_version) |some| if (!p.comp.langopts.standard.atLeast(some)) return; |
| 430 | 431 | if (p.diagnostics.effectiveKind(diagnostic) == .off) return; |
| 431 | 432 | |
| 432 | var sf = std.heap.stackFallback(1024, p.comp.gpa); | |
| 433 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 433 | var sf_buf: [1024]u8 = undefined; | |
| 434 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, p.comp.gpa); | |
| 435 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 434 | 436 | defer allocating.deinit(); |
| 435 | 437 | |
| 436 | 438 | p.formatArgs(&allocating.writer, diagnostic.fmt, args) catch return error.OutOfMemory; |
| ... | ... | @@ -1537,8 +1539,9 @@ fn staticAssert(p: *Parser) Error!bool { |
| 1537 | 1539 | } |
| 1538 | 1540 | } else { |
| 1539 | 1541 | if (!res.val.toBool(p.comp)) { |
| 1540 | var sf = std.heap.stackFallback(1024, gpa); | |
| 1541 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 1542 | var sf_buf: [1024]u8 = undefined; | |
| 1543 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, gpa); | |
| 1544 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 1542 | 1545 | defer allocating.deinit(); |
| 1543 | 1546 | |
| 1544 | 1547 | if (p.staticAssertMessage(res_node, str, &allocating) catch return error.OutOfMemory) |message| { |
| ... | ... | @@ -4837,8 +4840,9 @@ fn gnuAsmStmt(p: *Parser, quals: Tree.GNUAssemblyQualifiers, asm_tok: TokenIndex |
| 4837 | 4840 | const expected_items = 8; // arbitrarily chosen, most assembly will have fewer than 8 inputs/outputs/constraints/names |
| 4838 | 4841 | const bytes_needed = expected_items * @sizeOf(Tree.Node.AsmStmt.Operand) + expected_items * 2 * @sizeOf(Node.Index); |
| 4839 | 4842 | |
| 4840 | var stack_fallback = std.heap.stackFallback(bytes_needed, gpa); | |
| 4841 | const allocator = stack_fallback.get(); | |
| 4843 | var stack_fallback_buf: [bytes_needed]u8 = undefined; | |
| 4844 | var stack_fallback: std.heap.StackFallbackAllocator = .init(&stack_fallback_buf, gpa); | |
| 4845 | const allocator = stack_fallback.allocator(); | |
| 4842 | 4846 | |
| 4843 | 4847 | var operands: std.ArrayList(Tree.Node.AsmStmt.Operand) = .empty; |
| 4844 | 4848 | defer operands.deinit(allocator); |
| ... | ... | @@ -9922,8 +9926,9 @@ fn primaryExpr(p: *Parser) Error!?Result { |
| 9922 | 9926 | if (p.func.pretty_ident) |some| { |
| 9923 | 9927 | qt = some.qt; |
| 9924 | 9928 | } else if (p.func.qt) |func_qt| { |
| 9925 | var sf = std.heap.stackFallback(1024, gpa); | |
| 9926 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 9929 | var sf_buf: [1024]u8 = undefined; | |
| 9930 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, gpa); | |
| 9931 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 9927 | 9932 | defer allocating.deinit(); |
| 9928 | 9933 | |
| 9929 | 9934 | func_qt.printNamed(p.tokSlice(p.func.name), p.comp, &allocating.writer) catch return error.OutOfMemory; |
| ... | ... | @@ -10212,8 +10217,9 @@ fn charLiteral(p: *Parser) Error!?Result { |
| 10212 | 10217 | }; |
| 10213 | 10218 | |
| 10214 | 10219 | const max_chars_expected = 4; |
| 10215 | var sf = std.heap.stackFallback(max_chars_expected * @sizeOf(u32), gpa); | |
| 10216 | const allocator = sf.get(); | |
| 10220 | var sf_buf: [max_chars_expected]u32 = undefined; | |
| 10221 | var sf: std.heap.StackFallbackAllocator = .init(@ptrCast(&sf_buf), gpa); | |
| 10222 | const allocator = sf.allocator(); | |
| 10217 | 10223 | var chars: std.ArrayList(u32) = .empty; |
| 10218 | 10224 | defer chars.deinit(allocator); |
| 10219 | 10225 |
lib/compiler/aro/aro/Pragma.zig+3-2| ... | ... | @@ -212,8 +212,9 @@ pub const Diagnostic = struct { |
| 212 | 212 | }; |
| 213 | 213 | |
| 214 | 214 | pub fn err(pp: *Preprocessor, tok_i: TokenIndex, diagnostic: Diagnostic, args: anytype) Compilation.Error!void { |
| 215 | var sf = std.heap.stackFallback(1024, pp.comp.gpa); | |
| 216 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 215 | var sf_buf: [1024]u8 = undefined; | |
| 216 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, pp.comp.gpa); | |
| 217 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 217 | 218 | defer allocating.deinit(); |
| 218 | 219 | |
| 219 | 220 | Diagnostics.formatArgs(&allocating.writer, diagnostic.fmt, args) catch return error.OutOfMemory; |
lib/compiler/aro/aro/Preprocessor.zig+9-6| ... | ... | @@ -1023,8 +1023,9 @@ fn err(pp: *Preprocessor, loc: anytype, diagnostic: Diagnostic, args: anytype) C |
| 1023 | 1023 | defer pp.diagnostics.state.suppress_system_headers = old_suppress_system; |
| 1024 | 1024 | if (diagnostic.show_in_system_headers) pp.diagnostics.state.suppress_system_headers = false; |
| 1025 | 1025 | |
| 1026 | var sf = std.heap.stackFallback(1024, pp.comp.gpa); | |
| 1027 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 1026 | var sf_buf: [1024]u8 = undefined; | |
| 1027 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, pp.comp.gpa); | |
| 1028 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 1028 | 1029 | defer allocating.deinit(); |
| 1029 | 1030 | |
| 1030 | 1031 | Diagnostics.formatArgs(&allocating.writer, diagnostic.fmt, args) catch return error.OutOfMemory; |
| ... | ... | @@ -1052,8 +1053,9 @@ fn err(pp: *Preprocessor, loc: anytype, diagnostic: Diagnostic, args: anytype) C |
| 1052 | 1053 | } |
| 1053 | 1054 | |
| 1054 | 1055 | fn fatal(pp: *Preprocessor, raw: RawToken, comptime fmt: []const u8, args: anytype) Compilation.Error { |
| 1055 | var sf = std.heap.stackFallback(1024, pp.comp.gpa); | |
| 1056 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 1056 | var sf_buf: [1024]u8 = undefined; | |
| 1057 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, pp.comp.gpa); | |
| 1058 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 1057 | 1059 | defer allocating.deinit(); |
| 1058 | 1060 | |
| 1059 | 1061 | Diagnostics.formatArgs(&allocating.writer, fmt, args) catch return error.OutOfMemory; |
| ... | ... | @@ -1074,8 +1076,9 @@ fn fatalNotFound(pp: *Preprocessor, tok: TokenWithExpansionLocs, filename: []con |
| 1074 | 1076 | pp.diagnostics.state.fatal_errors = true; |
| 1075 | 1077 | defer pp.diagnostics.state.fatal_errors = old; |
| 1076 | 1078 | |
| 1077 | var sf = std.heap.stackFallback(1024, pp.comp.gpa); | |
| 1078 | const allocator = sf.get(); | |
| 1079 | var sf_buf: [1024]u8 = undefined; | |
| 1080 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, pp.comp.gpa); | |
| 1081 | const allocator = sf.allocator(); | |
| 1079 | 1082 | var buf: std.ArrayList(u8) = .empty; |
| 1080 | 1083 | defer buf.deinit(allocator); |
| 1081 | 1084 |
lib/compiler/aro/aro/pragmas/message.zig+3-2| ... | ... | @@ -44,8 +44,9 @@ fn preprocessorHandler(_: *Pragma, pp: *Preprocessor, start_idx: TokenIndex) Pra |
| 44 | 44 | |
| 45 | 45 | const diagnostic: Pragma.Diagnostic = .pragma_message; |
| 46 | 46 | |
| 47 | var sf = std.heap.stackFallback(1024, pp.comp.gpa); | |
| 48 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 47 | var sf_buf: [1024]u8 = undefined; | |
| 48 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, pp.comp.gpa); | |
| 49 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 49 | 50 | defer allocating.deinit(); |
| 50 | 51 | |
| 51 | 52 | Diagnostics.formatArgs(&allocating.writer, diagnostic.fmt, .{str}) catch return error.OutOfMemory; |
lib/compiler/aro/aro/text_literal.zig+3-2| ... | ... | @@ -315,8 +315,9 @@ pub const Parser = struct { |
| 315 | 315 | if (p.errored) return; |
| 316 | 316 | if (p.comp.diagnostics.effectiveKind(diagnostic) == .off) return; |
| 317 | 317 | |
| 318 | var sf = std.heap.stackFallback(1024, p.comp.gpa); | |
| 319 | var allocating: std.Io.Writer.Allocating = .init(sf.get()); | |
| 318 | var sf_buf: [1024]u8 = undefined; | |
| 319 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, p.comp.gpa); | |
| 320 | var allocating: std.Io.Writer.Allocating = .init(sf.allocator()); | |
| 320 | 321 | defer allocating.deinit(); |
| 321 | 322 | |
| 322 | 323 | formatArgs(&allocating.writer, diagnostic.fmt, args) catch return error.OutOfMemory; |
lib/compiler/aro/assembly_backend/x86_64.zig+3-2| ... | ... | @@ -68,8 +68,9 @@ fn serializeFloat(comptime T: type, value: T, w: *std.Io.Writer) !void { |
| 68 | 68 | pub fn todo(c: *AsmCodeGen, msg: []const u8, tok: Tree.TokenIndex) Error { |
| 69 | 69 | const loc: Source.Location = c.tree.tokens.items(.loc)[tok]; |
| 70 | 70 | |
| 71 | var sf = std.heap.stackFallback(1024, c.comp.gpa); | |
| 72 | const allocator = sf.get(); | |
| 71 | var sf_buf: [u8]1024 = undefined; | |
| 72 | var sf: std.heap.StackFallbackAllocator = .init(&sf_buf, c.comp.gpa); | |
| 73 | const allocator = sf.allocator(); | |
| 73 | 74 | var buf: std.ArrayList(u8) = .empty; |
| 74 | 75 | defer buf.deinit(allocator); |
| 75 | 76 |
lib/std/fs/path.zig+6-4| ... | ... | @@ -894,8 +894,9 @@ pub fn resolve(allocator: Allocator, paths: []const []const u8) Allocator.Error! |
| 894 | 894 | pub fn resolveWindows(allocator: Allocator, paths: []const []const u8) Allocator.Error![]u8 { |
| 895 | 895 | // Avoid heap allocation when paths.len is <= @bitSizeOf(usize) * 2 |
| 896 | 896 | // (we use `* 3` because stackFallback uses 1 usize as a length) |
| 897 | var bit_set_allocator_state = std.heap.stackFallback(@sizeOf(usize) * 3, allocator); | |
| 898 | const bit_set_allocator = bit_set_allocator_state.get(); | |
| 897 | var buf: [3]usize = undefined; | |
| 898 | var bit_set_allocator_state: std.heap.StackFallbackAllocator = .init(@ptrCast(&buf), allocator); | |
| 899 | const bit_set_allocator = bit_set_allocator_state.allocator(); | |
| 899 | 900 | var relevant_paths = try std.bit_set.DynamicBitSetUnmanaged.initEmpty(bit_set_allocator, paths.len); |
| 900 | 901 | defer relevant_paths.deinit(bit_set_allocator); |
| 901 | 902 | |
| ... | ... | @@ -1642,7 +1643,8 @@ fn windowsResolveAgainstCwd( |
| 1642 | 1643 | parsed: WindowsPath2(u8), |
| 1643 | 1644 | ) ![]u8 { |
| 1644 | 1645 | // Space for 256 WTF-16 code units; potentially 3 WTF-8 bytes per WTF-16 code unit |
| 1645 | var temp_allocator_state = std.heap.stackFallback(256 * 3, gpa); | |
| 1646 | var buf: [256 * 3]u8 = undefined; | |
| 1647 | var temp_allocator_state: std.heap.StackFallbackAllocator = .init(&buf, gpa); | |
| 1646 | 1648 | return switch (parsed.kind) { |
| 1647 | 1649 | .drive_absolute, |
| 1648 | 1650 | .unc_absolute, |
| ... | ... | @@ -1668,7 +1670,7 @@ fn windowsResolveAgainstCwd( |
| 1668 | 1670 | } |
| 1669 | 1671 | }, |
| 1670 | 1672 | .drive_relative => blk: { |
| 1671 | const temp_allocator = temp_allocator_state.get(); | |
| 1673 | const temp_allocator = temp_allocator_state.allocator(); | |
| 1672 | 1674 | const drive_cwd = drive_cwd: { |
| 1673 | 1675 | const parsed_cwd = parsePathWindows(u8, cwd); |
| 1674 | 1676 |
lib/std/zig/AstGen.zig+9-6| ... | ... | @@ -1776,8 +1776,9 @@ fn structInitExpr( |
| 1776 | 1776 | } |
| 1777 | 1777 | |
| 1778 | 1778 | { |
| 1779 | var sfba = std.heap.stackFallback(256, astgen.arena); | |
| 1780 | const sfba_allocator = sfba.get(); | |
| 1779 | var sfba_buf: [256]u8 = undefined; | |
| 1780 | var sfba: std.heap.StackFallbackAllocator = .init(&sfba_buf, astgen.arena); | |
| 1781 | const sfba_allocator = sfba.allocator(); | |
| 1781 | 1782 | |
| 1782 | 1783 | var duplicate_names: std.array_hash_map.Auto(Zir.NullTerminatedString, ArrayList(Ast.TokenIndex)) = .empty; |
| 1783 | 1784 | try duplicate_names.ensureTotalCapacity(sfba_allocator, @intCast(struct_init.ast.fields.len)); |
| ... | ... | @@ -8405,8 +8406,9 @@ fn tunnelThroughClosure( |
| 8405 | 8406 | // Otherwise we need a tunnel. First, figure out the path of namespaces we |
| 8406 | 8407 | // are tunneling through. This is usually only going to be one or two, so |
| 8407 | 8408 | // use an SFBA to optimize for the common case. |
| 8408 | var sfba = std.heap.stackFallback(@sizeOf(usize) * 2, astgen.arena); | |
| 8409 | var intermediate_tunnels = try sfba.get().alloc(*Scope.Namespace, num_tunnels - 1); | |
| 8409 | var sfba_buf: [2]usize = undefined; | |
| 8410 | var sfba: std.heap.StackFallbackAllocator = .init(@ptrCast(&sfba_buf), astgen.arena); | |
| 8411 | var intermediate_tunnels = try sfba.allocator().alloc(*Scope.Namespace, num_tunnels - 1); | |
| 8410 | 8412 | |
| 8411 | 8413 | const root_ns = ns: { |
| 8412 | 8414 | var i: usize = num_tunnels - 1; |
| ... | ... | @@ -12927,8 +12929,9 @@ fn scanContainer( |
| 12927 | 12929 | }; |
| 12928 | 12930 | |
| 12929 | 12931 | // The maps below are allocated into this SFBA to avoid using the GPA for small namespaces. |
| 12930 | var sfba_state = std.heap.stackFallback(512, astgen.gpa); | |
| 12931 | const sfba = sfba_state.get(); | |
| 12932 | var sfba_buf: [512]u8 = undefined; | |
| 12933 | var sfba_state: std.heap.StackFallbackAllocator = .init(&sfba_buf, astgen.gpa); | |
| 12934 | const sfba = sfba_state.allocator(); | |
| 12932 | 12935 | |
| 12933 | 12936 | var names: std.AutoArrayHashMapUnmanaged(Zir.NullTerminatedString, NameEntry) = .empty; |
| 12934 | 12937 | var test_names: std.AutoArrayHashMapUnmanaged(Zir.NullTerminatedString, NameEntry) = .empty; |
lib/std/zig/ZonGen.zig+3-2| ... | ... | @@ -427,8 +427,9 @@ fn expr(zg: *ZonGen, node: Ast.Node.Index, dest_node: Zoir.Node.Index) Allocator |
| 427 | 427 | }); |
| 428 | 428 | |
| 429 | 429 | // For short initializers, track the names on the stack rather than going through gpa. |
| 430 | var sfba_state = std.heap.stackFallback(256, gpa); | |
| 431 | const sfba = sfba_state.get(); | |
| 430 | var sfba_buf: [256]u8 = undefined; | |
| 431 | var sfba_state: std.heap.StackFallbackAllocator = .init(&sfba_buf, gpa); | |
| 432 | const sfba = sfba_state.allocator(); | |
| 432 | 433 | var field_names: std.AutoHashMapUnmanaged(Zoir.NullTerminatedString, Ast.TokenIndex) = .empty; |
| 433 | 434 | defer field_names.deinit(sfba); |
| 434 | 435 |
lib/std/zig/llvm/Builder.zig+12-12| ... | ... | @@ -7638,9 +7638,9 @@ pub const Constant = enum(u32) { |
| 7638 | 7638 | std.math.big.int.calcToStringLimbsBufferLen(expected_limbs, 10) |
| 7639 | 7639 | ]std.math.big.Limb, |
| 7640 | 7640 | }; |
| 7641 | var stack align(@alignOf(ExpectedContents)) = | |
| 7642 | std.heap.stackFallback(@sizeOf(ExpectedContents), data.builder.gpa); | |
| 7643 | const allocator = stack.get(); | |
| 7641 | var stack_buf: ExpectedContents = undefined; | |
| 7642 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), data.builder.gpa); | |
| 7643 | const allocator = stack.allocator(); | |
| 7644 | 7644 | const str = bigint.toStringAlloc(allocator, 10, undefined) catch return error.WriteFailed; |
| 7645 | 7645 | defer allocator.free(str); |
| 7646 | 7646 | try w.writeAll(str); |
| ... | ... | @@ -9209,9 +9209,9 @@ pub fn getIntrinsic( |
| 9209 | 9209 | fields: [expected_fields_len]Type, |
| 9210 | 9210 | }, |
| 9211 | 9211 | }; |
| 9212 | var stack align(@max(@alignOf(std.heap.StackFallbackAllocator(0)), @alignOf(ExpectedContents))) = | |
| 9213 | std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa); | |
| 9214 | const allocator = stack.get(); | |
| 9212 | var stack_buf: ExpectedContents = undefined; | |
| 9213 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), self.gpa); | |
| 9214 | const allocator = stack.allocator(); | |
| 9215 | 9215 | |
| 9216 | 9216 | const name = name: { |
| 9217 | 9217 | { |
| ... | ... | @@ -10607,9 +10607,9 @@ pub fn print(self: *Builder, w: *Writer) (Writer.Error || Allocator.Error)!void |
| 10607 | 10607 | std.math.big.int.calcToStringLimbsBufferLen(expected_limbs, 10) |
| 10608 | 10608 | ]std.math.big.Limb, |
| 10609 | 10609 | }; |
| 10610 | var stack align(@alignOf(ExpectedContents)) = | |
| 10611 | std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa); | |
| 10612 | const allocator = stack.get(); | |
| 10610 | var stack_buf: ExpectedContents = undefined; | |
| 10611 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), self.gpa); | |
| 10612 | const allocator = stack.allocator(); | |
| 10613 | 10613 | |
| 10614 | 10614 | const limbs = self.metadata_limbs.items[extra.limbs_index..][0..extra.limbs_len]; |
| 10615 | 10615 | const bigint: std.math.big.int.Const = .{ |
| ... | ... | @@ -11129,9 +11129,9 @@ fn bigIntConstAssumeCapacity( |
| 11129 | 11129 | const bits = type_item.data; |
| 11130 | 11130 | |
| 11131 | 11131 | const ExpectedContents = [64 / @sizeOf(std.math.big.Limb)]std.math.big.Limb; |
| 11132 | var stack align(@alignOf(ExpectedContents)) = | |
| 11133 | std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa); | |
| 11134 | const allocator = stack.get(); | |
| 11132 | var stack_buf: ExpectedContents = undefined; | |
| 11133 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), self.gpa); | |
| 11134 | const allocator = stack.allocator(); | |
| 11135 | 11135 | |
| 11136 | 11136 | var limbs: []std.math.big.Limb = &.{}; |
| 11137 | 11137 | defer allocator.free(limbs); |
src/Air/Legalize.zig+12-9| ... | ... | @@ -1122,8 +1122,9 @@ fn scalarizeShuffleOneBlockPayload(l: *Legalize, orig_inst: Air.Inst.Index) Erro |
| 1122 | 1122 | // |
| 1123 | 1123 | // So we must first compute `out_idxs` and `in_idxs`. |
| 1124 | 1124 | |
| 1125 | var sfba_state = std.heap.stackFallback(512, gpa); | |
| 1126 | const sfba = sfba_state.get(); | |
| 1125 | var sfba_buf: [512]u8 = undefined; | |
| 1126 | var sfba_state: std.heap.StackFallbackAllocator = .init(&sfba_buf, gpa); | |
| 1127 | const sfba = sfba_state.allocator(); | |
| 1127 | 1128 | |
| 1128 | 1129 | const out_idxs_buf = try sfba.alloc(InternPool.Index, shuffle.mask.len); |
| 1129 | 1130 | defer sfba.free(out_idxs_buf); |
| ... | ... | @@ -1212,8 +1213,9 @@ fn scalarizeShuffleTwoBlockPayload(l: *Legalize, orig_inst: Air.Inst.Index) Erro |
| 1212 | 1213 | // %8 = br(%1, %7) |
| 1213 | 1214 | // }) |
| 1214 | 1215 | |
| 1215 | var sfba_state = std.heap.stackFallback(512, gpa); | |
| 1216 | const sfba = sfba_state.get(); | |
| 1216 | var sfba_buf: [512]u8 = undefined; | |
| 1217 | var sfba_state: std.heap.StackFallbackAllocator = .init(&sfba_buf, gpa); | |
| 1218 | const sfba = sfba_state.allocator(); | |
| 1217 | 1219 | |
| 1218 | 1220 | const out_idxs_buf = try sfba.alloc(InternPool.Index, shuffle.mask.len); |
| 1219 | 1221 | defer sfba.free(out_idxs_buf); |
| ... | ... | @@ -2394,9 +2396,9 @@ fn packedStoreBlockPayload(l: *Legalize, orig_inst: Air.Inst.Index) Error!Air.In |
| 2394 | 2396 | }).toRef(), |
| 2395 | 2397 | .rhs = Air.internedToRef((keep_mask: { |
| 2396 | 2398 | const ExpectedContents = [std.math.big.int.calcTwosCompLimbCount(256)]std.math.big.Limb; |
| 2397 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = | |
| 2398 | std.heap.stackFallback(@sizeOf(ExpectedContents), zcu.gpa); | |
| 2399 | const gpa = stack.get(); | |
| 2399 | var buf: ExpectedContents = undefined; | |
| 2400 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&buf), zcu.gpa); | |
| 2401 | const gpa = stack.allocator(); | |
| 2400 | 2402 | |
| 2401 | 2403 | var mask_big_int: std.math.big.int.Mutable = .{ |
| 2402 | 2404 | .limbs = try gpa.alloc( |
| ... | ... | @@ -2489,8 +2491,9 @@ fn packedAggregateInitBlockPayload(l: *Legalize, orig_inst: Air.Inst.Index) Erro |
| 2489 | 2491 | const agg_ty = orig_ty_pl.ty.toType(); |
| 2490 | 2492 | const agg_field_count = agg_ty.structFieldCount(zcu); |
| 2491 | 2493 | |
| 2492 | var sfba_state = std.heap.stackFallback(@sizeOf([4 * 32 + 2]Air.Inst.Index), gpa); | |
| 2493 | const sfba = sfba_state.get(); | |
| 2494 | var sfba_buf: [4 * 32 + 2]Air.Inst.Index = undefined; | |
| 2495 | var sfba_state: std.heap.StackFallbackAllocator = .init(@ptrCast(&sfba_buf), gpa); | |
| 2496 | const sfba = sfba_state.allocator(); | |
| 2494 | 2497 | |
| 2495 | 2498 | const inst_buf = try sfba.alloc(Air.Inst.Index, 4 * agg_field_count + 2); |
| 2496 | 2499 | defer sfba.free(inst_buf); |
src/Value.zig+3-2| ... | ... | @@ -882,8 +882,9 @@ pub fn fieldValue(val: Value, pt: Zcu.PerThread, index: usize) !Value { |
| 882 | 882 | else => unreachable, |
| 883 | 883 | }; |
| 884 | 884 | // Avoid hitting gpa for accesses to small packed structs |
| 885 | var sfba_state = std.heap.stackFallback(128, zcu.comp.gpa); | |
| 886 | const sfba = sfba_state.get(); | |
| 885 | var sfba_buf: [128]u8 = undefined; | |
| 886 | var sfba_state: std.heap.StackFallbackAllocator = .init(&sfba_buf, zcu.comp.gpa); | |
| 887 | const sfba = sfba_state.allocator(); | |
| 887 | 888 | const buf = try sfba.alloc(u8, @intCast((ty.bitSize(zcu) + 7) / 8)); |
| 888 | 889 | defer sfba.free(buf); |
| 889 | 890 | int_val.writeToPackedMemory(zcu, buf, 0) catch |err| switch (err) { |
src/codegen/c.zig+3-2| ... | ... | @@ -4841,8 +4841,9 @@ fn airAsm(f: *Function, inst: Air.Inst.Index) !CValue { |
| 4841 | 4841 | { |
| 4842 | 4842 | const asm_source = unwrapped_asm.source; |
| 4843 | 4843 | |
| 4844 | var stack = std.heap.stackFallback(256, f.dg.gpa); | |
| 4845 | const allocator = stack.get(); | |
| 4844 | var stack_buf: [256]u8 = undefined; | |
| 4845 | var stack: std.heap.StackFallbackAllocator = .init(&stack_buf, f.dg.gpa); | |
| 4846 | const allocator = stack.allocator(); | |
| 4846 | 4847 | const fixed_asm_source = try allocator.alloc(u8, asm_source.len); |
| 4847 | 4848 | defer allocator.free(fixed_asm_source); |
| 4848 | 4849 |
src/codegen/llvm.zig+15-25| ... | ... | @@ -3605,11 +3605,9 @@ pub const Object = struct { |
| 3605 | 3605 | vals: [Builder.expected_fields_len]Builder.Constant, |
| 3606 | 3606 | fields: [Builder.expected_fields_len]Builder.Type, |
| 3607 | 3607 | }; |
| 3608 | var stack align(@max( | |
| 3609 | @alignOf(std.heap.StackFallbackAllocator(0)), | |
| 3610 | @alignOf(ExpectedContents), | |
| 3611 | )) = std.heap.stackFallback(@sizeOf(ExpectedContents), o.gpa); | |
| 3612 | const allocator = stack.get(); | |
| 3608 | var stack_buf: ExpectedContents = undefined; | |
| 3609 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), o.gpa); | |
| 3610 | const allocator = stack.allocator(); | |
| 3613 | 3611 | const vals = try allocator.alloc(Builder.Constant, elems.len); |
| 3614 | 3612 | defer allocator.free(vals); |
| 3615 | 3613 | const fields = try allocator.alloc(Builder.Type, elems.len); |
| ... | ... | @@ -3636,11 +3634,9 @@ pub const Object = struct { |
| 3636 | 3634 | vals: [Builder.expected_fields_len]Builder.Constant, |
| 3637 | 3635 | fields: [Builder.expected_fields_len]Builder.Type, |
| 3638 | 3636 | }; |
| 3639 | var stack align(@max( | |
| 3640 | @alignOf(std.heap.StackFallbackAllocator(0)), | |
| 3641 | @alignOf(ExpectedContents), | |
| 3642 | )) = std.heap.stackFallback(@sizeOf(ExpectedContents), o.gpa); | |
| 3643 | const allocator = stack.get(); | |
| 3637 | var stack_buf: ExpectedContents = undefined; | |
| 3638 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), o.gpa); | |
| 3639 | const allocator = stack.allocator(); | |
| 3644 | 3640 | const vals = try allocator.alloc(Builder.Constant, len_including_sentinel); |
| 3645 | 3641 | defer allocator.free(vals); |
| 3646 | 3642 | const fields = try allocator.alloc(Builder.Type, len_including_sentinel); |
| ... | ... | @@ -3668,11 +3664,9 @@ pub const Object = struct { |
| 3668 | 3664 | switch (aggregate.storage) { |
| 3669 | 3665 | .bytes, .elems => { |
| 3670 | 3666 | const ExpectedContents = [Builder.expected_fields_len]Builder.Constant; |
| 3671 | var stack align(@max( | |
| 3672 | @alignOf(std.heap.StackFallbackAllocator(0)), | |
| 3673 | @alignOf(ExpectedContents), | |
| 3674 | )) = std.heap.stackFallback(@sizeOf(ExpectedContents), o.gpa); | |
| 3675 | const allocator = stack.get(); | |
| 3667 | var stack_buf: ExpectedContents = undefined; | |
| 3668 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), o.gpa); | |
| 3669 | const allocator = stack.allocator(); | |
| 3676 | 3670 | const vals = try allocator.alloc(Builder.Constant, vector_type.len); |
| 3677 | 3671 | defer allocator.free(vals); |
| 3678 | 3672 | |
| ... | ... | @@ -3701,11 +3695,9 @@ pub const Object = struct { |
| 3701 | 3695 | vals: [Builder.expected_fields_len]Builder.Constant, |
| 3702 | 3696 | fields: [Builder.expected_fields_len]Builder.Type, |
| 3703 | 3697 | }; |
| 3704 | var stack align(@max( | |
| 3705 | @alignOf(std.heap.StackFallbackAllocator(0)), | |
| 3706 | @alignOf(ExpectedContents), | |
| 3707 | )) = std.heap.stackFallback(@sizeOf(ExpectedContents), o.gpa); | |
| 3708 | const allocator = stack.get(); | |
| 3698 | var stack_buf: ExpectedContents = undefined; | |
| 3699 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), o.gpa); | |
| 3700 | const allocator = stack.allocator(); | |
| 3709 | 3701 | const vals = try allocator.alloc(Builder.Constant, llvm_len); |
| 3710 | 3702 | defer allocator.free(vals); |
| 3711 | 3703 | const fields = try allocator.alloc(Builder.Type, llvm_len); |
| ... | ... | @@ -3779,11 +3771,9 @@ pub const Object = struct { |
| 3779 | 3771 | vals: [Builder.expected_fields_len]Builder.Constant, |
| 3780 | 3772 | fields: [Builder.expected_fields_len]Builder.Type, |
| 3781 | 3773 | }; |
| 3782 | var stack align(@max( | |
| 3783 | @alignOf(std.heap.StackFallbackAllocator(0)), | |
| 3784 | @alignOf(ExpectedContents), | |
| 3785 | )) = std.heap.stackFallback(@sizeOf(ExpectedContents), o.gpa); | |
| 3786 | const allocator = stack.get(); | |
| 3774 | var stack_buf: ExpectedContents = undefined; | |
| 3775 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), o.gpa); | |
| 3776 | const allocator = stack.allocator(); | |
| 3787 | 3777 | const vals = try allocator.alloc(Builder.Constant, llvm_len); |
| 3788 | 3778 | defer allocator.free(vals); |
| 3789 | 3779 | const fields = try allocator.alloc(Builder.Type, llvm_len); |
src/codegen/llvm/FuncGen.zig+6-10| ... | ... | @@ -3530,11 +3530,9 @@ fn airDivFloor(self: *FuncGen, inst: Air.Inst.Index, fast: Builder.FastMathKind) |
| 3530 | 3530 | const inst_llvm_ty = try o.lowerType(inst_ty); |
| 3531 | 3531 | |
| 3532 | 3532 | const ExpectedContents = [std.math.big.int.calcTwosCompLimbCount(256)]std.math.big.Limb; |
| 3533 | var stack align(@max( | |
| 3534 | @alignOf(std.heap.StackFallbackAllocator(0)), | |
| 3535 | @alignOf(ExpectedContents), | |
| 3536 | )) = std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa); | |
| 3537 | const allocator = stack.get(); | |
| 3533 | var stack_buf: ExpectedContents = undefined; | |
| 3534 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), self.gpa); | |
| 3535 | const allocator = stack.allocator(); | |
| 3538 | 3536 | |
| 3539 | 3537 | const scalar_bits = scalar_ty.intInfo(zcu).bits; |
| 3540 | 3538 | var smin_big_int: std.math.big.int.Mutable = .{ |
| ... | ... | @@ -3616,11 +3614,9 @@ fn airMod(self: *FuncGen, inst: Air.Inst.Index, fast: Builder.FastMathKind) Allo |
| 3616 | 3614 | } |
| 3617 | 3615 | if (scalar_ty.isSignedInt(zcu)) { |
| 3618 | 3616 | const ExpectedContents = [std.math.big.int.calcTwosCompLimbCount(256)]std.math.big.Limb; |
| 3619 | var stack align(@max( | |
| 3620 | @alignOf(std.heap.StackFallbackAllocator(0)), | |
| 3621 | @alignOf(ExpectedContents), | |
| 3622 | )) = std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa); | |
| 3623 | const allocator = stack.get(); | |
| 3617 | var stack_buf: ExpectedContents = undefined; | |
| 3618 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), self.gpa); | |
| 3619 | const allocator = stack.allocator(); | |
| 3624 | 3620 | |
| 3625 | 3621 | const scalar_bits = scalar_ty.intInfo(zcu).bits; |
| 3626 | 3622 | var smin_big_int: std.math.big.int.Mutable = .{ |
src/codegen/riscv64/CodeGen.zig+7-6| ... | ... | @@ -671,11 +671,12 @@ fn restoreState(func: *Func, state: State, deaths: []const Air.Inst.Index, compt |
| 671 | 671 | for (deaths) |death| try func.processDeath(death); |
| 672 | 672 | |
| 673 | 673 | const ExpectedContents = [@typeInfo(RegisterManager.TrackedRegisters).array.len]RegisterLock; |
| 674 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = | |
| 675 | if (opts.update_tracking) {} else std.heap.stackFallback(@sizeOf(ExpectedContents), func.gpa); | |
| 674 | const stack_buf_len = if (opts.update_tracking) 0 else 1; | |
| 675 | var stack_buf: [stack_buf_len]ExpectedContents = undefined; | |
| 676 | var stack = if (opts.update_tracking) {} else std.heap.StackFallbackAllocator.init(@ptrCast(&stack_buf), func.gpa); | |
| 676 | 677 | |
| 677 | 678 | var reg_locks = if (opts.update_tracking) {} else try std.array_list.Managed(RegisterLock).initCapacity( |
| 678 | stack.get(), | |
| 679 | stack.allocator(), | |
| 679 | 680 | @typeInfo(ExpectedContents).array.len, |
| 680 | 681 | ); |
| 681 | 682 | defer if (!opts.update_tracking) { |
| ... | ... | @@ -4807,9 +4808,9 @@ fn airCall(func: *Func, inst: Air.Inst.Index, modifier: std.builtin.CallModifier |
| 4807 | 4808 | const ExpectedContents = extern struct { |
| 4808 | 4809 | vals: [expected_num_args][@sizeOf(MCValue)]u8 align(@alignOf(MCValue)), |
| 4809 | 4810 | }; |
| 4810 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = | |
| 4811 | std.heap.stackFallback(@sizeOf(ExpectedContents), func.gpa); | |
| 4812 | const allocator = stack.get(); | |
| 4811 | var stack_buf: ExpectedContents = undefined; | |
| 4812 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), func.gpa); | |
| 4813 | const allocator = stack.allocator(); | |
| 4813 | 4814 | |
| 4814 | 4815 | const arg_tys = try allocator.alloc(Type, arg_refs.len); |
| 4815 | 4816 | defer allocator.free(arg_tys); |
src/codegen/x86_64/CodeGen.zig+22-21| ... | ... | @@ -173820,9 +173820,9 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { |
| 173820 | 173820 | var err_temp = try cg.tempInit(err_ty, err_mcv); |
| 173821 | 173821 | |
| 173822 | 173822 | const ExpectedContents = [32]Mir.Inst.Index; |
| 173823 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = | |
| 173824 | std.heap.stackFallback(@sizeOf(ExpectedContents), cg.gpa); | |
| 173825 | const allocator = stack.get(); | |
| 173823 | var stack_buf: ExpectedContents = undefined; | |
| 173824 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), cg.gpa); | |
| 173825 | const allocator = stack.allocator(); | |
| 173826 | 173826 | |
| 173827 | 173827 | const relocs = try allocator.alloc(Mir.Inst.Index, error_set_type.names.len); |
| 173828 | 173828 | defer allocator.free(relocs); |
| ... | ... | @@ -174220,11 +174220,12 @@ fn restoreState(self: *CodeGen, state: State, deaths: []const Air.Inst.Index, co |
| 174220 | 174220 | for (deaths) |death| try self.processDeath(death, .{ .emit_instructions = opts.emit_instructions }); |
| 174221 | 174221 | |
| 174222 | 174222 | const ExpectedContents = [@typeInfo(RegisterManager.TrackedRegisters).array.len]RegisterLock; |
| 174223 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = | |
| 174224 | if (opts.update_tracking) {} else std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa); | |
| 174223 | const stack_buf_len = if (opts.update_tracking) 0 else 1; | |
| 174224 | var stack_buf: [stack_buf_len]ExpectedContents = undefined; | |
| 174225 | var stack = if (opts.update_tracking) {} else std.heap.StackFallbackAllocator.init(@ptrCast(&stack_buf), self.gpa); | |
| 174225 | 174226 | |
| 174226 | 174227 | var reg_locks = if (opts.update_tracking) {} else try std.array_list.Managed(RegisterLock).initCapacity( |
| 174227 | stack.get(), | |
| 174228 | stack.allocator(), | |
| 174228 | 174229 | @typeInfo(ExpectedContents).array.len, |
| 174229 | 174230 | ); |
| 174230 | 174231 | defer if (!opts.update_tracking) { |
| ... | ... | @@ -175929,9 +175930,9 @@ fn airCall(self: *CodeGen, inst: Air.Inst.Index, modifier: std.builtin.CallModif |
| 175929 | 175930 | tys: [32][@sizeOf(Type)]u8 align(@alignOf(Type)), |
| 175930 | 175931 | vals: [32][@sizeOf(MCValue)]u8 align(@alignOf(MCValue)), |
| 175931 | 175932 | }; |
| 175932 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = | |
| 175933 | std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa); | |
| 175934 | const allocator = stack.get(); | |
| 175933 | var stack_buf: [1]ExpectedContents = undefined; | |
| 175934 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), self.gpa); | |
| 175935 | const allocator = stack.allocator(); | |
| 175935 | 175936 | |
| 175936 | 175937 | const arg_tys = try allocator.alloc(Type, arg_refs.len); |
| 175937 | 175938 | defer allocator.free(arg_tys); |
| ... | ... | @@ -175985,9 +175986,9 @@ fn genCall(self: *CodeGen, info: union(enum) { |
| 175985 | 175986 | frame_indices: [32]FrameIndex, |
| 175986 | 175987 | reg_locks: [32][@sizeOf(?RegisterLock)]u8 align(@alignOf(?RegisterLock)), |
| 175987 | 175988 | }; |
| 175988 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = | |
| 175989 | std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa); | |
| 175990 | const allocator = stack.get(); | |
| 175989 | var stack_buf: ExpectedContents = undefined; | |
| 175990 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), self.gpa); | |
| 175991 | const allocator = stack.allocator(); | |
| 175991 | 175992 | |
| 175992 | 175993 | const var_args = try allocator.alloc(Type, args.len - fn_info.param_types.len); |
| 175993 | 175994 | defer allocator.free(var_args); |
| ... | ... | @@ -176588,9 +176589,9 @@ fn lowerSwitchBr( |
| 176588 | 176589 | bigint_limbs: [std.math.big.int.calcTwosCompLimbCount(1 << 10)]std.math.big.Limb, |
| 176589 | 176590 | relocs: [1 << 6]Mir.Inst.Index, |
| 176590 | 176591 | }; |
| 176591 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = | |
| 176592 | std.heap.stackFallback(@sizeOf(ExpectedContents), cg.gpa); | |
| 176593 | const allocator = stack.get(); | |
| 176592 | var stack_buf: ExpectedContents = undefined; | |
| 176593 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), cg.gpa); | |
| 176594 | const allocator = stack.allocator(); | |
| 176594 | 176595 | |
| 176595 | 176596 | const state = try cg.saveState(); |
| 176596 | 176597 | |
| ... | ... | @@ -181154,9 +181155,9 @@ fn resolveCallingConventionValues( |
| 181154 | 181155 | const ExpectedContents = extern struct { |
| 181155 | 181156 | param_types: [32][@sizeOf(Type)]u8 align(@alignOf(Type)), |
| 181156 | 181157 | }; |
| 181157 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = | |
| 181158 | std.heap.stackFallback(@sizeOf(ExpectedContents), cg.gpa); | |
| 181159 | const allocator = stack.get(); | |
| 181158 | var stack_buf: ExpectedContents = undefined; | |
| 181159 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), cg.gpa); | |
| 181160 | const allocator = stack.allocator(); | |
| 181160 | 181161 | |
| 181161 | 181162 | const param_types = try allocator.alloc(Type, fn_info.param_types.len + var_args.len); |
| 181162 | 181163 | defer allocator.free(param_types); |
| ... | ... | @@ -188706,9 +188707,9 @@ const Select = struct { |
| 188706 | 188707 | } |
| 188707 | 188708 | |
| 188708 | 188709 | const ExpectedContents = [std.math.big.int.calcTwosCompLimbCount(1 << 10)]std.math.big.Limb; |
| 188709 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = | |
| 188710 | std.heap.stackFallback(@sizeOf(ExpectedContents), cg.gpa); | |
| 188711 | const allocator = stack.get(); | |
| 188710 | var stack_buf: ExpectedContents = undefined; | |
| 188711 | var stack: std.heap.StackFallbackAllocator = .init(@ptrCast(&stack_buf), cg.gpa); | |
| 188712 | const allocator = stack.allocator(); | |
| 188712 | 188713 | var res_big_int: std.math.big.int.Mutable = .{ |
| 188713 | 188714 | .limbs = try allocator.alloc( |
| 188714 | 188715 | std.math.big.Limb, |
src/link/Elf2.zig+3-2| ... | ... | @@ -2690,8 +2690,9 @@ pub fn ensureUnusedRelocCapacity(elf: *Elf, loc_si: Symbol.Index, len: usize) !v |
| 2690 | 2690 | const shndx = loc_si.shndx(elf); |
| 2691 | 2691 | const sh = shndx.get(elf); |
| 2692 | 2692 | if (sh.rela_si == .null) { |
| 2693 | var stack = std.heap.stackFallback(32, gpa); | |
| 2694 | const allocator = stack.get(); | |
| 2693 | var stack_buf: [32]u8 = undefined; | |
| 2694 | var stack: std.heap.StackFallbackAllocator = .init(&stack_buf, gpa); | |
| 2695 | const allocator = stack.allocator(); | |
| 2695 | 2696 | |
| 2696 | 2697 | const rela_name = |
| 2697 | 2698 | try std.fmt.allocPrint(allocator, ".rela{s}", .{elf.sectionName(sh.si)}); |