tiny.choir.backends.gpu.registration
Defined in backends.gpu.
API (4)
Actions
Public operations.
prepareCompilationDialects: Load the native compilation dialect closure before an owned program Context activates.registerTargetDialects
Values and defaults
Public values and defaults.
Source
Source: lib/choir/src/backends/gpu/registration.zig
zig
const std = @import("std");const choir = @import("../../root.zig");const gpu = @import("../../dialects/gpu/root.zig");const spirv = @import("spirv/root.zig");const nvptx = @import("nvptx/root.zig");const lowering = @import("lowering.zig");fn loadGpuDialect(ctx: *choir.ir.Context) !void { try choir.ir.dialects.loadDialectSpec(ctx, gpu.GpuDialect.spec);}fn loadSpirvDialect(ctx: *choir.ir.Context) !void { try choir.ir.dialects.loadDialectSpec(ctx, spirv.SpirvDialect.spec);}fn loadNvptxDialect(ctx: *choir.ir.Context) !void { try choir.ir.dialects.loadDialectSpec(ctx, nvptx.NvptxDialect.spec);}pub const dialect_registrations = [_]choir.extensions.DialectRegistration{ .{ .name = "gpu", .load = loadGpuDialect }, .{ .name = "spirv", .load = loadSpirvDialect, .is_backend = true }, .{ .name = "nvptx", .load = loadNvptxDialect, .is_backend = true },};pub const package_extension = choir.extensions.PackageExtension{ .name = "choir-gpu", .dialects = &dialect_registrations, .passes = &lowering.pass_registrations, .pipelines = &lowering.pipeline_registrations,};pub fn registerTargetDialects(ctx: *choir.ir.Context) !void { for (dialect_registrations) |registration| { ctx.registerDialectLoader(registration.name, registration.load) catch |err| switch (err) { error.DuplicateDialectLoader => {}, else => return err, }; if (registration.is_backend) try ctx.registerBackendDialect(registration.name); }}/// Load the native compilation dialect closure before an owned program Context activates.pub fn prepareCompilationDialects(ctx: *choir.ir.Context) !void { try choir.dialects.registerChoirDialect(ctx); try registerTargetDialects(ctx); inline for (.{ "builtin", "arith", "memref", "scf", "func" }) |name| { _ = try ctx.getOrLoadDialect(name); } for (dialect_registrations) |registration| _ = try ctx.getOrLoadDialect(registration.name);}test "registerTargetDialects is idempotent for kernel contexts" { const testing = std.testing; var ctx = try choir.ir.Context.init(testing.allocator, choir.ir.Context.Limits.testing); defer ctx.deinit(testing.allocator); try registerTargetDialects(&ctx); try registerTargetDialects(&ctx); _ = try ctx.getOrLoadDialect("gpu"); _ = try ctx.getOrLoadDialect("spirv"); _ = try ctx.getOrLoadDialect("nvptx"); try testing.expect(ctx.isBackendDialect("spirv")); try testing.expect(ctx.isBackendDialect("nvptx"));}Source: lib/choir/src/backends/gpu/root.zig:10
zig
pub const registration = @import("registration.zig");Complete caller list for backends.gpu.registration.prepareCompilationDialects
8 direct callers.
lib.choir.src.backends.gpu.cpu.test.Lowered.init[method] — private source atlib/choir/src/backends/gpu/cpu/test.zig:29in nearest public ownerlib.choir.src.backends.gpu.cpu.testlib.choir.src.backends.gpu.cpu.test.test_host_loop_lowering_rejects_a_parsed_lane_id[function] — test source atlib/choir/src/backends/gpu/cpu/test.zig:136in nearest public ownerlib.choir.src.backends.gpu.cpu.testlib.choir.src.backends.gpu.fixture.text.emitText[function] — private source atlib/choir/src/backends/gpu/fixture/text.zig:47in nearest public ownerlib.choir.src.backends.gpu.fixture.textlib.choir.src.backends.gpu.metal.test.emitStages[function] — private source atlib/choir/src/backends/gpu/metal/test.zig:76in nearest public ownerlib.choir.src.backends.gpu.metal.testlib.choir.src.backends.gpu.spirv.emitter.test.emitFixture[function] — private source atlib/choir/src/backends/gpu/spirv/emitter/test.zig:26in nearest public ownerlib.choir.src.backends.gpu.spirv.emitter.testlib.choir.src.backends.gpu.spirv.emitter.test.emitStageCase[function] — private source atlib/choir/src/backends/gpu/spirv/emitter/test.zig:138in nearest public ownerlib.choir.src.backends.gpu.spirv.emitter.testlib.choir.src.backends.gpu.spirv.emitter.test.emitStageSource[function] — private source atlib/choir/src/backends/gpu/spirv/emitter/test.zig:269in nearest public ownerlib.choir.src.backends.gpu.spirv.emitter.testlib.choir.src.backends.gpu.spirv.emitter.test.test_gpu_dialect_refuses_a_derivative_inside_a_non-stage_helper[function] — test source atlib/choir/src/backends/gpu/spirv/emitter/test.zig:297in nearest public ownerlib.choir.src.backends.gpu.spirv.emitter.test
Audit
| Definitions | 5 |
|---|---|
| Public names | 9 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |