Zig 0.17.0-dev (Split by item)

This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig library itself.

AddrSpace

Builder.AddrSpace
pub const AddrSpace = enum(u24)

File

lib/std/zig/llvm/Builder.zig:1904

Code

pub const AddrSpace = enum(u24) {
    default,
    _,

    // See llvm/lib/Target/X86/X86.h
    pub const x86 = struct {
        pub const gs: AddrSpace = @fromBackingInt(@intCast(256));
        pub const fs: AddrSpace = @fromBackingInt(@intCast(257));
        pub const ss: AddrSpace = @fromBackingInt(@intCast(258));

        pub const ptr32_sptr: AddrSpace = @fromBackingInt(@intCast(270));
        pub const ptr32_uptr: AddrSpace = @fromBackingInt(@intCast(271));
        pub const ptr64: AddrSpace = @fromBackingInt(@intCast(272));
    };
    pub const x86_64 = x86;

    // See llvm/lib/Target/AVR/AVR.h
    pub const avr = struct {
        pub const data: AddrSpace = @fromBackingInt(@intCast(0));
        pub const program: AddrSpace = @fromBackingInt(@intCast(1));
        pub const program1: AddrSpace = @fromBackingInt(@intCast(2));
        pub const program2: AddrSpace = @fromBackingInt(@intCast(3));
        pub const program3: AddrSpace = @fromBackingInt(@intCast(4));
        pub const program4: AddrSpace = @fromBackingInt(@intCast(5));
        pub const program5: AddrSpace = @fromBackingInt(@intCast(6));
    };

    // See llvm/lib/Target/NVPTX/NVPTX.h
    pub const nvptx = struct {
        pub const generic: AddrSpace = @fromBackingInt(@intCast(0));
        pub const global: AddrSpace = @fromBackingInt(@intCast(1));
        pub const constant: AddrSpace = @fromBackingInt(@intCast(2));
        pub const shared: AddrSpace = @fromBackingInt(@intCast(3));
        pub const param: AddrSpace = @fromBackingInt(@intCast(4));
        pub const local: AddrSpace = @fromBackingInt(@intCast(5));
    };

    // See llvm/lib/Target/AMDGPU/AMDGPU.h
    pub const amdgpu = struct {
        pub const flat: AddrSpace = @fromBackingInt(@intCast(0));
        pub const global: AddrSpace = @fromBackingInt(@intCast(1));
        pub const region: AddrSpace = @fromBackingInt(@intCast(2));
        pub const local: AddrSpace = @fromBackingInt(@intCast(3));
        pub const constant: AddrSpace = @fromBackingInt(@intCast(4));
        pub const private: AddrSpace = @fromBackingInt(@intCast(5));
        pub const constant_32bit: AddrSpace = @fromBackingInt(@intCast(6));
        pub const buffer_fat_pointer: AddrSpace = @fromBackingInt(@intCast(7));
        pub const buffer_resource: AddrSpace = @fromBackingInt(@intCast(8));
        pub const buffer_strided_pointer: AddrSpace = @fromBackingInt(@intCast(9));
        pub const param_d: AddrSpace = @fromBackingInt(@intCast(6));
        pub const param_i: AddrSpace = @fromBackingInt(@intCast(7));
        pub const constant_buffer_0: AddrSpace = @fromBackingInt(@intCast(8));
        pub const constant_buffer_1: AddrSpace = @fromBackingInt(@intCast(9));
        pub const constant_buffer_2: AddrSpace = @fromBackingInt(@intCast(10));
        pub const constant_buffer_3: AddrSpace = @fromBackingInt(@intCast(11));
        pub const constant_buffer_4: AddrSpace = @fromBackingInt(@intCast(12));
        pub const constant_buffer_5: AddrSpace = @fromBackingInt(@intCast(13));
        pub const constant_buffer_6: AddrSpace = @fromBackingInt(@intCast(14));
        pub const constant_buffer_7: AddrSpace = @fromBackingInt(@intCast(15));
        pub const constant_buffer_8: AddrSpace = @fromBackingInt(@intCast(16));
        pub const constant_buffer_9: AddrSpace = @fromBackingInt(@intCast(17));
        pub const constant_buffer_10: AddrSpace = @fromBackingInt(@intCast(18));
        pub const constant_buffer_11: AddrSpace = @fromBackingInt(@intCast(19));
        pub const constant_buffer_12: AddrSpace = @fromBackingInt(@intCast(20));
        pub const constant_buffer_13: AddrSpace = @fromBackingInt(@intCast(21));
        pub const constant_buffer_14: AddrSpace = @fromBackingInt(@intCast(22));
        pub const constant_buffer_15: AddrSpace = @fromBackingInt(@intCast(23));
        pub const streamout_register: AddrSpace = @fromBackingInt(@intCast(128));
    };

    pub const spirv = struct {
        pub const function: AddrSpace = @fromBackingInt(@intCast(0));
        pub const cross_workgroup: AddrSpace = @fromBackingInt(@intCast(1));
        pub const uniform_constant: AddrSpace = @fromBackingInt(@intCast(2));
        pub const workgroup: AddrSpace = @fromBackingInt(@intCast(3));
        pub const generic: AddrSpace = @fromBackingInt(@intCast(4));
        pub const device_only_intel: AddrSpace = @fromBackingInt(@intCast(5));
        pub const host_only_intel: AddrSpace = @fromBackingInt(@intCast(6));
        pub const input: AddrSpace = @fromBackingInt(@intCast(7));
    };

    // See llvm/include/llvm/CodeGen/WasmAddressSpaces.h
    pub const wasm = struct {
        pub const default: AddrSpace = @fromBackingInt(@intCast(0));
        pub const variable: AddrSpace = @fromBackingInt(@intCast(1));
        pub const externref: AddrSpace = @fromBackingInt(@intCast(10));
        pub const funcref: AddrSpace = @fromBackingInt(@intCast(20));
    };

    pub fn format(addr_space: AddrSpace, w: *Writer) Writer.Error!void {
        return Prefixed.format(.{ .addr_space = addr_space, .prefix = "" }, w);
    }

    pub const Prefixed = struct {
        addr_space: AddrSpace,
        prefix: []const u8,

        pub fn format(p: Prefixed, w: *Writer) Writer.Error!void {
            switch (p.addr_space) {
                .default => return,
                else => return w.print("{s}addrspace({d})", .{ p.prefix, p.addr_space }),
            }
        }
    };

    pub fn fmt(addr_space: AddrSpace, prefix: []const u8) Prefixed {
        return .{ .addr_space = addr_space, .prefix = prefix };
    }
}