From 94af47d28c83efa3dc26ee0b47b224b823c9b333 Mon Sep 17 00:00:00 2001 From: Ali Cheraghi Date: Mon, 24 Feb 2025 02:38:07 +0330 Subject: [PATCH] spirv: do not generate unnecessary forward pointer Co-authored-by: Robin Voetter --- src/codegen/spirv.zig | 2 ++ src/link/SpirV/prune_unused.zig | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig index de7f3a0699..22aa9e7df0 100644 --- a/src/codegen/spirv.zig +++ b/src/codegen/spirv.zig @@ -1300,6 +1300,8 @@ const NavGen = struct { .type = child_ty_id, }); + self.ptr_types.getPtr(key).?.fwd_emitted = true; + return result_id; } diff --git a/src/link/SpirV/prune_unused.zig b/src/link/SpirV/prune_unused.zig index 59be6a5b1e..51903f9424 100644 --- a/src/link/SpirV/prune_unused.zig +++ b/src/link/SpirV/prune_unused.zig @@ -39,6 +39,7 @@ fn canPrune(op: Opcode) bool { .Arithmetic, .RelationalAndLogical, .Bit, + .Annotation, => true, else => switch (op) { .OpFunction, @@ -273,7 +274,7 @@ pub fn run(parser: *BinaryModule.Parser, binary: *BinaryModule, progress: std.Pr .alive = try std.DynamicBitSetUnmanaged.initEmpty(a, info.result_id_to_code_offset.count()), }; - // Mark initial stuff as slive + // Mark initial stuff as alive { var it = binary.iterateInstructions(); while (it.next()) |inst| {