lib/choir/src/backends/gpu/spirv/emitter/emit.zig

daab053ee43316e1809a84551d573ddd1e5bf3d2

 1 const std = @import("std");
 2 const choir = @import("../../../../root.zig");
 3 
 4 const ir = choir.ir;
 5 const codegen = @import("codegen.zig");
 6 
 7 pub const Emitter = struct {
 8     codegen: codegen.SpirvCodegen,
 9 
10     pub fn init(allocator: std.mem.Allocator) Emitter {
11         return .{ .codegen = codegen.SpirvCodegen.init(allocator) };
12     }
13 
14     pub fn deinit(self: *Emitter) void {
15         self.codegen.deinit();
16     }
17 
18     pub fn setFloatControls(self: *Emitter, controls: codegen.FloatControls) void {
19         self.codegen.float_controls = controls;
20     }
21 
22     pub fn emitModuleBytes(self: *Emitter, module: *ir.Operation) codegen.SpirvCodegenError![]u8 {
23         return self.codegen.emitModuleBytes(module);
24     }
25 
26     pub fn emitModuleWords(self: *Emitter, module: *ir.Operation) codegen.SpirvCodegenError![]u32 {
27         return self.codegen.emitModuleWords(module);
28     }
29 };
30 
31 test {
32     const std_testing = std.testing;
33     std_testing.refAllDecls(@This());
34 }