Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
LLVM: Pass correct tid to emit
Browse files Browse the repository at this point in the history
antlilja committed Aug 16, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent e230af8 commit 0b0e7bf
Showing 6 changed files with 27 additions and 10 deletions.
13 changes: 11 additions & 2 deletions src/Compilation.zig
Original file line number Diff line number Diff line change
@@ -2456,7 +2456,15 @@ fn flush(comp: *Compilation, arena: Allocator, tid: Zcu.PerThread.Id, prog_node:
.sub_path = "dummy",
},
};
try emitLlvmObject(comp, arena, default_emit, null, llvm_object, prog_node);
try emitLlvmObject(
comp,
arena,
default_emit,
null,
llvm_object,
prog_node,
tid,
);
}
}
}
@@ -2741,13 +2749,14 @@ pub fn emitLlvmObject(
bin_emit_loc: ?EmitLoc,
llvm_object: LlvmObject.Ptr,
prog_node: std.Progress.Node,
tid: Zcu.PerThread.Id,
) !void {
const sub_prog_node = prog_node.start("LLVM Emit Object", 0);
defer sub_prog_node.end();

try llvm_object.emit(.{
.zcu = comp.module.?,
.tid = .main,
.tid = tid,
}, .{
.pre_ir_path = comp.verbose_llvm_ir,
.pre_bc_path = comp.verbose_llvm_bc,
16 changes: 12 additions & 4 deletions src/link.zig
Original file line number Diff line number Diff line change
@@ -1014,11 +1014,19 @@ pub const File = struct {
arena: Allocator,
llvm_object: LlvmObject.Ptr,
prog_node: std.Progress.Node,
tid: Zcu.PerThread.Id,
) !void {
return base.comp.emitLlvmObject(arena, base.emit, .{
.directory = null,
.basename = base.zcu_object_sub_path.?,
}, llvm_object, prog_node);
return base.comp.emitLlvmObject(
arena,
base.emit,
.{
.directory = null,
.basename = base.zcu_object_sub_path.?,
},
llvm_object,
prog_node,
tid,
);
}

pub const C = @import("link/C.zig");
2 changes: 1 addition & 1 deletion src/link/Coff.zig
Original file line number Diff line number Diff line change
@@ -1679,7 +1679,7 @@ pub fn flushModule(self: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_no
const gpa = comp.gpa;

if (self.llvm_object) |llvm_object| {
try self.base.emitLlvmObject(arena, llvm_object, prog_node);
try self.base.emitLlvmObject(arena, llvm_object, prog_node, tid);
return;
}

2 changes: 1 addition & 1 deletion src/link/Elf.zig
Original file line number Diff line number Diff line change
@@ -1016,7 +1016,7 @@ pub fn flushModule(self: *Elf, arena: Allocator, tid: Zcu.PerThread.Id, prog_nod
const gpa = comp.gpa;

if (self.llvm_object) |llvm_object| {
try self.base.emitLlvmObject(arena, llvm_object, prog_node);
try self.base.emitLlvmObject(arena, llvm_object, prog_node, tid);
const use_lld = build_options.have_llvm and comp.config.use_lld;
if (use_lld) return;
}
2 changes: 1 addition & 1 deletion src/link/MachO.zig
Original file line number Diff line number Diff line change
@@ -348,7 +348,7 @@ pub fn flushModule(self: *MachO, arena: Allocator, tid: Zcu.PerThread.Id, prog_n
const gpa = comp.gpa;

if (self.llvm_object) |llvm_object| {
try self.base.emitLlvmObject(arena, llvm_object, prog_node);
try self.base.emitLlvmObject(arena, llvm_object, prog_node, tid);
}

const sub_prog_node = prog_node.start("MachO Flush", 0);
2 changes: 1 addition & 1 deletion src/link/Wasm.zig
Original file line number Diff line number Diff line change
@@ -2488,7 +2488,7 @@ pub fn flushModule(wasm: *Wasm, arena: Allocator, tid: Zcu.PerThread.Id, prog_no

const comp = wasm.base.comp;
if (wasm.llvm_object) |llvm_object| {
try wasm.base.emitLlvmObject(arena, llvm_object, prog_node);
try wasm.base.emitLlvmObject(arena, llvm_object, prog_node, tid);
const use_lld = build_options.have_llvm and comp.config.use_lld;
if (use_lld) return;
}

0 comments on commit 0b0e7bf

Please sign in to comment.