aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/spirv.zig
diff options
context:
space:
mode:
authorRobin Voetter <robin@voetter.nl>2023-09-21 23:02:53 +0200
committerAndrew Kelley <andrew@ziglang.org>2023-09-23 12:36:56 -0700
commit572517376a7695693c59a0ec4ec6cc5442003e3a (patch)
tree6b93537b4f022f84e3646598b9af6721258969bc /src/codegen/spirv.zig
parent68c7fc5c595b4a48f95b3f2f8c4d0a6c3a388667 (diff)
downloadzig-572517376a7695693c59a0ec4ec6cc5442003e3a.tar.gz
zig-572517376a7695693c59a0ec4ec6cc5442003e3a.zip
spirv: air dbg_var_val and dbg_var_ptr
Diffstat (limited to 'src/codegen/spirv.zig')
-rw-r--r--src/codegen/spirv.zig34
1 files changed, 14 insertions, 20 deletions
diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig
index b7d749e141..97574961bc 100644
--- a/src/codegen/spirv.zig
+++ b/src/codegen/spirv.zig
@@ -1474,10 +1474,7 @@ pub const DeclGen = struct {
try self.spv.addFunction(spv_decl_index, self.func);
const fqn = ip.stringToSlice(try decl.getFullyQualifiedName(self.module));
- try self.spv.sections.debug_names.emit(self.gpa, .OpName, .{
- .target = decl_id,
- .name = fqn,
- });
+ try self.spv.debugName(decl_id, fqn);
// Temporarily generate a test kernel declaration if this is a test function.
if (self.module.test_functions.contains(self.decl_index)) {
@@ -1548,17 +1545,8 @@ pub const DeclGen = struct {
try self.spv.addFunction(spv_decl_index, self.func);
const fqn = ip.stringToSlice(try decl.getFullyQualifiedName(self.module));
- try self.spv.sections.debug_names.emit(self.gpa, .OpName, .{
- .target = decl_id,
- .name = fqn,
- });
-
- const init_name = try std.fmt.allocPrint(self.gpa, "initializer of {s}", .{fqn});
- defer self.gpa.free(init_name);
- try self.spv.sections.debug_names.emit(self.gpa, .OpName, .{
- .target = initializer_id,
- .name = init_name,
- });
+ try self.spv.debugName(decl_id, fqn);
+ try self.spv.debugNameFmt(initializer_id, "initializer of {s}", .{fqn});
}
}
@@ -1756,11 +1744,10 @@ pub const DeclGen = struct {
.switch_br => return self.airSwitchBr(inst),
.unreach, .trap => return self.airUnreach(),
- .dbg_stmt => return self.airDbgStmt(inst),
- .dbg_inline_begin => return self.airDbgInlineBegin(inst),
- .dbg_inline_end => return self.airDbgInlineEnd(inst),
- .dbg_var_ptr => return,
- .dbg_var_val => return,
+ .dbg_stmt => return self.airDbgStmt(inst),
+ .dbg_inline_begin => return self.airDbgInlineBegin(inst),
+ .dbg_inline_end => return self.airDbgInlineEnd(inst),
+ .dbg_var_ptr, .dbg_var_val => return self.airDbgVar(inst),
.dbg_block_begin => return,
.dbg_block_end => return,
@@ -3566,6 +3553,13 @@ pub const DeclGen = struct {
_ = self.base_line_stack.pop();
}
+ fn airDbgVar(self: *DeclGen, inst: Air.Inst.Index) !void {
+ const pl_op = self.air.instructions.items(.data)[inst].pl_op;
+ const target_id = try self.resolve(pl_op.operand);
+ const name = self.air.nullTerminatedString(pl_op.payload);
+ try self.spv.debugName(target_id, name);
+ }
+
fn airAssembly(self: *DeclGen, inst: Air.Inst.Index) !?IdRef {
const mod = self.module;
const ty_pl = self.air.instructions.items(.data)[inst].ty_pl;