comp: rename module to zcu
This commit is contained in:
@@ -50,8 +50,7 @@ gpa: Allocator,
|
||||
/// be used for other things requiring the same lifetime as the `Compilation`.
|
||||
arena: Allocator,
|
||||
/// Not every Compilation compiles .zig code! For example you could do `zig build-exe foo.o`.
|
||||
/// TODO: rename to zcu: ?*Zcu
|
||||
module: ?*Zcu,
|
||||
zcu: ?*Zcu,
|
||||
/// Contains different state depending on whether the Compilation uses
|
||||
/// incremental or whole cache mode.
|
||||
cache_use: CacheUse,
|
||||
@@ -1474,7 +1473,7 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil
|
||||
comp.* = .{
|
||||
.gpa = gpa,
|
||||
.arena = arena,
|
||||
.module = opt_zcu,
|
||||
.zcu = opt_zcu,
|
||||
.cache_use = undefined, // populated below
|
||||
.bin_file = null, // populated below
|
||||
.implib_emit = null, // handled below
|
||||
@@ -1926,7 +1925,7 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil
|
||||
|
||||
pub fn destroy(comp: *Compilation) void {
|
||||
if (comp.bin_file) |lf| lf.destroy();
|
||||
if (comp.module) |zcu| zcu.deinit();
|
||||
if (comp.zcu) |zcu| zcu.deinit();
|
||||
comp.cache_use.deinit();
|
||||
for (comp.work_queues) |work_queue| work_queue.deinit();
|
||||
if (!InternPool.single_threaded) comp.codegen_work.queue.deinit();
|
||||
@@ -2198,7 +2197,7 @@ pub fn update(comp: *Compilation, main_progress_node: std.Progress.Node) !void {
|
||||
};
|
||||
}
|
||||
|
||||
if (comp.module) |zcu| {
|
||||
if (comp.zcu) |zcu| {
|
||||
const pt: Zcu.PerThread = .{ .zcu = zcu, .tid = .main };
|
||||
|
||||
zcu.compile_log_text.shrinkAndFree(gpa, 0);
|
||||
@@ -2268,7 +2267,7 @@ pub fn update(comp: *Compilation, main_progress_node: std.Progress.Node) !void {
|
||||
|
||||
try comp.performAllTheWork(main_progress_node);
|
||||
|
||||
if (comp.module) |zcu| {
|
||||
if (comp.zcu) |zcu| {
|
||||
const pt: Zcu.PerThread = .{ .zcu = zcu, .tid = .main };
|
||||
|
||||
if (build_options.enable_debug_extensions and comp.verbose_intern_pool) {
|
||||
@@ -2447,7 +2446,7 @@ fn flush(
|
||||
};
|
||||
}
|
||||
|
||||
if (comp.module) |zcu| {
|
||||
if (comp.zcu) |zcu| {
|
||||
try link.File.C.flushEmitH(zcu);
|
||||
|
||||
if (zcu.llvm_object) |llvm_object| {
|
||||
@@ -2558,7 +2557,7 @@ fn addNonIncrementalStuffToCacheManifest(
|
||||
|
||||
comptime assert(link_hash_implementation_version == 14);
|
||||
|
||||
if (comp.module) |mod| {
|
||||
if (comp.zcu) |mod| {
|
||||
try addModuleTableToCacheHash(gpa, arena, &man.hash, mod.root_mod, mod.main_mod, .{ .files = man });
|
||||
|
||||
// Synchronize with other matching comments: ZigOnlyHashStuff
|
||||
@@ -2692,7 +2691,7 @@ fn addNonIncrementalStuffToCacheManifest(
|
||||
}
|
||||
|
||||
fn emitOthers(comp: *Compilation) void {
|
||||
if (comp.config.output_mode != .Obj or comp.module != null or
|
||||
if (comp.config.output_mode != .Obj or comp.zcu != null or
|
||||
comp.c_object_table.count() == 0)
|
||||
{
|
||||
return;
|
||||
@@ -2951,7 +2950,7 @@ pub fn saveState(comp: *Compilation) !void {
|
||||
var pt_headers = std.ArrayList(Header.PerThread).init(gpa);
|
||||
defer pt_headers.deinit();
|
||||
|
||||
if (comp.module) |zcu| {
|
||||
if (comp.zcu) |zcu| {
|
||||
const ip = &zcu.intern_pool;
|
||||
const header: Header = .{
|
||||
.intern_pool = .{
|
||||
@@ -3246,7 +3245,7 @@ pub fn getAllErrorsAlloc(comp: *Compilation) !ErrorBundle {
|
||||
}
|
||||
}
|
||||
|
||||
if (comp.module) |zcu| {
|
||||
if (comp.zcu) |zcu| {
|
||||
if (bundle.root_list.items.len == 0 and zcu.compile_log_sources.count() != 0) {
|
||||
const values = zcu.compile_log_sources.values();
|
||||
// First one will be the error; subsequent ones will be notes.
|
||||
@@ -3283,7 +3282,7 @@ pub fn getAllErrorsAlloc(comp: *Compilation) !ErrorBundle {
|
||||
}
|
||||
}
|
||||
|
||||
const compile_log_text = if (comp.module) |m| m.compile_log_text.items else "";
|
||||
const compile_log_text = if (comp.zcu) |m| m.compile_log_text.items else "";
|
||||
return bundle.toOwnedBundle(compile_log_text);
|
||||
}
|
||||
|
||||
@@ -3497,7 +3496,7 @@ pub fn performAllTheWork(
|
||||
comp: *Compilation,
|
||||
main_progress_node: std.Progress.Node,
|
||||
) JobError!void {
|
||||
defer if (comp.module) |mod| {
|
||||
defer if (comp.zcu) |mod| {
|
||||
mod.sema_prog_node.end();
|
||||
mod.sema_prog_node = std.Progress.Node.none;
|
||||
mod.codegen_prog_node.end();
|
||||
@@ -3543,7 +3542,7 @@ fn performAllTheWorkInner(
|
||||
// in the `astgen_wait_group`.
|
||||
if (comp.job_queued_update_builtin_zig) b: {
|
||||
comp.job_queued_update_builtin_zig = false;
|
||||
const zcu = comp.module orelse break :b;
|
||||
const zcu = comp.zcu orelse break :b;
|
||||
_ = zcu;
|
||||
// TODO put all the modules in a flat array to make them easy to iterate.
|
||||
var seen: std.AutoArrayHashMapUnmanaged(*Package.Module, void) = .{};
|
||||
@@ -3563,7 +3562,7 @@ fn performAllTheWorkInner(
|
||||
}
|
||||
}
|
||||
|
||||
if (comp.module) |zcu| {
|
||||
if (comp.zcu) |zcu| {
|
||||
{
|
||||
// Worker threads may append to zcu.files and zcu.import_table
|
||||
// so we must hold the lock while spawning those tasks, since
|
||||
@@ -3606,7 +3605,7 @@ fn performAllTheWorkInner(
|
||||
if (comp.job_queued_compiler_rt_obj) work_queue_wait_group.spawnManager(buildRt, .{ comp, "compiler_rt.zig", .compiler_rt, .Obj, &comp.compiler_rt_obj, main_progress_node });
|
||||
if (comp.job_queued_fuzzer_lib) work_queue_wait_group.spawnManager(buildRt, .{ comp, "fuzzer.zig", .libfuzzer, .Lib, &comp.fuzzer_lib, main_progress_node });
|
||||
|
||||
if (comp.module) |zcu| {
|
||||
if (comp.zcu) |zcu| {
|
||||
const pt: Zcu.PerThread = .{ .zcu = zcu, .tid = .main };
|
||||
if (comp.incremental) {
|
||||
const update_zir_refs_node = main_progress_node.start("Update ZIR References", 0);
|
||||
@@ -3638,7 +3637,7 @@ fn performAllTheWorkInner(
|
||||
try processOneJob(@intFromEnum(Zcu.PerThread.Id.main), comp, job, main_progress_node);
|
||||
continue :work;
|
||||
};
|
||||
if (comp.module) |zcu| {
|
||||
if (comp.zcu) |zcu| {
|
||||
// If there's no work queued, check if there's anything outdated
|
||||
// which we need to work on, and queue it if so.
|
||||
if (try zcu.findOutdatedToAnalyze()) |outdated| {
|
||||
@@ -3666,7 +3665,7 @@ pub fn queueJobs(comp: *Compilation, jobs: []const Job) !void {
|
||||
fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progress.Node) JobError!void {
|
||||
switch (job) {
|
||||
.codegen_nav => |nav_index| {
|
||||
const zcu = comp.module.?;
|
||||
const zcu = comp.zcu.?;
|
||||
const nav = zcu.intern_pool.getNav(nav_index);
|
||||
if (nav.analysis_owner.unwrap()) |cau| {
|
||||
const unit = InternPool.AnalUnit.wrap(.{ .cau = cau });
|
||||
@@ -3689,14 +3688,14 @@ fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progre
|
||||
const named_frame = tracy.namedFrame("analyze_func");
|
||||
defer named_frame.end();
|
||||
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) };
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) };
|
||||
pt.ensureFuncBodyAnalyzed(func) catch |err| switch (err) {
|
||||
error.OutOfMemory => return error.OutOfMemory,
|
||||
error.AnalysisFail => return,
|
||||
};
|
||||
},
|
||||
.analyze_cau => |cau_index| {
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) };
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) };
|
||||
pt.ensureCauAnalyzed(cau_index) catch |err| switch (err) {
|
||||
error.OutOfMemory => return error.OutOfMemory,
|
||||
error.AnalysisFail => return,
|
||||
@@ -3725,7 +3724,7 @@ fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progre
|
||||
const named_frame = tracy.namedFrame("resolve_type_fully");
|
||||
defer named_frame.end();
|
||||
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) };
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) };
|
||||
Type.fromInterned(ty).resolveFully(pt) catch |err| switch (err) {
|
||||
error.OutOfMemory => return error.OutOfMemory,
|
||||
error.AnalysisFail => return,
|
||||
@@ -3738,7 +3737,7 @@ fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progre
|
||||
if (true) @panic("TODO: update_line_number");
|
||||
|
||||
const gpa = comp.gpa;
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) };
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) };
|
||||
const decl = pt.zcu.declPtr(decl_index);
|
||||
const lf = comp.bin_file.?;
|
||||
lf.updateDeclLineNumber(pt, decl_index) catch |err| {
|
||||
@@ -3760,7 +3759,7 @@ fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progre
|
||||
const named_frame = tracy.namedFrame("analyze_mod");
|
||||
defer named_frame.end();
|
||||
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) };
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) };
|
||||
pt.semaPkg(mod) catch |err| switch (err) {
|
||||
error.OutOfMemory => return error.OutOfMemory,
|
||||
error.AnalysisFail => return,
|
||||
@@ -3924,7 +3923,7 @@ fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progre
|
||||
|
||||
fn queueCodegenJob(comp: *Compilation, tid: usize, codegen_job: CodegenJob) !void {
|
||||
if (InternPool.single_threaded or
|
||||
!comp.module.?.backendSupportsFeature(.separate_thread))
|
||||
!comp.zcu.?.backendSupportsFeature(.separate_thread))
|
||||
return processOneCodegenJob(tid, comp, codegen_job);
|
||||
|
||||
{
|
||||
@@ -3963,14 +3962,14 @@ fn processOneCodegenJob(tid: usize, comp: *Compilation, codegen_job: CodegenJob)
|
||||
const named_frame = tracy.namedFrame("codegen_nav");
|
||||
defer named_frame.end();
|
||||
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) };
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) };
|
||||
try pt.linkerUpdateNav(nav_index);
|
||||
},
|
||||
.func => |func| {
|
||||
const named_frame = tracy.namedFrame("codegen_func");
|
||||
defer named_frame.end();
|
||||
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) };
|
||||
const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) };
|
||||
// This call takes ownership of `func.air`.
|
||||
try pt.linkerUpdateFunc(func.func, func.air);
|
||||
},
|
||||
@@ -3995,7 +3994,7 @@ fn workerDocsCopy(comp: *Compilation) void {
|
||||
}
|
||||
|
||||
fn docsCopyFallible(comp: *Compilation) anyerror!void {
|
||||
const zcu = comp.module orelse
|
||||
const zcu = comp.zcu orelse
|
||||
return comp.lockAndSetMiscFailure(.docs_copy, "no Zig code to document", .{});
|
||||
|
||||
const emit = comp.docs_emit.?;
|
||||
@@ -4352,7 +4351,7 @@ fn workerCheckEmbedFile(comp: *Compilation, embed_file: *Zcu.EmbedFile) void {
|
||||
}
|
||||
|
||||
fn detectEmbedFileUpdate(comp: *Compilation, embed_file: *Zcu.EmbedFile) !void {
|
||||
const mod = comp.module.?;
|
||||
const mod = comp.zcu.?;
|
||||
const ip = &mod.intern_pool;
|
||||
var file = try embed_file.owner.root.openFile(embed_file.sub_file_path.toSlice(ip), .{});
|
||||
defer file.close();
|
||||
@@ -4665,7 +4664,7 @@ fn reportRetryableEmbedFileError(
|
||||
embed_file: *Zcu.EmbedFile,
|
||||
err: anyerror,
|
||||
) error{OutOfMemory}!void {
|
||||
const mod = comp.module.?;
|
||||
const mod = comp.zcu.?;
|
||||
const gpa = mod.gpa;
|
||||
const src_loc = embed_file.src_loc;
|
||||
const ip = &mod.intern_pool;
|
||||
@@ -4730,7 +4729,7 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_obj_prog_node: std.Pr
|
||||
// Special case when doing build-obj for just one C file. When there are more than one object
|
||||
// file and building an object we need to link them together, but with just one it should go
|
||||
// directly to the output file.
|
||||
const direct_o = comp.c_source_files.len == 1 and comp.module == null and
|
||||
const direct_o = comp.c_source_files.len == 1 and comp.zcu == null and
|
||||
comp.config.output_mode == .Obj and comp.objects.len == 0;
|
||||
const o_basename_noext = if (direct_o)
|
||||
comp.root_name
|
||||
|
||||
@@ -6003,7 +6003,7 @@ fn airPtrSliceFieldPtr(func: *CodeGen, inst: Air.Inst.Index, offset: u32) InnerE
|
||||
|
||||
/// NOTE: Allocates place for result on virtual stack, when integer size > 64 bits
|
||||
fn intZeroValue(func: *CodeGen, ty: Type) InnerError!WValue {
|
||||
const zcu = func.bin_file.base.comp.module.?;
|
||||
const zcu = func.bin_file.base.comp.zcu.?;
|
||||
const int_info = ty.intInfo(zcu);
|
||||
const wasm_bits = toWasmBits(int_info.bits) orelse {
|
||||
return func.fail("TODO: Implement intZeroValue for integer bitsize: {d}", .{int_info.bits});
|
||||
|
||||
@@ -255,7 +255,7 @@ fn fail(emit: *Emit, comptime format: []const u8, args: anytype) InnerError {
|
||||
@setCold(true);
|
||||
std.debug.assert(emit.error_msg == null);
|
||||
const comp = emit.bin_file.base.comp;
|
||||
const zcu = comp.module.?;
|
||||
const zcu = comp.zcu.?;
|
||||
const gpa = comp.gpa;
|
||||
emit.error_msg = try Zcu.ErrorMsg.create(gpa, zcu.navSrcLoc(emit.owner_nav), format, args);
|
||||
return error.EmitFail;
|
||||
|
||||
@@ -864,7 +864,7 @@ pub const Object = struct {
|
||||
// into the garbage can by converting into absolute paths. What
|
||||
// a terrible tragedy.
|
||||
const compile_unit_dir = blk: {
|
||||
if (comp.module) |zcu| m: {
|
||||
if (comp.zcu) |zcu| m: {
|
||||
const d = try zcu.main_mod.root.joinString(arena, "");
|
||||
if (d.len == 0) break :m;
|
||||
if (std.fs.path.isAbsolute(d)) break :blk d;
|
||||
@@ -955,7 +955,7 @@ pub const Object = struct {
|
||||
.gpa = gpa,
|
||||
.builder = builder,
|
||||
.pt = .{
|
||||
.zcu = comp.module.?,
|
||||
.zcu = comp.zcu.?,
|
||||
.tid = .main,
|
||||
},
|
||||
.debug_compile_unit = debug_compile_unit,
|
||||
|
||||
@@ -755,7 +755,7 @@ pub const File = struct {
|
||||
const directory = base.emit.root_dir; // Just an alias to make it shorter to type.
|
||||
const full_out_path = try directory.join(arena, &[_][]const u8{base.emit.sub_path});
|
||||
const full_out_path_z = try arena.dupeZ(u8, full_out_path);
|
||||
const opt_zcu = comp.module;
|
||||
const opt_zcu = comp.zcu;
|
||||
|
||||
// If there is no Zig code to compile, then we should skip flushing the output file
|
||||
// because it will not be part of the linker line anyway.
|
||||
|
||||
@@ -418,7 +418,7 @@ pub fn flushModule(self: *C, arena: Allocator, tid: Zcu.PerThread.Id, prog_node:
|
||||
|
||||
const comp = self.base.comp;
|
||||
const gpa = comp.gpa;
|
||||
const zcu = self.base.comp.module.?;
|
||||
const zcu = self.base.comp.zcu.?;
|
||||
const ip = &zcu.intern_pool;
|
||||
const pt: Zcu.PerThread = .{ .zcu = zcu, .tid = tid };
|
||||
|
||||
|
||||
@@ -1354,7 +1354,7 @@ pub fn getOrCreateAtomForNav(self: *Coff, nav_index: InternPool.Nav.Index) !Atom
|
||||
}
|
||||
|
||||
fn getNavOutputSection(self: *Coff, nav_index: InternPool.Nav.Index) u16 {
|
||||
const zcu = self.base.comp.module.?;
|
||||
const zcu = self.base.comp.zcu.?;
|
||||
const ip = &zcu.intern_pool;
|
||||
const nav = ip.getNav(nav_index);
|
||||
const ty = Type.fromInterned(nav.typeOf(ip));
|
||||
@@ -1609,7 +1609,7 @@ pub fn deleteExport(
|
||||
.nav => |nav| self.navs.getPtr(nav),
|
||||
.uav => |uav| self.uavs.getPtr(uav),
|
||||
} orelse return;
|
||||
const zcu = self.base.comp.module.?;
|
||||
const zcu = self.base.comp.zcu.?;
|
||||
const name_slice = name.toSlice(&zcu.intern_pool);
|
||||
const sym_index = metadata.getExportPtr(self, name_slice) orelse return;
|
||||
|
||||
@@ -1691,7 +1691,7 @@ pub fn flushModule(self: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_no
|
||||
defer sub_prog_node.end();
|
||||
|
||||
const pt: Zcu.PerThread = .{
|
||||
.zcu = comp.module orelse return error.LinkingWithoutZigSourceUnimplemented,
|
||||
.zcu = comp.zcu orelse return error.LinkingWithoutZigSourceUnimplemented,
|
||||
.tid = tid,
|
||||
};
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ pub fn linkWithLLD(self: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_no
|
||||
|
||||
// If there is no Zig code to compile, then we should skip flushing the output file because it
|
||||
// will not be part of the linker line anyway.
|
||||
const module_obj_path: ?[]const u8 = if (comp.module != null) blk: {
|
||||
const module_obj_path: ?[]const u8 = if (comp.zcu != null) blk: {
|
||||
try self.flushModule(arena, tid, prog_node);
|
||||
|
||||
if (fs.path.dirname(full_out_path)) |dirname| {
|
||||
@@ -296,7 +296,7 @@ pub fn linkWithLLD(self: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_no
|
||||
if (self.subsystem) |explicit| break :blk explicit;
|
||||
switch (target.os.tag) {
|
||||
.windows => {
|
||||
if (comp.module) |module| {
|
||||
if (comp.zcu) |module| {
|
||||
if (module.stage1_flags.have_dllmain_crt_startup or is_dyn_lib)
|
||||
break :blk null;
|
||||
if (module.stage1_flags.have_c_main or comp.config.is_test or
|
||||
@@ -440,7 +440,7 @@ pub fn linkWithLLD(self: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_no
|
||||
} else {
|
||||
try argv.append("-NODEFAULTLIB");
|
||||
if (!is_lib and entry_name == null) {
|
||||
if (comp.module) |module| {
|
||||
if (comp.zcu) |module| {
|
||||
if (module.stage1_flags.have_winmain_crt_startup) {
|
||||
try argv.append("-ENTRY:WinMainCRTStartup");
|
||||
} else {
|
||||
|
||||
@@ -212,7 +212,7 @@ pub fn createEmpty(
|
||||
|
||||
const use_lld = build_options.have_llvm and comp.config.use_lld;
|
||||
const use_llvm = comp.config.use_llvm;
|
||||
const opt_zcu = comp.module;
|
||||
const opt_zcu = comp.zcu;
|
||||
const output_mode = comp.config.output_mode;
|
||||
const link_mode = comp.config.link_mode;
|
||||
const optimize_mode = comp.root_mod.optimize_mode;
|
||||
@@ -2084,7 +2084,7 @@ fn linkWithLLD(self: *Elf, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: s
|
||||
|
||||
// If there is no Zig code to compile, then we should skip flushing the output file because it
|
||||
// will not be part of the linker line anyway.
|
||||
const module_obj_path: ?[]const u8 = if (comp.module != null) blk: {
|
||||
const module_obj_path: ?[]const u8 = if (comp.zcu != null) blk: {
|
||||
try self.flushModule(arena, tid, prog_node);
|
||||
|
||||
if (fs.path.dirname(full_out_path)) |dirname| {
|
||||
|
||||
@@ -128,7 +128,7 @@ pub fn deinit(self: *ZigObject, allocator: Allocator) void {
|
||||
pub fn flushModule(self: *ZigObject, elf_file: *Elf, tid: Zcu.PerThread.Id) !void {
|
||||
// Handle any lazy symbols that were emitted by incremental compilation.
|
||||
if (self.lazy_syms.getPtr(.anyerror_type)) |metadata| {
|
||||
const pt: Zcu.PerThread = .{ .zcu = elf_file.base.comp.module.?, .tid = tid };
|
||||
const pt: Zcu.PerThread = .{ .zcu = elf_file.base.comp.zcu.?, .tid = tid };
|
||||
|
||||
// Most lazy symbols can be updated on first use, but
|
||||
// anyerror needs to wait for everything to be flushed.
|
||||
@@ -949,7 +949,7 @@ pub fn getOrCreateMetadataForNav(
|
||||
if (!gop.found_existing) {
|
||||
const any_non_single_threaded = elf_file.base.comp.config.any_non_single_threaded;
|
||||
const symbol_index = try self.newSymbolWithAtom(gpa, 0);
|
||||
const zcu = elf_file.base.comp.module.?;
|
||||
const zcu = elf_file.base.comp.zcu.?;
|
||||
const nav_val = Value.fromInterned(zcu.intern_pool.getNav(nav_index).status.resolved.val);
|
||||
const sym = self.symbol(symbol_index);
|
||||
if (nav_val.getVariable(zcu)) |variable| {
|
||||
@@ -1626,7 +1626,7 @@ pub fn deleteExport(
|
||||
.nav => |nav| self.navs.getPtr(nav),
|
||||
.uav => |uav| self.uavs.getPtr(uav),
|
||||
} orelse return;
|
||||
const mod = elf_file.base.comp.module.?;
|
||||
const mod = elf_file.base.comp.zcu.?;
|
||||
const exp_name = name.toSlice(&mod.intern_pool);
|
||||
const esym_index = metadata.@"export"(self, exp_name) orelse return;
|
||||
log.debug("deleting export '{s}'", .{exp_name});
|
||||
|
||||
@@ -164,7 +164,7 @@ pub fn createEmpty(
|
||||
|
||||
const gpa = comp.gpa;
|
||||
const use_llvm = comp.config.use_llvm;
|
||||
const opt_zcu = comp.module;
|
||||
const opt_zcu = comp.zcu;
|
||||
const optimize_mode = comp.root_mod.optimize_mode;
|
||||
const output_mode = comp.config.output_mode;
|
||||
const link_mode = comp.config.link_mode;
|
||||
|
||||
@@ -566,7 +566,7 @@ pub fn getInputSection(self: ZigObject, atom: Atom, macho_file: *MachO) macho.se
|
||||
pub fn flushModule(self: *ZigObject, macho_file: *MachO, tid: Zcu.PerThread.Id) !void {
|
||||
// Handle any lazy symbols that were emitted by incremental compilation.
|
||||
if (self.lazy_syms.getPtr(.anyerror_type)) |metadata| {
|
||||
const pt: Zcu.PerThread = .{ .zcu = macho_file.base.comp.module.?, .tid = tid };
|
||||
const pt: Zcu.PerThread = .{ .zcu = macho_file.base.comp.zcu.?, .tid = tid };
|
||||
|
||||
// Most lazy symbols can be updated on first use, but
|
||||
// anyerror needs to wait for everything to be flushed.
|
||||
@@ -1437,7 +1437,7 @@ pub fn deleteExport(
|
||||
exported: Zcu.Exported,
|
||||
name: InternPool.NullTerminatedString,
|
||||
) void {
|
||||
const mod = macho_file.base.comp.module.?;
|
||||
const mod = macho_file.base.comp.zcu.?;
|
||||
|
||||
const metadata = switch (exported) {
|
||||
.nav => |nav| self.navs.getPtr(nav),
|
||||
@@ -1545,7 +1545,7 @@ pub fn getOrCreateMetadataForLazySymbol(
|
||||
fn isThreadlocal(macho_file: *MachO, nav_index: InternPool.Nav.Index) bool {
|
||||
if (!macho_file.base.comp.config.any_non_single_threaded)
|
||||
return false;
|
||||
const ip = &macho_file.base.comp.module.?.intern_pool;
|
||||
const ip = &macho_file.base.comp.zcu.?.intern_pool;
|
||||
return switch (ip.indexToKey(ip.getNav(nav_index).status.resolved.val)) {
|
||||
.variable => |variable| variable.is_threadlocal,
|
||||
.@"extern" => |@"extern"| @"extern".is_threadlocal,
|
||||
|
||||
@@ -152,7 +152,7 @@ pub const Atom = struct {
|
||||
return .{ .code_ptr = slice.ptr, .other = .{ .code_len = slice.len } };
|
||||
}
|
||||
fn getCode(self: CodePtr, plan9: *const Plan9) []u8 {
|
||||
const zcu = plan9.base.comp.module.?;
|
||||
const zcu = plan9.base.comp.zcu.?;
|
||||
const ip = &zcu.intern_pool;
|
||||
return if (self.code_ptr) |p| p[0..self.other.code_len] else blk: {
|
||||
const nav_index = self.other.nav_index;
|
||||
@@ -317,7 +317,7 @@ pub fn createEmpty(
|
||||
|
||||
fn putFn(self: *Plan9, nav_index: InternPool.Nav.Index, out: FnNavOutput) !void {
|
||||
const gpa = self.base.comp.gpa;
|
||||
const mod = self.base.comp.module.?;
|
||||
const mod = self.base.comp.zcu.?;
|
||||
const file_scope = mod.navFileScopeIndex(nav_index);
|
||||
const fn_map_res = try self.fn_nav_table.getOrPut(gpa, file_scope);
|
||||
if (fn_map_res.found_existing) {
|
||||
@@ -607,7 +607,7 @@ pub fn flushModule(self: *Plan9, arena: Allocator, tid: Zcu.PerThread.Id, prog_n
|
||||
defer assert(self.hdr.entry != 0x0);
|
||||
|
||||
const pt: Zcu.PerThread = .{
|
||||
.zcu = self.base.comp.module orelse return error.LinkingWithoutZigSourceUnimplemented,
|
||||
.zcu = self.base.comp.zcu orelse return error.LinkingWithoutZigSourceUnimplemented,
|
||||
.tid = tid,
|
||||
};
|
||||
|
||||
@@ -952,7 +952,7 @@ pub fn freeDecl(self: *Plan9, decl_index: InternPool.DeclIndex) void {
|
||||
const gpa = self.base.comp.gpa;
|
||||
// TODO audit the lifetimes of decls table entries. It's possible to get
|
||||
// freeDecl without any updateDecl in between.
|
||||
const mod = self.base.comp.module.?;
|
||||
const mod = self.base.comp.zcu.?;
|
||||
const decl = mod.declPtr(decl_index);
|
||||
const is_fn = decl.val.isFuncBody(mod);
|
||||
if (is_fn) {
|
||||
@@ -1256,7 +1256,7 @@ pub fn writeSym(self: *Plan9, w: anytype, sym: aout.Sym) !void {
|
||||
}
|
||||
|
||||
pub fn writeSyms(self: *Plan9, buf: *std.ArrayList(u8)) !void {
|
||||
const mod = self.base.comp.module.?;
|
||||
const mod = self.base.comp.zcu.?;
|
||||
const ip = &mod.intern_pool;
|
||||
const writer = buf.writer();
|
||||
// write __GOT
|
||||
|
||||
@@ -229,7 +229,7 @@ pub fn flushModule(self: *SpirV, arena: Allocator, tid: Zcu.PerThread.Id, prog_n
|
||||
defer error_info.deinit();
|
||||
|
||||
try error_info.appendSlice("zig_errors:");
|
||||
const ip = &self.base.comp.module.?.intern_pool;
|
||||
const ip = &self.base.comp.zcu.?.intern_pool;
|
||||
for (ip.global_error_set.getNamesFromMainThread()) |name| {
|
||||
// Errors can contain pretty much any character - to encode them in a string we must escape
|
||||
// them somehow. Easiest here is to use some established scheme, one which also preseves the
|
||||
|
||||
@@ -556,7 +556,7 @@ pub fn createEmpty(
|
||||
}
|
||||
}
|
||||
|
||||
if (comp.module) |zcu| {
|
||||
if (comp.zcu) |zcu| {
|
||||
if (!use_llvm) {
|
||||
const index: File.Index = @enumFromInt(wasm.files.len);
|
||||
var zig_object: ZigObject = .{
|
||||
@@ -3352,7 +3352,7 @@ fn linkWithLLD(wasm: *Wasm, arena: Allocator, tid: Zcu.PerThread.Id, prog_node:
|
||||
|
||||
// If there is no Zig code to compile, then we should skip flushing the output file because it
|
||||
// will not be part of the linker line anyway.
|
||||
const module_obj_path: ?[]const u8 = if (comp.module != null) blk: {
|
||||
const module_obj_path: ?[]const u8 = if (comp.zcu != null) blk: {
|
||||
try wasm.flushModule(arena, tid, prog_node);
|
||||
|
||||
if (fs.path.dirname(full_out_path)) |dirname| {
|
||||
|
||||
@@ -487,7 +487,7 @@ fn lowerConst(
|
||||
src_loc: Zcu.LazySrcLoc,
|
||||
) !LowerConstResult {
|
||||
const gpa = wasm_file.base.comp.gpa;
|
||||
const zcu = wasm_file.base.comp.module.?;
|
||||
const zcu = wasm_file.base.comp.zcu.?;
|
||||
|
||||
const ty = val.typeOf(zcu);
|
||||
|
||||
@@ -604,7 +604,7 @@ fn populateErrorNameTable(zig_object: *ZigObject, wasm_file: *Wasm, tid: Zcu.Per
|
||||
|
||||
// Addend for each relocation to the table
|
||||
var addend: u32 = 0;
|
||||
const pt: Zcu.PerThread = .{ .zcu = wasm_file.base.comp.module.?, .tid = tid };
|
||||
const pt: Zcu.PerThread = .{ .zcu = wasm_file.base.comp.zcu.?, .tid = tid };
|
||||
const slice_ty = Type.slice_const_u8_sentinel_0;
|
||||
const atom = wasm_file.getAtomPtr(atom_index);
|
||||
{
|
||||
@@ -803,7 +803,7 @@ pub fn getUavVAddr(
|
||||
const parent_atom_index = wasm_file.symbol_atom.get(.{ .file = zig_object.index, .index = @enumFromInt(reloc_info.parent_atom_index) }).?;
|
||||
const parent_atom = wasm_file.getAtomPtr(parent_atom_index);
|
||||
const is_wasm32 = target.cpu.arch == .wasm32;
|
||||
const mod = wasm_file.base.comp.module.?;
|
||||
const mod = wasm_file.base.comp.zcu.?;
|
||||
const ty = Type.fromInterned(mod.intern_pool.typeOf(uav));
|
||||
if (ty.zigTypeTag(mod) == .Fn) {
|
||||
std.debug.assert(reloc_info.addend == 0); // addend not allowed for function relocations
|
||||
@@ -834,7 +834,7 @@ pub fn deleteExport(
|
||||
exported: Zcu.Exported,
|
||||
name: InternPool.NullTerminatedString,
|
||||
) void {
|
||||
const mod = wasm_file.base.comp.module.?;
|
||||
const mod = wasm_file.base.comp.zcu.?;
|
||||
const nav_index = switch (exported) {
|
||||
.nav => |nav_index| nav_index,
|
||||
.uav => @panic("TODO: implement Wasm linker code for exporting a constant value"),
|
||||
@@ -930,7 +930,7 @@ pub fn updateExports(
|
||||
|
||||
pub fn freeNav(zig_object: *ZigObject, wasm_file: *Wasm, nav_index: InternPool.Nav.Index) void {
|
||||
const gpa = wasm_file.base.comp.gpa;
|
||||
const mod = wasm_file.base.comp.module.?;
|
||||
const mod = wasm_file.base.comp.zcu.?;
|
||||
const ip = &mod.intern_pool;
|
||||
const nav_info = zig_object.navs.getPtr(nav_index).?;
|
||||
const atom_index = nav_info.atom;
|
||||
@@ -1016,7 +1016,7 @@ fn setupErrorsLen(zig_object: *ZigObject, wasm_file: *Wasm) !void {
|
||||
const gpa = wasm_file.base.comp.gpa;
|
||||
const sym_index = zig_object.findGlobalSymbol("__zig_errors_len") orelse return;
|
||||
|
||||
const errors_len = 1 + wasm_file.base.comp.module.?.intern_pool.global_error_set.getNamesFromMainThread().len;
|
||||
const errors_len = 1 + wasm_file.base.comp.zcu.?.intern_pool.global_error_set.getNamesFromMainThread().len;
|
||||
// overwrite existing atom if it already exists (maybe the error set has increased)
|
||||
// if not, allocate a new atom.
|
||||
const atom_index = if (wasm_file.symbol_atom.get(.{ .file = zig_object.index, .index = sym_index })) |index| blk: {
|
||||
|
||||
Reference in New Issue
Block a user