Zcu: eliminate Decl.alive field

Legacy anon decls now have three uses:
* Type owner decls
* Function owner decls
* `@export` and `@extern`

Therefore, there are no longer any cases where we wish to explicitly
omit legacy anon decls from the binary. This means we can remove the
concept of an "alive" vs "dead" `Decl`, which also allows us to remove
the separate `anon_work_queue` in `Compilation`.
This commit is contained in:
mlugg
2024-03-26 04:06:39 +00:00
parent 152a2ceaf7
commit 26a94e8481
10 changed files with 2 additions and 101 deletions

View File

@@ -835,8 +835,6 @@ fn lowerDeclRef(
return Result.ok;
}
try zcu.markDeclAlive(decl);
const vaddr = try lf.getDeclVAddr(decl_index, .{
.parent_atom_index = reloc_info.parent_atom_index,
.offset = code.items.len,
@@ -958,8 +956,6 @@ fn genDeclRef(
}
}
try zcu.markDeclAlive(decl);
const decl_namespace = zcu.namespacePtr(decl.src_namespace);
const single_threaded = decl_namespace.file_scope.mod.single_threaded;
const is_threadlocal = tv.val.isPtrToThreadLocal(zcu) and !single_threaded;