aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-01-26 15:51:33 -0800
committerGitHub <noreply@github.com>2024-01-26 15:51:33 -0800
commitb96fb858c88b97617e6fa0e3c6966a8e900caf7f (patch)
treee1729e12109e85e1ed2d4b7eb06187206e9bd8d3 /src/Compilation.zig
parent8a0429e885489eac497aa97fdfcaaa1befb2b6d4 (diff)
parent06d8bb32e3edfb4a26c6d3ecdf198574f4bd3f87 (diff)
downloadzig-b96fb858c88b97617e6fa0e3c6966a8e900caf7f.tar.gz
zig-b96fb858c88b97617e6fa0e3c6966a8e900caf7f.zip
Merge pull request #18654 from mlugg/incremental-the-second
InternPool: introduce TrackedInst to prepare for incremental compilation
Diffstat (limited to 'src/Compilation.zig')
-rw-r--r--src/Compilation.zig5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 6dfd46796d..237f22df58 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -2802,6 +2802,7 @@ const Header = extern struct {
extra_len: u32,
limbs_len: u32,
string_bytes_len: u32,
+ tracked_insts_len: u32,
},
};
@@ -2809,7 +2810,7 @@ const Header = extern struct {
/// saved, such as the target and most CLI flags. A cache hit will only occur
/// when subsequent compiler invocations use the same set of flags.
pub fn saveState(comp: *Compilation) !void {
- var bufs_list: [6]std.os.iovec_const = undefined;
+ var bufs_list: [7]std.os.iovec_const = undefined;
var bufs_len: usize = 0;
const lf = comp.bin_file orelse return;
@@ -2822,6 +2823,7 @@ pub fn saveState(comp: *Compilation) !void {
.extra_len = @intCast(ip.extra.items.len),
.limbs_len = @intCast(ip.limbs.items.len),
.string_bytes_len = @intCast(ip.string_bytes.items.len),
+ .tracked_insts_len = @intCast(ip.tracked_insts.count()),
},
};
addBuf(&bufs_list, &bufs_len, mem.asBytes(&header));
@@ -2830,6 +2832,7 @@ pub fn saveState(comp: *Compilation) !void {
addBuf(&bufs_list, &bufs_len, mem.sliceAsBytes(ip.items.items(.data)));
addBuf(&bufs_list, &bufs_len, mem.sliceAsBytes(ip.items.items(.tag)));
addBuf(&bufs_list, &bufs_len, ip.string_bytes.items);
+ addBuf(&bufs_list, &bufs_len, mem.sliceAsBytes(ip.tracked_insts.keys()));
// TODO: compilation errors
// TODO: files