authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-07-31 18:10:28-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-07-31 18:10:28-07:00
log70d39123908e29cde9fbfb540869e03ab86694e3
tree00461d726a66cc57de7173173c66823d51727ae6
parentd46446e4dfade96fe0db773ce4d8d1b7154cae92

update Target, CPU, OS, ABI, etc. to LLVM 15


15 files changed, 306 insertions(+), 56 deletions(-)

lib/std/target.zig+56-2
...@@ -40,9 +40,11 @@ pub const Target = struct {...@@ -40,9 +40,11 @@ pub const Target = struct {
40 nvcl,40 nvcl,
41 amdhsa,41 amdhsa,
42 ps4,42 ps4,
43 ps5,
43 elfiamcu,44 elfiamcu,
44 tvos,45 tvos,
45 watchos,46 watchos,
47 driverkit,
46 mesa3d,48 mesa3d,
47 contiki,49 contiki,
48 amdpal,50 amdpal,
...@@ -50,6 +52,7 @@ pub const Target = struct {...@@ -50,6 +52,7 @@ pub const Target = struct {
50 hurd,52 hurd,
51 wasi,53 wasi,
52 emscripten,54 emscripten,
55 shadermodel,
53 uefi,56 uefi,
54 opencl,57 opencl,
55 glsl450,58 glsl450,
...@@ -244,6 +247,7 @@ pub const Target = struct {...@@ -244,6 +247,7 @@ pub const Target = struct {
244 .nvcl,247 .nvcl,
245 .amdhsa,248 .amdhsa,
246 .ps4,249 .ps4,
250 .ps5,
247 .elfiamcu,251 .elfiamcu,
248 .mesa3d,252 .mesa3d,
249 .contiki,253 .contiki,
...@@ -252,6 +256,8 @@ pub const Target = struct {...@@ -252,6 +256,8 @@ pub const Target = struct {
252 .hurd,256 .hurd,
253 .wasi,257 .wasi,
254 .emscripten,258 .emscripten,
259 .driverkit,
260 .shadermodel,
255 .uefi,261 .uefi,
256 .opencl, // TODO: OpenCL versions262 .opencl, // TODO: OpenCL versions
257 .glsl450, // TODO: GLSL versions263 .glsl450, // TODO: GLSL versions
...@@ -419,6 +425,7 @@ pub const Target = struct {...@@ -419,6 +425,7 @@ pub const Target = struct {
419 .nvcl,425 .nvcl,
420 .amdhsa,426 .amdhsa,
421 .ps4,427 .ps4,
428 .ps5,
422 .elfiamcu,429 .elfiamcu,
423 .mesa3d,430 .mesa3d,
424 .contiki,431 .contiki,
...@@ -427,6 +434,8 @@ pub const Target = struct {...@@ -427,6 +434,8 @@ pub const Target = struct {
427 .hurd,434 .hurd,
428 .wasi,435 .wasi,
429 .emscripten,436 .emscripten,
437 .driverkit,
438 .shadermodel,
430 .uefi,439 .uefi,
431 .opencl,440 .opencl,
432 .glsl450,441 .glsl450,
...@@ -481,6 +490,21 @@ pub const Target = struct {...@@ -481,6 +490,21 @@ pub const Target = struct {
481 coreclr,490 coreclr,
482 simulator,491 simulator,
483 macabi,492 macabi,
493 pixel,
494 vertex,
495 geometry,
496 hull,
497 domain,
498 compute,
499 library,
500 raygeneration,
501 intersection,
502 anyhit,
503 closesthit,
504 miss,
505 callable,
506 mesh,
507 amplification,
484508
485 pub fn default(arch: Cpu.Arch, target_os: Os) Abi {509 pub fn default(arch: Cpu.Arch, target_os: Os) Abi {
486 if (arch.isWasm()) {510 if (arch.isWasm()) {
...@@ -502,6 +526,7 @@ pub const Target = struct {...@@ -502,6 +526,7 @@ pub const Target = struct {
502 .nvcl,526 .nvcl,
503 .amdhsa,527 .amdhsa,
504 .ps4,528 .ps4,
529 .ps5,
505 .elfiamcu,530 .elfiamcu,
506 .mesa3d,531 .mesa3d,
507 .contiki,532 .contiki,
...@@ -531,6 +556,8 @@ pub const Target = struct {...@@ -531,6 +556,8 @@ pub const Target = struct {
531 .ios,556 .ios,
532 .tvos,557 .tvos,
533 .watchos,558 .watchos,
559 .driverkit,
560 .shadermodel,
534 => return .none,561 => return .none,
535 }562 }
536 }563 }
...@@ -563,16 +590,18 @@ pub const Target = struct {...@@ -563,16 +590,18 @@ pub const Target = struct {
563 pub const ObjectFormat = enum {590 pub const ObjectFormat = enum {
564 /// Common Object File Format (Windows)591 /// Common Object File Format (Windows)
565 coff,592 coff,
593 /// DirectX Container
594 dxcontainer,
566 /// Executable and Linking Format595 /// Executable and Linking Format
567 elf,596 elf,
568 /// macOS relocatables597 /// macOS relocatables
569 macho,598 macho,
599 /// Standard, Portable Intermediate Representation V
600 spirv,
570 /// WebAssembly601 /// WebAssembly
571 wasm,602 wasm,
572 /// C source code603 /// C source code
573 c,604 c,
574 /// Standard, Portable Intermediate Representation V
575 spirv,
576 /// Intel IHEX605 /// Intel IHEX
577 hex,606 hex,
578 /// Machine code with no metadata.607 /// Machine code with no metadata.
...@@ -592,6 +621,7 @@ pub const Target = struct {...@@ -592,6 +621,7 @@ pub const Target = struct {
592 .raw => ".bin",621 .raw => ".bin",
593 .plan9 => plan9Ext(cpu_arch),622 .plan9 => plan9Ext(cpu_arch),
594 .nvptx => ".ptx",623 .nvptx => ".ptx",
624 .dxcontainer => @panic("TODO what's the extension for these?"),
595 };625 };
596 }626 }
597 };627 };
...@@ -769,7 +799,10 @@ pub const Target = struct {...@@ -769,7 +799,10 @@ pub const Target = struct {
769 bpfel,799 bpfel,
770 bpfeb,800 bpfeb,
771 csky,801 csky,
802 dxil,
772 hexagon,803 hexagon,
804 loongarch32,
805 loongarch64,
773 m68k,806 m68k,
774 mips,807 mips,
775 mipsel,808 mipsel,
...@@ -920,6 +953,7 @@ pub const Target = struct {...@@ -920,6 +953,7 @@ pub const Target = struct {
920 .arm => .ARM,953 .arm => .ARM,
921 .armeb => .ARM,954 .armeb => .ARM,
922 .hexagon => .HEXAGON,955 .hexagon => .HEXAGON,
956 .dxil => .NONE,
923 .m68k => .@"68K",957 .m68k => .@"68K",
924 .le32 => .NONE,958 .le32 => .NONE,
925 .mips => .MIPS,959 .mips => .MIPS,
...@@ -970,6 +1004,8 @@ pub const Target = struct {...@@ -970,6 +1004,8 @@ pub const Target = struct {
970 .spu_2 => .SPU_2,1004 .spu_2 => .SPU_2,
971 .spirv32 => .NONE,1005 .spirv32 => .NONE,
972 .spirv64 => .NONE,1006 .spirv64 => .NONE,
1007 .loongarch32 => .NONE,
1008 .loongarch64 => .NONE,
973 };1009 };
974 }1010 }
9751011
...@@ -980,6 +1016,7 @@ pub const Target = struct {...@@ -980,6 +1016,7 @@ pub const Target = struct {
980 .arc => .Unknown,1016 .arc => .Unknown,
981 .arm => .ARM,1017 .arm => .ARM,
982 .armeb => .Unknown,1018 .armeb => .Unknown,
1019 .dxil => .Unknown,
983 .hexagon => .Unknown,1020 .hexagon => .Unknown,
984 .m68k => .Unknown,1021 .m68k => .Unknown,
985 .le32 => .Unknown,1022 .le32 => .Unknown,
...@@ -1031,6 +1068,8 @@ pub const Target = struct {...@@ -1031,6 +1068,8 @@ pub const Target = struct {
1031 .spu_2 => .Unknown,1068 .spu_2 => .Unknown,
1032 .spirv32 => .Unknown,1069 .spirv32 => .Unknown,
1033 .spirv64 => .Unknown,1070 .spirv64 => .Unknown,
1071 .loongarch32 => .Unknown,
1072 .loongarch64 => .Unknown,
1034 };1073 };
1035 }1074 }
10361075
...@@ -1079,6 +1118,9 @@ pub const Target = struct {...@@ -1079,6 +1118,9 @@ pub const Target = struct {
1079 // GPU bitness is opaque. For now, assume little endian.1118 // GPU bitness is opaque. For now, assume little endian.
1080 .spirv32,1119 .spirv32,
1081 .spirv64,1120 .spirv64,
1121 .dxil,
1122 .loongarch32,
1123 .loongarch64,
1082 => .Little,1124 => .Little,
10831125
1084 .arc,1126 .arc,
...@@ -1139,6 +1181,8 @@ pub const Target = struct {...@@ -1139,6 +1181,8 @@ pub const Target = struct {
1139 .renderscript32,1181 .renderscript32,
1140 .aarch64_32,1182 .aarch64_32,
1141 .spirv32,1183 .spirv32,
1184 .loongarch32,
1185 .dxil,
1142 => return 32,1186 => return 32,
11431187
1144 .aarch64,1188 .aarch64,
...@@ -1163,6 +1207,7 @@ pub const Target = struct {...@@ -1163,6 +1207,7 @@ pub const Target = struct {
1163 .s390x,1207 .s390x,
1164 .ve,1208 .ve,
1165 .spirv64,1209 .spirv64,
1210 .loongarch64,
1166 => return 64,1211 => return 64,
1167 }1212 }
1168 }1213 }
...@@ -1636,6 +1681,9 @@ pub const Target = struct {...@@ -1636,6 +1681,9 @@ pub const Target = struct {
1636 .renderscript32,1681 .renderscript32,
1637 .renderscript64,1682 .renderscript64,
1638 .ve,1683 .ve,
1684 .dxil,
1685 .loongarch32,
1686 .loongarch64,
1639 => return result,1687 => return result,
1640 },1688 },
16411689
...@@ -1678,12 +1726,15 @@ pub const Target = struct {...@@ -1678,12 +1726,15 @@ pub const Target = struct {
1678 .nvcl,1726 .nvcl,
1679 .amdhsa,1727 .amdhsa,
1680 .ps4,1728 .ps4,
1729 .ps5,
1681 .elfiamcu,1730 .elfiamcu,
1682 .mesa3d,1731 .mesa3d,
1683 .contiki,1732 .contiki,
1684 .amdpal,1733 .amdpal,
1685 .hermit,1734 .hermit,
1686 .hurd,1735 .hurd,
1736 .driverkit,
1737 .shadermodel,
1687 => return result,1738 => return result,
1688 }1739 }
1689 }1740 }
...@@ -1852,6 +1903,9 @@ pub const Target = struct {...@@ -1852,6 +1903,9 @@ pub const Target = struct {
1852 .renderscript64,1903 .renderscript64,
1853 .ve,1904 .ve,
1854 .spirv64,1905 .spirv64,
1906 .dxil,
1907 .loongarch32,
1908 .loongarch64,
1855 => 16,1909 => 16,
1856 };1910 };
1857 }1911 }
lib/std/zig.zig+1
...@@ -190,6 +190,7 @@ pub fn binNameAlloc(allocator: std.mem.Allocator, options: BinNameOptions) error...@@ -190,6 +190,7 @@ pub fn binNameAlloc(allocator: std.mem.Allocator, options: BinNameOptions) error
190 .Lib => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{ target.libPrefix(), root_name }),190 .Lib => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{ target.libPrefix(), root_name }),
191 },191 },
192 .nvptx => return std.fmt.allocPrint(allocator, "{s}", .{root_name}),192 .nvptx => return std.fmt.allocPrint(allocator, "{s}", .{root_name}),
193 .dxcontainer => @panic("TODO what's the file extension for these?"),
193 }194 }
194}195}
195196
lib/std/zig/CrossTarget.zig+6
...@@ -118,6 +118,7 @@ fn updateOsVersionRange(self: *CrossTarget, os: Target.Os) void {...@@ -118,6 +118,7 @@ fn updateOsVersionRange(self: *CrossTarget, os: Target.Os) void {
118 .nvcl,118 .nvcl,
119 .amdhsa,119 .amdhsa,
120 .ps4,120 .ps4,
121 .ps5,
121 .elfiamcu,122 .elfiamcu,
122 .mesa3d,123 .mesa3d,
123 .contiki,124 .contiki,
...@@ -126,6 +127,8 @@ fn updateOsVersionRange(self: *CrossTarget, os: Target.Os) void {...@@ -126,6 +127,8 @@ fn updateOsVersionRange(self: *CrossTarget, os: Target.Os) void {
126 .hurd,127 .hurd,
127 .wasi,128 .wasi,
128 .emscripten,129 .emscripten,
130 .driverkit,
131 .shadermodel,
129 .uefi,132 .uefi,
130 .opencl,133 .opencl,
131 .glsl450,134 .glsl450,
...@@ -663,6 +666,7 @@ fn parseOs(result: *CrossTarget, diags: *ParseOptions.Diagnostics, text: []const...@@ -663,6 +666,7 @@ fn parseOs(result: *CrossTarget, diags: *ParseOptions.Diagnostics, text: []const
663 .nvcl,666 .nvcl,
664 .amdhsa,667 .amdhsa,
665 .ps4,668 .ps4,
669 .ps5,
666 .elfiamcu,670 .elfiamcu,
667 .mesa3d,671 .mesa3d,
668 .contiki,672 .contiki,
...@@ -676,6 +680,8 @@ fn parseOs(result: *CrossTarget, diags: *ParseOptions.Diagnostics, text: []const...@@ -676,6 +680,8 @@ fn parseOs(result: *CrossTarget, diags: *ParseOptions.Diagnostics, text: []const
676 .glsl450,680 .glsl450,
677 .vulkan,681 .vulkan,
678 .plan9,682 .plan9,
683 .driverkit,
684 .shadermodel,
679 .other,685 .other,
680 => return error.InvalidOperatingSystemVersion,686 => return error.InvalidOperatingSystemVersion,
681687
src/clang.zig+14-9
...@@ -859,7 +859,7 @@ pub const StmtExpr = opaque {...@@ -859,7 +859,7 @@ pub const StmtExpr = opaque {
859859
860pub const StringLiteral = opaque {860pub const StringLiteral = opaque {
861 pub const getKind = ZigClangStringLiteral_getKind;861 pub const getKind = ZigClangStringLiteral_getKind;
862 extern fn ZigClangStringLiteral_getKind(*const StringLiteral) StringLiteral_StringKind;862 extern fn ZigClangStringLiteral_getKind(*const StringLiteral) CharacterLiteral_CharacterKind;
863863
864 pub const getCodeUnit = ZigClangStringLiteral_getCodeUnit;864 pub const getCodeUnit = ZigClangStringLiteral_getCodeUnit;
865 extern fn ZigClangStringLiteral_getCodeUnit(*const StringLiteral, usize) u32;865 extern fn ZigClangStringLiteral_getCodeUnit(*const StringLiteral, usize) u32;
...@@ -1117,6 +1117,7 @@ pub const TypeClass = enum(c_int) {...@@ -1117,6 +1117,7 @@ pub const TypeClass = enum(c_int) {
1117 VariableArray,1117 VariableArray,
1118 Atomic,1118 Atomic,
1119 Attributed,1119 Attributed,
1120 BTFTagAttributed,
1120 BitInt,1121 BitInt,
1121 BlockPointer,1122 BlockPointer,
1122 Builtin,1123 Builtin,
...@@ -1202,25 +1203,33 @@ const StmtClass = enum(c_int) {...@@ -1202,25 +1203,33 @@ const StmtClass = enum(c_int) {
1202 OMPForDirectiveClass,1203 OMPForDirectiveClass,
1203 OMPForSimdDirectiveClass,1204 OMPForSimdDirectiveClass,
1204 OMPGenericLoopDirectiveClass,1205 OMPGenericLoopDirectiveClass,
1206 OMPMaskedTaskLoopDirectiveClass,
1207 OMPMaskedTaskLoopSimdDirectiveClass,
1205 OMPMasterTaskLoopDirectiveClass,1208 OMPMasterTaskLoopDirectiveClass,
1206 OMPMasterTaskLoopSimdDirectiveClass,1209 OMPMasterTaskLoopSimdDirectiveClass,
1207 OMPParallelForDirectiveClass,1210 OMPParallelForDirectiveClass,
1208 OMPParallelForSimdDirectiveClass,1211 OMPParallelForSimdDirectiveClass,
1212 OMPParallelGenericLoopDirectiveClass,
1213 OMPParallelMaskedTaskLoopDirectiveClass,
1214 OMPParallelMaskedTaskLoopSimdDirectiveClass,
1209 OMPParallelMasterTaskLoopDirectiveClass,1215 OMPParallelMasterTaskLoopDirectiveClass,
1210 OMPParallelMasterTaskLoopSimdDirectiveClass,1216 OMPParallelMasterTaskLoopSimdDirectiveClass,
1211 OMPSimdDirectiveClass,1217 OMPSimdDirectiveClass,
1212 OMPTargetParallelForSimdDirectiveClass,1218 OMPTargetParallelForSimdDirectiveClass,
1219 OMPTargetParallelGenericLoopDirectiveClass,
1213 OMPTargetSimdDirectiveClass,1220 OMPTargetSimdDirectiveClass,
1214 OMPTargetTeamsDistributeDirectiveClass,1221 OMPTargetTeamsDistributeDirectiveClass,
1215 OMPTargetTeamsDistributeParallelForDirectiveClass,1222 OMPTargetTeamsDistributeParallelForDirectiveClass,
1216 OMPTargetTeamsDistributeParallelForSimdDirectiveClass,1223 OMPTargetTeamsDistributeParallelForSimdDirectiveClass,
1217 OMPTargetTeamsDistributeSimdDirectiveClass,1224 OMPTargetTeamsDistributeSimdDirectiveClass,
1225 OMPTargetTeamsGenericLoopDirectiveClass,
1218 OMPTaskLoopDirectiveClass,1226 OMPTaskLoopDirectiveClass,
1219 OMPTaskLoopSimdDirectiveClass,1227 OMPTaskLoopSimdDirectiveClass,
1220 OMPTeamsDistributeDirectiveClass,1228 OMPTeamsDistributeDirectiveClass,
1221 OMPTeamsDistributeParallelForDirectiveClass,1229 OMPTeamsDistributeParallelForDirectiveClass,
1222 OMPTeamsDistributeParallelForSimdDirectiveClass,1230 OMPTeamsDistributeParallelForSimdDirectiveClass,
1223 OMPTeamsDistributeSimdDirectiveClass,1231 OMPTeamsDistributeSimdDirectiveClass,
1232 OMPTeamsGenericLoopDirectiveClass,
1224 OMPTileDirectiveClass,1233 OMPTileDirectiveClass,
1225 OMPUnrollDirectiveClass,1234 OMPUnrollDirectiveClass,
1226 OMPMaskedDirectiveClass,1235 OMPMaskedDirectiveClass,
...@@ -1228,6 +1237,7 @@ const StmtClass = enum(c_int) {...@@ -1228,6 +1237,7 @@ const StmtClass = enum(c_int) {
1228 OMPMetaDirectiveClass,1237 OMPMetaDirectiveClass,
1229 OMPOrderedDirectiveClass,1238 OMPOrderedDirectiveClass,
1230 OMPParallelDirectiveClass,1239 OMPParallelDirectiveClass,
1240 OMPParallelMaskedDirectiveClass,
1231 OMPParallelMasterDirectiveClass,1241 OMPParallelMasterDirectiveClass,
1232 OMPParallelSectionsDirectiveClass,1242 OMPParallelSectionsDirectiveClass,
1233 OMPScanDirectiveClass,1243 OMPScanDirectiveClass,
...@@ -1532,6 +1542,7 @@ pub const DeclKind = enum(c_int) {...@@ -1532,6 +1542,7 @@ pub const DeclKind = enum(c_int) {
1532 OMPDeclareMapper,1542 OMPDeclareMapper,
1533 OMPDeclareReduction,1543 OMPDeclareReduction,
1534 TemplateParamObject,1544 TemplateParamObject,
1545 UnnamedGlobalConstant,
1535 UnresolvedUsingValue,1546 UnresolvedUsingValue,
1536 OMPAllocate,1547 OMPAllocate,
1537 OMPRequires,1548 OMPRequires,
...@@ -1805,6 +1816,8 @@ pub const CallingConv = enum(c_int) {...@@ -1805,6 +1816,8 @@ pub const CallingConv = enum(c_int) {
1805 PreserveMost,1816 PreserveMost,
1806 PreserveAll,1817 PreserveAll,
1807 AArch64VectorCall,1818 AArch64VectorCall,
1819 AArch64SVEPCS,
1820 AMDGPUKernelCall,
1808};1821};
18091822
1810pub const StorageClass = enum(c_int) {1823pub const StorageClass = enum(c_int) {
...@@ -1826,14 +1839,6 @@ pub const APFloat_roundingMode = enum(i8) {...@@ -1826,14 +1839,6 @@ pub const APFloat_roundingMode = enum(i8) {
1826 Invalid = -1,1839 Invalid = -1,
1827};1840};
18281841
1829pub const StringLiteral_StringKind = enum(c_int) {
1830 Ascii,
1831 Wide,
1832 UTF8,
1833 UTF16,
1834 UTF32,
1835};
1836
1837pub const CharacterLiteral_CharacterKind = enum(c_int) {1842pub const CharacterLiteral_CharacterKind = enum(c_int) {
1838 Ascii,1843 Ascii,
1839 Wide,1844 Wide,
src/codegen/llvm.zig+24
...@@ -41,7 +41,10 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![:0]u8 {...@@ -41,7 +41,10 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![:0]u8 {
41 .bpfel => "bpfel",41 .bpfel => "bpfel",
42 .bpfeb => "bpfeb",42 .bpfeb => "bpfeb",
43 .csky => "csky",43 .csky => "csky",
44 .dxil => "dxil",
44 .hexagon => "hexagon",45 .hexagon => "hexagon",
46 .loongarch32 => "loongarch32",
47 .loongarch64 => "loongarch64",
45 .m68k => "m68k",48 .m68k => "m68k",
46 .mips => "mips",49 .mips => "mips",
47 .mipsel => "mipsel",50 .mipsel => "mipsel",
...@@ -116,6 +119,7 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![:0]u8 {...@@ -116,6 +119,7 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![:0]u8 {
116 .nvcl => "nvcl",119 .nvcl => "nvcl",
117 .amdhsa => "amdhsa",120 .amdhsa => "amdhsa",
118 .ps4 => "ps4",121 .ps4 => "ps4",
122 .ps5 => "ps5",
119 .elfiamcu => "elfiamcu",123 .elfiamcu => "elfiamcu",
120 .mesa3d => "mesa3d",124 .mesa3d => "mesa3d",
121 .contiki => "contiki",125 .contiki => "contiki",
...@@ -129,6 +133,8 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![:0]u8 {...@@ -129,6 +133,8 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![:0]u8 {
129 .ios => "ios",133 .ios => "ios",
130 .tvos => "tvos",134 .tvos => "tvos",
131 .watchos => "watchos",135 .watchos => "watchos",
136 .driverkit => "driverkit",
137 .shadermodel => "shadermodel",
132 .opencl,138 .opencl,
133 .glsl450,139 .glsl450,
134 .vulkan,140 .vulkan,
...@@ -171,6 +177,21 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![:0]u8 {...@@ -171,6 +177,21 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![:0]u8 {
171 .coreclr => "coreclr",177 .coreclr => "coreclr",
172 .simulator => "simulator",178 .simulator => "simulator",
173 .macabi => "macabi",179 .macabi => "macabi",
180 .pixel => "pixel",
181 .vertex => "vertex",
182 .geometry => "geometry",
183 .hull => "hull",
184 .domain => "domain",
185 .compute => "compute",
186 .library => "library",
187 .raygeneration => "raygeneration",
188 .intersection => "intersection",
189 .anyhit => "anyhit",
190 .closesthit => "closesthit",
191 .miss => "miss",
192 .callable => "callable",
193 .mesh => "mesh",
194 .amplification => "amplification",
174 };195 };
175 try llvm_triple.appendSlice(llvm_abi);196 try llvm_triple.appendSlice(llvm_abi);
176197
...@@ -9030,6 +9051,9 @@ fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void {...@@ -9030,6 +9051,9 @@ fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void {
9030 .kalimba,9051 .kalimba,
9031 .renderscript32,9052 .renderscript32,
9032 .renderscript64,9053 .renderscript64,
9054 .dxil,
9055 .loongarch32,
9056 .loongarch64,
9033 => {},9057 => {},
90349058
9035 .spu_2 => unreachable, // LLVM does not support this backend9059 .spu_2 => unreachable, // LLVM does not support this backend
src/codegen/llvm/bindings.zig+10
...@@ -1212,9 +1212,11 @@ pub const LinkWasm = ZigLLDLinkWasm;...@@ -1212,9 +1212,11 @@ pub const LinkWasm = ZigLLDLinkWasm;
1212pub const ObjectFormatType = enum(c_int) {1212pub const ObjectFormatType = enum(c_int) {
1213 Unknown,1213 Unknown,
1214 COFF,1214 COFF,
1215 DXContainer,
1215 ELF,1216 ELF,
1216 GOFF,1217 GOFF,
1217 MachO,1218 MachO,
1219 SPIRV,
1218 Wasm,1220 Wasm,
1219 XCOFF,1221 XCOFF,
1220};1222};
...@@ -1254,9 +1256,11 @@ pub const OSType = enum(c_int) {...@@ -1254,9 +1256,11 @@ pub const OSType = enum(c_int) {
1254 NVCL,1256 NVCL,
1255 AMDHSA,1257 AMDHSA,
1256 PS4,1258 PS4,
1259 PS5,
1257 ELFIAMCU,1260 ELFIAMCU,
1258 TvOS,1261 TvOS,
1259 WatchOS,1262 WatchOS,
1263 DriverKit,
1260 Mesa3D,1264 Mesa3D,
1261 Contiki,1265 Contiki,
1262 AMDPAL,1266 AMDPAL,
...@@ -1264,6 +1268,7 @@ pub const OSType = enum(c_int) {...@@ -1264,6 +1268,7 @@ pub const OSType = enum(c_int) {
1264 Hurd,1268 Hurd,
1265 WASI,1269 WASI,
1266 Emscripten,1270 Emscripten,
1271 ShaderModel,
1267};1272};
12681273
1269pub const ArchType = enum(c_int) {1274pub const ArchType = enum(c_int) {
...@@ -1278,7 +1283,10 @@ pub const ArchType = enum(c_int) {...@@ -1278,7 +1283,10 @@ pub const ArchType = enum(c_int) {
1278 bpfel,1283 bpfel,
1279 bpfeb,1284 bpfeb,
1280 csky,1285 csky,
1286 dxil,
1281 hexagon,1287 hexagon,
1288 loongarch32,
1289 loongarch64,
1282 m68k,1290 m68k,
1283 mips,1291 mips,
1284 mipsel,1292 mipsel,
...@@ -1314,6 +1322,8 @@ pub const ArchType = enum(c_int) {...@@ -1314,6 +1322,8 @@ pub const ArchType = enum(c_int) {
1314 hsail64,1322 hsail64,
1315 spir,1323 spir,
1316 spir64,1324 spir64,
1325 spirv32,
1326 spirv64,
1317 kalimba,1327 kalimba,
1318 shave,1328 shave,
1319 lanai,1329 lanai,
src/link.zig+3
...@@ -290,6 +290,7 @@ pub const File = struct {...@@ -290,6 +290,7 @@ pub const File = struct {
290 .nvptx => &(try NvPtx.createEmpty(allocator, options)).base,290 .nvptx => &(try NvPtx.createEmpty(allocator, options)).base,
291 .hex => return error.HexObjectFormatUnimplemented,291 .hex => return error.HexObjectFormatUnimplemented,
292 .raw => return error.RawObjectFormatUnimplemented,292 .raw => return error.RawObjectFormatUnimplemented,
293 .dxcontainer => return error.DirectXContainerObjectFormatUnimplemented,
293 };294 };
294 }295 }
295 const emit = options.emit.?;296 const emit = options.emit.?;
...@@ -309,6 +310,7 @@ pub const File = struct {...@@ -309,6 +310,7 @@ pub const File = struct {
309 .nvptx => &(try NvPtx.createEmpty(allocator, options)).base,310 .nvptx => &(try NvPtx.createEmpty(allocator, options)).base,
310 .hex => return error.HexObjectFormatUnimplemented,311 .hex => return error.HexObjectFormatUnimplemented,
311 .raw => return error.RawObjectFormatUnimplemented,312 .raw => return error.RawObjectFormatUnimplemented,
313 .dxcontainer => return error.DirectXContainerObjectFormatUnimplemented,
312 };314 };
313 }315 }
314 // Open a temporary object file, not the final output file because we316 // Open a temporary object file, not the final output file because we
...@@ -330,6 +332,7 @@ pub const File = struct {...@@ -330,6 +332,7 @@ pub const File = struct {
330 .nvptx => &(try NvPtx.openPath(allocator, sub_path, options)).base,332 .nvptx => &(try NvPtx.openPath(allocator, sub_path, options)).base,
331 .hex => return error.HexObjectFormatUnimplemented,333 .hex => return error.HexObjectFormatUnimplemented,
332 .raw => return error.RawObjectFormatUnimplemented,334 .raw => return error.RawObjectFormatUnimplemented,
335 .dxcontainer => return error.DirectXContainerObjectFormatUnimplemented,
333 };336 };
334337
335 if (use_lld) {338 if (use_lld) {
src/stage1/stage1.h+3
...@@ -83,9 +83,11 @@ enum Os {...@@ -83,9 +83,11 @@ enum Os {
83 OsNVCL, // NVIDIA OpenCL83 OsNVCL, // NVIDIA OpenCL
84 OsAMDHSA, // AMD HSA Runtime84 OsAMDHSA, // AMD HSA Runtime
85 OsPS4,85 OsPS4,
86 OsPS5,
86 OsELFIAMCU,87 OsELFIAMCU,
87 OsTvOS, // Apple tvOS88 OsTvOS, // Apple tvOS
88 OsWatchOS, // Apple watchOS89 OsWatchOS, // Apple watchOS
90 OsDriverKit, // Apple DriverKit
89 OsMesa3D,91 OsMesa3D,
90 OsContiki,92 OsContiki,
91 OsAMDPAL,93 OsAMDPAL,
...@@ -93,6 +95,7 @@ enum Os {...@@ -93,6 +95,7 @@ enum Os {
93 OsHurd,95 OsHurd,
94 OsWASI,96 OsWASI,
95 OsEmscripten,97 OsEmscripten,
98 OsShaderModel, // DirectX ShaderModel
96 OsUefi,99 OsUefi,
97 OsOpenCL,100 OsOpenCL,
98 OsGLSL450,101 OsGLSL450,
src/stage1/target.cpp+55-2
...@@ -24,7 +24,10 @@ static const ZigLLVM_ArchType arch_list[] = {...@@ -24,7 +24,10 @@ static const ZigLLVM_ArchType arch_list[] = {
24 ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)24 ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
25 ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian)25 ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian)
26 ZigLLVM_csky, // CSKY: csky26 ZigLLVM_csky, // CSKY: csky
27 ZigLLVM_dxil, // DXIL 32-bit DirectX bytecode
27 ZigLLVM_hexagon, // Hexagon: hexagon28 ZigLLVM_hexagon, // Hexagon: hexagon
29 ZigLLVM_loongarch32, // LoongArch (32-bit): loongarch32
30 ZigLLVM_loongarch64, // LoongArch (64-bit): loongarch64
28 ZigLLVM_m68k, // M68k: Motorola 680x0 family31 ZigLLVM_m68k, // M68k: Motorola 680x0 family
29 ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr632 ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6
30 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el33 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el
...@@ -114,9 +117,11 @@ static const Os os_list[] = {...@@ -114,9 +117,11 @@ static const Os os_list[] = {
114 OsNVCL, // NVIDIA OpenCL117 OsNVCL, // NVIDIA OpenCL
115 OsAMDHSA, // AMD HSA Runtime118 OsAMDHSA, // AMD HSA Runtime
116 OsPS4,119 OsPS4,
120 OsPS5,
117 OsELFIAMCU,121 OsELFIAMCU,
118 OsTvOS, // Apple tvOS122 OsTvOS, // Apple tvOS
119 OsWatchOS, // Apple watchOS123 OsWatchOS, // Apple watchOS
124 OsDriverKit, // Apple DriverKit
120 OsMesa3D,125 OsMesa3D,
121 OsContiki,126 OsContiki,
122 OsAMDPAL,127 OsAMDPAL,
...@@ -124,6 +129,7 @@ static const Os os_list[] = {...@@ -124,6 +129,7 @@ static const Os os_list[] = {
124 OsHurd,129 OsHurd,
125 OsWASI,130 OsWASI,
126 OsEmscripten,131 OsEmscripten,
132 OsShaderModel, // DirectX ShaderModel
127 OsUefi,133 OsUefi,
128 OsOpenCL,134 OsOpenCL,
129 OsGLSL450,135 OsGLSL450,
...@@ -156,16 +162,34 @@ static const ZigLLVM_EnvironmentType abi_list[] = {...@@ -156,16 +162,34 @@ static const ZigLLVM_EnvironmentType abi_list[] = {
156 ZigLLVM_Itanium,162 ZigLLVM_Itanium,
157 ZigLLVM_Cygnus,163 ZigLLVM_Cygnus,
158 ZigLLVM_CoreCLR,164 ZigLLVM_CoreCLR,
159 ZigLLVM_Simulator,165 ZigLLVM_Simulator, // Simulator variants of other systems, e.g., Apple's iOS
160 ZigLLVM_MacABI,166 ZigLLVM_MacABI, // Mac Catalyst variant of Apple's iOS deployment target.
167
168 ZigLLVM_Pixel,
169 ZigLLVM_Vertex,
170 ZigLLVM_Geometry,
171 ZigLLVM_Hull,
172 ZigLLVM_Domain,
173 ZigLLVM_Compute,
174 ZigLLVM_Library,
175 ZigLLVM_RayGeneration,
176 ZigLLVM_Intersection,
177 ZigLLVM_AnyHit,
178 ZigLLVM_ClosestHit,
179 ZigLLVM_Miss,
180 ZigLLVM_Callable,
181 ZigLLVM_Mesh,
182 ZigLLVM_Amplification,
161};183};
162184
163static const ZigLLVM_ObjectFormatType oformat_list[] = {185static const ZigLLVM_ObjectFormatType oformat_list[] = {
164 ZigLLVM_UnknownObjectFormat,186 ZigLLVM_UnknownObjectFormat,
165 ZigLLVM_COFF,187 ZigLLVM_COFF,
188 ZigLLVM_DXContainer,
166 ZigLLVM_ELF,189 ZigLLVM_ELF,
167 ZigLLVM_GOFF,190 ZigLLVM_GOFF,
168 ZigLLVM_MachO,191 ZigLLVM_MachO,
192 ZigLLVM_SPIRV,
169 ZigLLVM_Wasm,193 ZigLLVM_Wasm,
170 ZigLLVM_XCOFF,194 ZigLLVM_XCOFF,
171};195};
...@@ -183,9 +207,11 @@ const char *target_oformat_name(ZigLLVM_ObjectFormatType oformat) {...@@ -183,9 +207,11 @@ const char *target_oformat_name(ZigLLVM_ObjectFormatType oformat) {
183 switch (oformat) {207 switch (oformat) {
184 case ZigLLVM_UnknownObjectFormat: return "unknown";208 case ZigLLVM_UnknownObjectFormat: return "unknown";
185 case ZigLLVM_COFF: return "coff";209 case ZigLLVM_COFF: return "coff";
210 case ZigLLVM_DXContainer: return "dxcontainer";
186 case ZigLLVM_ELF: return "elf";211 case ZigLLVM_ELF: return "elf";
187 case ZigLLVM_GOFF: return "goff";212 case ZigLLVM_GOFF: return "goff";
188 case ZigLLVM_MachO: return "macho";213 case ZigLLVM_MachO: return "macho";
214 case ZigLLVM_SPIRV: return "spirv";
189 case ZigLLVM_Wasm: return "wasm";215 case ZigLLVM_Wasm: return "wasm";
190 case ZigLLVM_XCOFF: return "xcoff";216 case ZigLLVM_XCOFF: return "xcoff";
191 }217 }
...@@ -276,12 +302,16 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {...@@ -276,12 +302,16 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {
276 return ZigLLVM_AMDHSA;302 return ZigLLVM_AMDHSA;
277 case OsPS4:303 case OsPS4:
278 return ZigLLVM_PS4;304 return ZigLLVM_PS4;
305 case OsPS5:
306 return ZigLLVM_PS5;
279 case OsELFIAMCU:307 case OsELFIAMCU:
280 return ZigLLVM_ELFIAMCU;308 return ZigLLVM_ELFIAMCU;
281 case OsTvOS:309 case OsTvOS:
282 return ZigLLVM_TvOS;310 return ZigLLVM_TvOS;
283 case OsWatchOS:311 case OsWatchOS:
284 return ZigLLVM_WatchOS;312 return ZigLLVM_WatchOS;
313 case OsDriverKit:
314 return ZigLLVM_DriverKit;
285 case OsMesa3D:315 case OsMesa3D:
286 return ZigLLVM_Mesa3D;316 return ZigLLVM_Mesa3D;
287 case OsContiki:317 case OsContiki:
...@@ -296,6 +326,8 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {...@@ -296,6 +326,8 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {
296 return ZigLLVM_WASI;326 return ZigLLVM_WASI;
297 case OsEmscripten:327 case OsEmscripten:
298 return ZigLLVM_Emscripten;328 return ZigLLVM_Emscripten;
329 case OsShaderModel:
330 return ZigLLVM_ShaderModel;
299 }331 }
300 zig_unreachable();332 zig_unreachable();
301}333}
...@@ -334,9 +366,11 @@ const char *target_os_name(Os os_type) {...@@ -334,9 +366,11 @@ const char *target_os_name(Os os_type) {
334 case OsNVCL: // NVIDIA OpenCL366 case OsNVCL: // NVIDIA OpenCL
335 case OsAMDHSA: // AMD HSA Runtime367 case OsAMDHSA: // AMD HSA Runtime
336 case OsPS4:368 case OsPS4:
369 case OsPS5:
337 case OsELFIAMCU:370 case OsELFIAMCU:
338 case OsTvOS: // Apple tvOS371 case OsTvOS: // Apple tvOS
339 case OsWatchOS: // Apple watchOS372 case OsWatchOS: // Apple watchOS
373 case OsDriverKit:
340 case OsMesa3D:374 case OsMesa3D:
341 case OsContiki:375 case OsContiki:
342 case OsAMDPAL:376 case OsAMDPAL:
...@@ -344,6 +378,7 @@ const char *target_os_name(Os os_type) {...@@ -344,6 +378,7 @@ const char *target_os_name(Os os_type) {
344 case OsHurd:378 case OsHurd:
345 case OsWASI:379 case OsWASI:
346 case OsEmscripten:380 case OsEmscripten:
381 case OsShaderModel:
347 case OsOpenCL:382 case OsOpenCL:
348 case OsGLSL450:383 case OsGLSL450:
349 case OsVulkan:384 case OsVulkan:
...@@ -532,6 +567,8 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {...@@ -532,6 +567,8 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
532 case ZigLLVM_aarch64_32:567 case ZigLLVM_aarch64_32:
533 case ZigLLVM_csky:568 case ZigLLVM_csky:
534 case ZigLLVM_spirv32:569 case ZigLLVM_spirv32:
570 case ZigLLVM_loongarch32:
571 case ZigLLVM_dxil:
535 return 32;572 return 32;
536573
537 case ZigLLVM_aarch64:574 case ZigLLVM_aarch64:
...@@ -556,6 +593,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {...@@ -556,6 +593,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
556 case ZigLLVM_renderscript64:593 case ZigLLVM_renderscript64:
557 case ZigLLVM_ve:594 case ZigLLVM_ve:
558 case ZigLLVM_spirv64:595 case ZigLLVM_spirv64:
596 case ZigLLVM_loongarch64:
559 return 64;597 return 64;
560 }598 }
561 zig_unreachable();599 zig_unreachable();
...@@ -601,6 +639,8 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {...@@ -601,6 +639,8 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {
601 case ZigLLVM_renderscript32:639 case ZigLLVM_renderscript32:
602 case ZigLLVM_csky:640 case ZigLLVM_csky:
603 case ZigLLVM_spirv32:641 case ZigLLVM_spirv32:
642 case ZigLLVM_loongarch32:
643 case ZigLLVM_dxil:
604 return 32;644 return 32;
605645
606 case ZigLLVM_aarch64:646 case ZigLLVM_aarch64:
...@@ -625,6 +665,7 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {...@@ -625,6 +665,7 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {
625 case ZigLLVM_renderscript64:665 case ZigLLVM_renderscript64:
626 case ZigLLVM_ve:666 case ZigLLVM_ve:
627 case ZigLLVM_spirv64:667 case ZigLLVM_spirv64:
668 case ZigLLVM_loongarch64:
628 return 64;669 return 64;
629670
630 case ZigLLVM_x86_64:671 case ZigLLVM_x86_64:
...@@ -751,6 +792,7 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {...@@ -751,6 +792,7 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {
751 case OsAIX:792 case OsAIX:
752 case OsAMDHSA:793 case OsAMDHSA:
753 case OsPS4:794 case OsPS4:
795 case OsPS5:
754 case OsELFIAMCU:796 case OsELFIAMCU:
755 case OsTvOS:797 case OsTvOS:
756 case OsWatchOS:798 case OsWatchOS:
...@@ -763,6 +805,8 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {...@@ -763,6 +805,8 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {
763 case OsOpenCL:805 case OsOpenCL:
764 case OsGLSL450:806 case OsGLSL450:
765 case OsVulkan:807 case OsVulkan:
808 case OsDriverKit:
809 case OsShaderModel:
766 zig_panic("TODO c type size in bits for this target");810 zig_panic("TODO c type size in bits for this target");
767 }811 }
768 zig_unreachable();812 zig_unreachable();
...@@ -860,6 +904,9 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) {...@@ -860,6 +904,9 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) {
860 case ZigLLVM_tcele:904 case ZigLLVM_tcele:
861 case ZigLLVM_xcore:905 case ZigLLVM_xcore:
862 case ZigLLVM_ve:906 case ZigLLVM_ve:
907 case ZigLLVM_dxil:
908 case ZigLLVM_loongarch32:
909 case ZigLLVM_loongarch64:
863 zig_panic("TODO populate this table with stack pointer register name for this CPU architecture");910 zig_panic("TODO populate this table with stack pointer register name for this CPU architecture");
864 }911 }
865 zig_unreachable();912 zig_unreachable();
...@@ -927,6 +974,9 @@ bool target_is_arm(const ZigTarget *target) {...@@ -927,6 +974,9 @@ bool target_is_arm(const ZigTarget *target) {
927 case ZigLLVM_ve:974 case ZigLLVM_ve:
928 case ZigLLVM_spirv32:975 case ZigLLVM_spirv32:
929 case ZigLLVM_spirv64:976 case ZigLLVM_spirv64:
977 case ZigLLVM_dxil:
978 case ZigLLVM_loongarch32:
979 case ZigLLVM_loongarch64:
930 return false;980 return false;
931 }981 }
932 zig_unreachable();982 zig_unreachable();
...@@ -973,6 +1023,7 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {...@@ -973,6 +1023,7 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {
973 case OsNVCL:1023 case OsNVCL:
974 case OsAMDHSA:1024 case OsAMDHSA:
975 case OsPS4:1025 case OsPS4:
1026 case OsPS5:
976 case OsELFIAMCU:1027 case OsELFIAMCU:
977 case OsMesa3D:1028 case OsMesa3D:
978 case OsContiki:1029 case OsContiki:
...@@ -1004,6 +1055,8 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {...@@ -1004,6 +1055,8 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {
1004 case OsIOS:1055 case OsIOS:
1005 case OsTvOS:1056 case OsTvOS:
1006 case OsWatchOS:1057 case OsWatchOS:
1058 case OsDriverKit:
1059 case OsShaderModel:
1007 return ZigLLVM_UnknownEnvironment;1060 return ZigLLVM_UnknownEnvironment;
1008 }1061 }
1009 zig_unreachable();1062 zig_unreachable();
src/stage1/zig0.cpp+6
...@@ -112,6 +112,8 @@ static Os get_zig_os_type(ZigLLVM_OSType os_type) {...@@ -112,6 +112,8 @@ static Os get_zig_os_type(ZigLLVM_OSType os_type) {
112 return OsAMDHSA;112 return OsAMDHSA;
113 case ZigLLVM_PS4:113 case ZigLLVM_PS4:
114 return OsPS4;114 return OsPS4;
115 case ZigLLVM_PS5:
116 return OsPS5;
115 case ZigLLVM_ELFIAMCU:117 case ZigLLVM_ELFIAMCU:
116 return OsELFIAMCU;118 return OsELFIAMCU;
117 case ZigLLVM_TvOS:119 case ZigLLVM_TvOS:
...@@ -132,6 +134,10 @@ static Os get_zig_os_type(ZigLLVM_OSType os_type) {...@@ -132,6 +134,10 @@ static Os get_zig_os_type(ZigLLVM_OSType os_type) {
132 return OsWASI;134 return OsWASI;
133 case ZigLLVM_Emscripten:135 case ZigLLVM_Emscripten:
134 return OsEmscripten;136 return OsEmscripten;
137 case ZigLLVM_DriverKit:
138 return OsDriverKit;
139 case ZigLLVM_ShaderModel:
140 return OsShaderModel;
135 }141 }
136 zig_unreachable();142 zig_unreachable();
137}143}
src/target.zig+30
...@@ -107,6 +107,23 @@ pub fn libCGenericName(target: std.Target) [:0]const u8 {...@@ -107,6 +107,23 @@ pub fn libCGenericName(target: std.Target) [:0]const u8 {
107 .simulator,107 .simulator,
108 .macabi,108 .macabi,
109 => unreachable,109 => unreachable,
110
111 .pixel,
112 .vertex,
113 .geometry,
114 .hull,
115 .domain,
116 .compute,
117 .library,
118 .raygeneration,
119 .intersection,
120 .anyhit,
121 .closesthit,
122 .miss,
123 .callable,
124 .mesh,
125 .amplification,
126 => unreachable,
110 }127 }
111}128}
112129
...@@ -219,6 +236,7 @@ pub fn hasLlvmSupport(target: std.Target, ofmt: std.Target.ObjectFormat) bool {...@@ -219,6 +236,7 @@ pub fn hasLlvmSupport(target: std.Target, ofmt: std.Target.ObjectFormat) bool {
219 .hex,236 .hex,
220 .raw,237 .raw,
221 .nvptx,238 .nvptx,
239 .dxcontainer,
222 => {},240 => {},
223 }241 }
224242
...@@ -233,7 +251,10 @@ pub fn hasLlvmSupport(target: std.Target, ofmt: std.Target.ObjectFormat) bool {...@@ -233,7 +251,10 @@ pub fn hasLlvmSupport(target: std.Target, ofmt: std.Target.ObjectFormat) bool {
233 .bpfel,251 .bpfel,
234 .bpfeb,252 .bpfeb,
235 .csky,253 .csky,
254 .dxil,
236 .hexagon,255 .hexagon,
256 .loongarch32,
257 .loongarch64,
237 .m68k,258 .m68k,
238 .mips,259 .mips,
239 .mipsel,260 .mipsel,
...@@ -335,6 +356,7 @@ pub fn osToLLVM(os_tag: std.Target.Os.Tag) llvm.OSType {...@@ -335,6 +356,7 @@ pub fn osToLLVM(os_tag: std.Target.Os.Tag) llvm.OSType {
335 .nvcl => .NVCL,356 .nvcl => .NVCL,
336 .amdhsa => .AMDHSA,357 .amdhsa => .AMDHSA,
337 .ps4 => .PS4,358 .ps4 => .PS4,
359 .ps5 => .PS5,
338 .elfiamcu => .ELFIAMCU,360 .elfiamcu => .ELFIAMCU,
339 .tvos => .TvOS,361 .tvos => .TvOS,
340 .watchos => .WatchOS,362 .watchos => .WatchOS,
...@@ -345,6 +367,8 @@ pub fn osToLLVM(os_tag: std.Target.Os.Tag) llvm.OSType {...@@ -345,6 +367,8 @@ pub fn osToLLVM(os_tag: std.Target.Os.Tag) llvm.OSType {
345 .hurd => .Hurd,367 .hurd => .Hurd,
346 .wasi => .WASI,368 .wasi => .WASI,
347 .emscripten => .Emscripten,369 .emscripten => .Emscripten,
370 .driverkit => .DriverKit,
371 .shadermodel => .ShaderModel,
348 };372 };
349}373}
350374
...@@ -360,7 +384,10 @@ pub fn archToLLVM(arch_tag: std.Target.Cpu.Arch) llvm.ArchType {...@@ -360,7 +384,10 @@ pub fn archToLLVM(arch_tag: std.Target.Cpu.Arch) llvm.ArchType {
360 .bpfel => .bpfel,384 .bpfel => .bpfel,
361 .bpfeb => .bpfeb,385 .bpfeb => .bpfeb,
362 .csky => .csky,386 .csky => .csky,
387 .dxil => .dxil,
363 .hexagon => .hexagon,388 .hexagon => .hexagon,
389 .loongarch32 => .loongarch32,
390 .loongarch64 => .loongarch64,
364 .m68k => .m68k,391 .m68k => .m68k,
365 .mips => .mips,392 .mips => .mips,
366 .mipsel => .mipsel,393 .mipsel => .mipsel,
...@@ -627,6 +654,8 @@ pub fn atomicPtrAlignment(...@@ -627,6 +654,8 @@ pub fn atomicPtrAlignment(
627 .renderscript32,654 .renderscript32,
628 .csky,655 .csky,
629 .spirv32,656 .spirv32,
657 .dxil,
658 .loongarch32,
630 => 32,659 => 32,
631660
632 .aarch64,661 .aarch64,
...@@ -651,6 +680,7 @@ pub fn atomicPtrAlignment(...@@ -651,6 +680,7 @@ pub fn atomicPtrAlignment(
651 .renderscript64,680 .renderscript64,
652 .ve,681 .ve,
653 .spirv64,682 .spirv64,
683 .loongarch64,
654 => 64,684 => 64,
655685
656 .x86_64 => 128,686 .x86_64 => 128,
src/type.zig+3
...@@ -6627,6 +6627,7 @@ pub const CType = enum {...@@ -6627,6 +6627,7 @@ pub const CType = enum {
6627 .nvcl,6627 .nvcl,
6628 .amdhsa,6628 .amdhsa,
6629 .ps4,6629 .ps4,
6630 .ps5,
6630 .elfiamcu,6631 .elfiamcu,
6631 .mesa3d,6632 .mesa3d,
6632 .contiki,6633 .contiki,
...@@ -6636,6 +6637,8 @@ pub const CType = enum {...@@ -6636,6 +6637,8 @@ pub const CType = enum {
6636 .opencl,6637 .opencl,
6637 .glsl450,6638 .glsl450,
6638 .vulkan,6639 .vulkan,
6640 .driverkit,
6641 .shadermodel,
6639 => @panic("TODO specify the C integer and float type sizes for this OS"),6642 => @panic("TODO specify the C integer and float type sizes for this OS"),
6640 }6643 }
6641 }6644 }
src/zig_clang.cpp+28-18
...@@ -317,6 +317,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {...@@ -317,6 +317,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
317 case clang::Type::Enum:317 case clang::Type::Enum:
318 case clang::Type::Elaborated:318 case clang::Type::Elaborated:
319 case clang::Type::Attributed:319 case clang::Type::Attributed:
320 case clang::Type::BTFTagAttributed:
320 case clang::Type::BitInt:321 case clang::Type::BitInt:
321 case clang::Type::TemplateTypeParm:322 case clang::Type::TemplateTypeParm:
322 case clang::Type::SubstTemplateTypeParm:323 case clang::Type::SubstTemplateTypeParm:
...@@ -346,6 +347,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_IncompleteArray == clang::Typ...@@ -346,6 +347,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_IncompleteArray == clang::Typ
346static_assert((clang::Type::TypeClass)ZigClangType_VariableArray == clang::Type::VariableArray, "");347static_assert((clang::Type::TypeClass)ZigClangType_VariableArray == clang::Type::VariableArray, "");
347static_assert((clang::Type::TypeClass)ZigClangType_Atomic == clang::Type::Atomic, "");348static_assert((clang::Type::TypeClass)ZigClangType_Atomic == clang::Type::Atomic, "");
348static_assert((clang::Type::TypeClass)ZigClangType_Attributed == clang::Type::Attributed, "");349static_assert((clang::Type::TypeClass)ZigClangType_Attributed == clang::Type::Attributed, "");
350static_assert((clang::Type::TypeClass)ZigClangType_BTFTagAttributed == clang::Type::BTFTagAttributed, "");
349static_assert((clang::Type::TypeClass)ZigClangType_BitInt == clang::Type::BitInt, "");351static_assert((clang::Type::TypeClass)ZigClangType_BitInt == clang::Type::BitInt, "");
350static_assert((clang::Type::TypeClass)ZigClangType_BlockPointer == clang::Type::BlockPointer, "");352static_assert((clang::Type::TypeClass)ZigClangType_BlockPointer == clang::Type::BlockPointer, "");
351static_assert((clang::Type::TypeClass)ZigClangType_Builtin == clang::Type::Builtin, "");353static_assert((clang::Type::TypeClass)ZigClangType_Builtin == clang::Type::Builtin, "");
...@@ -432,25 +434,33 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -432,25 +434,33 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
432 case clang::Stmt::OMPForDirectiveClass:434 case clang::Stmt::OMPForDirectiveClass:
433 case clang::Stmt::OMPForSimdDirectiveClass:435 case clang::Stmt::OMPForSimdDirectiveClass:
434 case clang::Stmt::OMPGenericLoopDirectiveClass:436 case clang::Stmt::OMPGenericLoopDirectiveClass:
437 case clang::Stmt::OMPMaskedTaskLoopDirectiveClass:
438 case clang::Stmt::OMPMaskedTaskLoopSimdDirectiveClass:
435 case clang::Stmt::OMPMasterTaskLoopDirectiveClass:439 case clang::Stmt::OMPMasterTaskLoopDirectiveClass:
436 case clang::Stmt::OMPMasterTaskLoopSimdDirectiveClass:440 case clang::Stmt::OMPMasterTaskLoopSimdDirectiveClass:
437 case clang::Stmt::OMPParallelForDirectiveClass:441 case clang::Stmt::OMPParallelForDirectiveClass:
438 case clang::Stmt::OMPParallelForSimdDirectiveClass:442 case clang::Stmt::OMPParallelForSimdDirectiveClass:
443 case clang::Stmt::OMPParallelGenericLoopDirectiveClass:
444 case clang::Stmt::OMPParallelMaskedTaskLoopDirectiveClass:
445 case clang::Stmt::OMPParallelMaskedTaskLoopSimdDirectiveClass:
439 case clang::Stmt::OMPParallelMasterTaskLoopDirectiveClass:446 case clang::Stmt::OMPParallelMasterTaskLoopDirectiveClass:
440 case clang::Stmt::OMPParallelMasterTaskLoopSimdDirectiveClass:447 case clang::Stmt::OMPParallelMasterTaskLoopSimdDirectiveClass:
441 case clang::Stmt::OMPSimdDirectiveClass:448 case clang::Stmt::OMPSimdDirectiveClass:
442 case clang::Stmt::OMPTargetParallelForSimdDirectiveClass:449 case clang::Stmt::OMPTargetParallelForSimdDirectiveClass:
450 case clang::Stmt::OMPTargetParallelGenericLoopDirectiveClass:
443 case clang::Stmt::OMPTargetSimdDirectiveClass:451 case clang::Stmt::OMPTargetSimdDirectiveClass:
444 case clang::Stmt::OMPTargetTeamsDistributeDirectiveClass:452 case clang::Stmt::OMPTargetTeamsDistributeDirectiveClass:
445 case clang::Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass:453 case clang::Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass:
446 case clang::Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass:454 case clang::Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass:
447 case clang::Stmt::OMPTargetTeamsDistributeSimdDirectiveClass:455 case clang::Stmt::OMPTargetTeamsDistributeSimdDirectiveClass:
456 case clang::Stmt::OMPTargetTeamsGenericLoopDirectiveClass:
448 case clang::Stmt::OMPTaskLoopDirectiveClass:457 case clang::Stmt::OMPTaskLoopDirectiveClass:
449 case clang::Stmt::OMPTaskLoopSimdDirectiveClass:458 case clang::Stmt::OMPTaskLoopSimdDirectiveClass:
450 case clang::Stmt::OMPTeamsDistributeDirectiveClass:459 case clang::Stmt::OMPTeamsDistributeDirectiveClass:
451 case clang::Stmt::OMPTeamsDistributeParallelForDirectiveClass:460 case clang::Stmt::OMPTeamsDistributeParallelForDirectiveClass:
452 case clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass:461 case clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass:
453 case clang::Stmt::OMPTeamsDistributeSimdDirectiveClass:462 case clang::Stmt::OMPTeamsDistributeSimdDirectiveClass:
463 case clang::Stmt::OMPTeamsGenericLoopDirectiveClass:
454 case clang::Stmt::OMPTileDirectiveClass:464 case clang::Stmt::OMPTileDirectiveClass:
455 case clang::Stmt::OMPUnrollDirectiveClass:465 case clang::Stmt::OMPUnrollDirectiveClass:
456 case clang::Stmt::OMPMaskedDirectiveClass:466 case clang::Stmt::OMPMaskedDirectiveClass:
...@@ -458,6 +468,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -458,6 +468,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
458 case clang::Stmt::OMPMetaDirectiveClass:468 case clang::Stmt::OMPMetaDirectiveClass:
459 case clang::Stmt::OMPOrderedDirectiveClass:469 case clang::Stmt::OMPOrderedDirectiveClass:
460 case clang::Stmt::OMPParallelDirectiveClass:470 case clang::Stmt::OMPParallelDirectiveClass:
471 case clang::Stmt::OMPParallelMaskedDirectiveClass:
461 case clang::Stmt::OMPParallelMasterDirectiveClass:472 case clang::Stmt::OMPParallelMasterDirectiveClass:
462 case clang::Stmt::OMPParallelSectionsDirectiveClass:473 case clang::Stmt::OMPParallelSectionsDirectiveClass:
463 case clang::Stmt::OMPScanDirectiveClass:474 case clang::Stmt::OMPScanDirectiveClass:
...@@ -659,25 +670,33 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeSimdDirectiveCla...@@ -659,25 +670,33 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeSimdDirectiveCla
659static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPForDirectiveClass == clang::Stmt::OMPForDirectiveClass, "");670static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPForDirectiveClass == clang::Stmt::OMPForDirectiveClass, "");
660static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPForSimdDirectiveClass == clang::Stmt::OMPForSimdDirectiveClass, "");671static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPForSimdDirectiveClass == clang::Stmt::OMPForSimdDirectiveClass, "");
661static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPGenericLoopDirectiveClass == clang::Stmt::OMPGenericLoopDirectiveClass, "");672static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPGenericLoopDirectiveClass == clang::Stmt::OMPGenericLoopDirectiveClass, "");
673static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedTaskLoopDirectiveClass == clang::Stmt::OMPMaskedTaskLoopDirectiveClass, "");
674static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedTaskLoopSimdDirectiveClass == clang::Stmt::OMPMaskedTaskLoopSimdDirectiveClass, "");
662static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterTaskLoopDirectiveClass == clang::Stmt::OMPMasterTaskLoopDirectiveClass, "");675static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterTaskLoopDirectiveClass == clang::Stmt::OMPMasterTaskLoopDirectiveClass, "");
663static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterTaskLoopSimdDirectiveClass == clang::Stmt::OMPMasterTaskLoopSimdDirectiveClass, "");676static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterTaskLoopSimdDirectiveClass == clang::Stmt::OMPMasterTaskLoopSimdDirectiveClass, "");
664static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelForDirectiveClass == clang::Stmt::OMPParallelForDirectiveClass, "");677static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelForDirectiveClass == clang::Stmt::OMPParallelForDirectiveClass, "");
665static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelForSimdDirectiveClass == clang::Stmt::OMPParallelForSimdDirectiveClass, "");678static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelForSimdDirectiveClass == clang::Stmt::OMPParallelForSimdDirectiveClass, "");
679static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelGenericLoopDirectiveClass == clang::Stmt::OMPParallelGenericLoopDirectiveClass, "");
680static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMaskedTaskLoopDirectiveClass == clang::Stmt::OMPParallelMaskedTaskLoopDirectiveClass, "");
681static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMaskedTaskLoopSimdDirectiveClass == clang::Stmt::OMPParallelMaskedTaskLoopSimdDirectiveClass, "");
666static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMasterTaskLoopDirectiveClass == clang::Stmt::OMPParallelMasterTaskLoopDirectiveClass, "");682static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMasterTaskLoopDirectiveClass == clang::Stmt::OMPParallelMasterTaskLoopDirectiveClass, "");
667static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMasterTaskLoopSimdDirectiveClass == clang::Stmt::OMPParallelMasterTaskLoopSimdDirectiveClass, "");683static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMasterTaskLoopSimdDirectiveClass == clang::Stmt::OMPParallelMasterTaskLoopSimdDirectiveClass, "");
668static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSimdDirectiveClass == clang::Stmt::OMPSimdDirectiveClass, "");684static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSimdDirectiveClass == clang::Stmt::OMPSimdDirectiveClass, "");
669static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetParallelForSimdDirectiveClass == clang::Stmt::OMPTargetParallelForSimdDirectiveClass, "");685static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetParallelForSimdDirectiveClass == clang::Stmt::OMPTargetParallelForSimdDirectiveClass, "");
686static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetParallelGenericLoopDirectiveClass == clang::Stmt::OMPTargetParallelGenericLoopDirectiveClass, "");
670static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetSimdDirectiveClass == clang::Stmt::OMPTargetSimdDirectiveClass, "");687static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetSimdDirectiveClass == clang::Stmt::OMPTargetSimdDirectiveClass, "");
671static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeDirectiveClass, "");688static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeDirectiveClass, "");
672static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass, "");689static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass, "");
673static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass, "");690static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass, "");
674static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeSimdDirectiveClass, "");691static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeSimdDirectiveClass, "");
692static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsGenericLoopDirectiveClass == clang::Stmt::OMPTargetTeamsGenericLoopDirectiveClass, "");
675static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTaskLoopDirectiveClass == clang::Stmt::OMPTaskLoopDirectiveClass, "");693static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTaskLoopDirectiveClass == clang::Stmt::OMPTaskLoopDirectiveClass, "");
676static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTaskLoopSimdDirectiveClass == clang::Stmt::OMPTaskLoopSimdDirectiveClass, "");694static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTaskLoopSimdDirectiveClass == clang::Stmt::OMPTaskLoopSimdDirectiveClass, "");
677static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeDirectiveClass == clang::Stmt::OMPTeamsDistributeDirectiveClass, "");695static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeDirectiveClass == clang::Stmt::OMPTeamsDistributeDirectiveClass, "");
678static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForDirectiveClass, "");696static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForDirectiveClass, "");
679static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass, "");697static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass, "");
680static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeSimdDirectiveClass, "");698static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeSimdDirectiveClass, "");
699static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsGenericLoopDirectiveClass == clang::Stmt::OMPTeamsGenericLoopDirectiveClass, "");
681static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTileDirectiveClass == clang::Stmt::OMPTileDirectiveClass, "");700static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTileDirectiveClass == clang::Stmt::OMPTileDirectiveClass, "");
682static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPUnrollDirectiveClass == clang::Stmt::OMPUnrollDirectiveClass, "");701static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPUnrollDirectiveClass == clang::Stmt::OMPUnrollDirectiveClass, "");
683static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedDirectiveClass == clang::Stmt::OMPMaskedDirectiveClass, "");702static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedDirectiveClass == clang::Stmt::OMPMaskedDirectiveClass, "");
...@@ -685,6 +704,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == cl...@@ -685,6 +704,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == cl
685static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMetaDirectiveClass == clang::Stmt::OMPMetaDirectiveClass, "");704static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMetaDirectiveClass == clang::Stmt::OMPMetaDirectiveClass, "");
686static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPOrderedDirectiveClass == clang::Stmt::OMPOrderedDirectiveClass, "");705static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPOrderedDirectiveClass == clang::Stmt::OMPOrderedDirectiveClass, "");
687static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelDirectiveClass == clang::Stmt::OMPParallelDirectiveClass, "");706static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelDirectiveClass == clang::Stmt::OMPParallelDirectiveClass, "");
707static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMaskedDirectiveClass == clang::Stmt::OMPParallelMaskedDirectiveClass, "");
688static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMasterDirectiveClass == clang::Stmt::OMPParallelMasterDirectiveClass, "");708static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMasterDirectiveClass == clang::Stmt::OMPParallelMasterDirectiveClass, "");
689static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelSectionsDirectiveClass == clang::Stmt::OMPParallelSectionsDirectiveClass, "");709static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelSectionsDirectiveClass == clang::Stmt::OMPParallelSectionsDirectiveClass, "");
690static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPScanDirectiveClass == clang::Stmt::OMPScanDirectiveClass, "");710static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPScanDirectiveClass == clang::Stmt::OMPScanDirectiveClass, "");
...@@ -958,6 +978,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {...@@ -958,6 +978,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
958 case clang::Decl::OMPDeclareMapper:978 case clang::Decl::OMPDeclareMapper:
959 case clang::Decl::OMPDeclareReduction:979 case clang::Decl::OMPDeclareReduction:
960 case clang::Decl::TemplateParamObject:980 case clang::Decl::TemplateParamObject:
981 case clang::Decl::UnnamedGlobalConstant:
961 case clang::Decl::UnresolvedUsingValue:982 case clang::Decl::UnresolvedUsingValue:
962 case clang::Decl::OMPAllocate:983 case clang::Decl::OMPAllocate:
963 case clang::Decl::OMPRequires:984 case clang::Decl::OMPRequires:
...@@ -1046,6 +1067,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclMSGuid == clang::Decl::MSGuid, "");...@@ -1046,6 +1067,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclMSGuid == clang::Decl::MSGuid, "");
1046static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareMapper == clang::Decl::OMPDeclareMapper, "");1067static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareMapper == clang::Decl::OMPDeclareMapper, "");
1047static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareReduction == clang::Decl::OMPDeclareReduction, "");1068static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareReduction == clang::Decl::OMPDeclareReduction, "");
1048static_assert((clang::Decl::Kind)ZigClangDeclTemplateParamObject == clang::Decl::TemplateParamObject, "");1069static_assert((clang::Decl::Kind)ZigClangDeclTemplateParamObject == clang::Decl::TemplateParamObject, "");
1070static_assert((clang::Decl::Kind)ZigClangDeclUnnamedGlobalConstant == clang::Decl::UnnamedGlobalConstant, "");
1049static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingValue == clang::Decl::UnresolvedUsingValue, "");1071static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingValue == clang::Decl::UnresolvedUsingValue, "");
1050static_assert((clang::Decl::Kind)ZigClangDeclOMPRequires == clang::Decl::OMPRequires, "");1072static_assert((clang::Decl::Kind)ZigClangDeclOMPRequires == clang::Decl::OMPRequires, "");
1051static_assert((clang::Decl::Kind)ZigClangDeclOMPThreadPrivate == clang::Decl::OMPThreadPrivate, "");1073static_assert((clang::Decl::Kind)ZigClangDeclOMPThreadPrivate == clang::Decl::OMPThreadPrivate, "");
...@@ -1560,6 +1582,8 @@ void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {...@@ -1560,6 +1582,8 @@ void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {
1560 case clang::CC_PreserveMost:1582 case clang::CC_PreserveMost:
1561 case clang::CC_PreserveAll:1583 case clang::CC_PreserveAll:
1562 case clang::CC_AArch64VectorCall:1584 case clang::CC_AArch64VectorCall:
1585 case clang::CC_AArch64SVEPCS:
1586 case clang::CC_AMDGPUKernelCall:
1563 break;1587 break;
1564 }1588 }
1565}1589}
...@@ -1583,6 +1607,8 @@ static_assert((clang::CallingConv)ZigClangCallingConv_SwiftAsync == clang::CC_Sw...@@ -1583,6 +1607,8 @@ static_assert((clang::CallingConv)ZigClangCallingConv_SwiftAsync == clang::CC_Sw
1583static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, "");1607static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, "");
1584static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, "");1608static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, "");
1585static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, "");1609static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, "");
1610static_assert((clang::CallingConv)ZigClangCallingConv_AArch64SVEPCS == clang::CC_AArch64SVEPCS, "");
1611static_assert((clang::CallingConv)ZigClangCallingConv_AMDGPUKernelCall == clang::CC_AMDGPUKernelCall, "");
15861612
1587void ZigClang_detect_enum_StorageClass(clang::StorageClass x) {1613void ZigClang_detect_enum_StorageClass(clang::StorageClass x) {
1588 switch (x) {1614 switch (x) {
...@@ -1623,22 +1649,6 @@ static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_NearestTiesToAway...@@ -1623,22 +1649,6 @@ static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_NearestTiesToAway
1623static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_Dynamic == llvm::RoundingMode::Dynamic, "");1649static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_Dynamic == llvm::RoundingMode::Dynamic, "");
1624static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_Invalid == llvm::RoundingMode::Invalid, "");1650static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_Invalid == llvm::RoundingMode::Invalid, "");
16251651
1626void ZigClang_detect_enum_StringKind(clang::StringLiteral::StringKind x) {
1627 switch (x) {
1628 case clang::StringLiteral::Ascii:
1629 case clang::StringLiteral::Wide:
1630 case clang::StringLiteral::UTF8:
1631 case clang::StringLiteral::UTF16:
1632 case clang::StringLiteral::UTF32:
1633 break;
1634 }
1635}
1636static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_Ascii == clang::StringLiteral::Ascii, "");
1637static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_Wide == clang::StringLiteral::Wide, "");
1638static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_UTF8 == clang::StringLiteral::UTF8, "");
1639static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_UTF16 == clang::StringLiteral::UTF16, "");
1640static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_UTF32 == clang::StringLiteral::UTF32, "");
1641
1642void ZigClang_detect_enum_CharacterKind(clang::CharacterLiteral::CharacterKind x) {1652void ZigClang_detect_enum_CharacterKind(clang::CharacterLiteral::CharacterKind x) {
1643 switch (x) {1653 switch (x) {
1644 case clang::CharacterLiteral::Ascii:1654 case clang::CharacterLiteral::Ascii:
...@@ -2724,9 +2734,9 @@ ZigClangAPFloatBase_Semantics ZigClangFloatingLiteral_getRawSemantics(const ZigC...@@ -2724,9 +2734,9 @@ ZigClangAPFloatBase_Semantics ZigClangFloatingLiteral_getRawSemantics(const ZigC
2724 return static_cast<ZigClangAPFloatBase_Semantics>(casted->getRawSemantics());2734 return static_cast<ZigClangAPFloatBase_Semantics>(casted->getRawSemantics());
2725}2735}
27262736
2727enum ZigClangStringLiteral_StringKind ZigClangStringLiteral_getKind(const struct ZigClangStringLiteral *self) {2737enum ZigClangCharacterLiteral_CharacterKind ZigClangStringLiteral_getKind(const struct ZigClangStringLiteral *self) {
2728 auto casted = reinterpret_cast<const clang::StringLiteral *>(self);2738 auto casted = reinterpret_cast<const clang::StringLiteral *>(self);
2729 return (ZigClangStringLiteral_StringKind)casted->getKind();2739 return (ZigClangCharacterLiteral_CharacterKind)casted->getKind();
2730}2740}
27312741
2732uint32_t ZigClangStringLiteral_getCodeUnit(const struct ZigClangStringLiteral *self, size_t i) {2742uint32_t ZigClangStringLiteral_getCodeUnit(const struct ZigClangStringLiteral *self, size_t i) {
src/zig_clang.h+32-20
...@@ -252,6 +252,7 @@ enum ZigClangTypeClass {...@@ -252,6 +252,7 @@ enum ZigClangTypeClass {
252 ZigClangType_VariableArray,252 ZigClangType_VariableArray,
253 ZigClangType_Atomic,253 ZigClangType_Atomic,
254 ZigClangType_Attributed,254 ZigClangType_Attributed,
255 ZigClangType_BTFTagAttributed,
255 ZigClangType_BitInt,256 ZigClangType_BitInt,
256 ZigClangType_BlockPointer,257 ZigClangType_BlockPointer,
257 ZigClangType_Builtin,258 ZigClangType_Builtin,
...@@ -337,25 +338,33 @@ enum ZigClangStmtClass {...@@ -337,25 +338,33 @@ enum ZigClangStmtClass {
337 ZigClangStmt_OMPForDirectiveClass,338 ZigClangStmt_OMPForDirectiveClass,
338 ZigClangStmt_OMPForSimdDirectiveClass,339 ZigClangStmt_OMPForSimdDirectiveClass,
339 ZigClangStmt_OMPGenericLoopDirectiveClass,340 ZigClangStmt_OMPGenericLoopDirectiveClass,
341 ZigClangStmt_OMPMaskedTaskLoopDirectiveClass,
342 ZigClangStmt_OMPMaskedTaskLoopSimdDirectiveClass,
340 ZigClangStmt_OMPMasterTaskLoopDirectiveClass,343 ZigClangStmt_OMPMasterTaskLoopDirectiveClass,
341 ZigClangStmt_OMPMasterTaskLoopSimdDirectiveClass,344 ZigClangStmt_OMPMasterTaskLoopSimdDirectiveClass,
342 ZigClangStmt_OMPParallelForDirectiveClass,345 ZigClangStmt_OMPParallelForDirectiveClass,
343 ZigClangStmt_OMPParallelForSimdDirectiveClass,346 ZigClangStmt_OMPParallelForSimdDirectiveClass,
347 ZigClangStmt_OMPParallelGenericLoopDirectiveClass,
348 ZigClangStmt_OMPParallelMaskedTaskLoopDirectiveClass,
349 ZigClangStmt_OMPParallelMaskedTaskLoopSimdDirectiveClass,
344 ZigClangStmt_OMPParallelMasterTaskLoopDirectiveClass,350 ZigClangStmt_OMPParallelMasterTaskLoopDirectiveClass,
345 ZigClangStmt_OMPParallelMasterTaskLoopSimdDirectiveClass,351 ZigClangStmt_OMPParallelMasterTaskLoopSimdDirectiveClass,
346 ZigClangStmt_OMPSimdDirectiveClass,352 ZigClangStmt_OMPSimdDirectiveClass,
347 ZigClangStmt_OMPTargetParallelForSimdDirectiveClass,353 ZigClangStmt_OMPTargetParallelForSimdDirectiveClass,
354 ZigClangStmt_OMPTargetParallelGenericLoopDirectiveClass,
348 ZigClangStmt_OMPTargetSimdDirectiveClass,355 ZigClangStmt_OMPTargetSimdDirectiveClass,
349 ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass,356 ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass,
350 ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass,357 ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass,
351 ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass,358 ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass,
352 ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass,359 ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass,
360 ZigClangStmt_OMPTargetTeamsGenericLoopDirectiveClass,
353 ZigClangStmt_OMPTaskLoopDirectiveClass,361 ZigClangStmt_OMPTaskLoopDirectiveClass,
354 ZigClangStmt_OMPTaskLoopSimdDirectiveClass,362 ZigClangStmt_OMPTaskLoopSimdDirectiveClass,
355 ZigClangStmt_OMPTeamsDistributeDirectiveClass,363 ZigClangStmt_OMPTeamsDistributeDirectiveClass,
356 ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass,364 ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass,
357 ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass,365 ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass,
358 ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass,366 ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass,
367 ZigClangStmt_OMPTeamsGenericLoopDirectiveClass,
359 ZigClangStmt_OMPTileDirectiveClass,368 ZigClangStmt_OMPTileDirectiveClass,
360 ZigClangStmt_OMPUnrollDirectiveClass,369 ZigClangStmt_OMPUnrollDirectiveClass,
361 ZigClangStmt_OMPMaskedDirectiveClass,370 ZigClangStmt_OMPMaskedDirectiveClass,
...@@ -363,6 +372,7 @@ enum ZigClangStmtClass {...@@ -363,6 +372,7 @@ enum ZigClangStmtClass {
363 ZigClangStmt_OMPMetaDirectiveClass,372 ZigClangStmt_OMPMetaDirectiveClass,
364 ZigClangStmt_OMPOrderedDirectiveClass,373 ZigClangStmt_OMPOrderedDirectiveClass,
365 ZigClangStmt_OMPParallelDirectiveClass,374 ZigClangStmt_OMPParallelDirectiveClass,
375 ZigClangStmt_OMPParallelMaskedDirectiveClass,
366 ZigClangStmt_OMPParallelMasterDirectiveClass,376 ZigClangStmt_OMPParallelMasterDirectiveClass,
367 ZigClangStmt_OMPParallelSectionsDirectiveClass,377 ZigClangStmt_OMPParallelSectionsDirectiveClass,
368 ZigClangStmt_OMPScanDirectiveClass,378 ZigClangStmt_OMPScanDirectiveClass,
...@@ -667,6 +677,7 @@ enum ZigClangDeclKind {...@@ -667,6 +677,7 @@ enum ZigClangDeclKind {
667 ZigClangDeclOMPDeclareMapper,677 ZigClangDeclOMPDeclareMapper,
668 ZigClangDeclOMPDeclareReduction,678 ZigClangDeclOMPDeclareReduction,
669 ZigClangDeclTemplateParamObject,679 ZigClangDeclTemplateParamObject,
680 ZigClangDeclUnnamedGlobalConstant,
670 ZigClangDeclUnresolvedUsingValue,681 ZigClangDeclUnresolvedUsingValue,
671 ZigClangDeclOMPAllocate,682 ZigClangDeclOMPAllocate,
672 ZigClangDeclOMPRequires,683 ZigClangDeclOMPRequires,
...@@ -921,25 +932,27 @@ enum ZigClangBuiltinTypeKind {...@@ -921,25 +932,27 @@ enum ZigClangBuiltinTypeKind {
921};932};
922933
923enum ZigClangCallingConv {934enum ZigClangCallingConv {
924 ZigClangCallingConv_C, // __attribute__((cdecl))935 ZigClangCallingConv_C,
925 ZigClangCallingConv_X86StdCall, // __attribute__((stdcall))936 ZigClangCallingConv_X86StdCall,
926 ZigClangCallingConv_X86FastCall, // __attribute__((fastcall))937 ZigClangCallingConv_X86FastCall,
927 ZigClangCallingConv_X86ThisCall, // __attribute__((thiscall))938 ZigClangCallingConv_X86ThisCall,
928 ZigClangCallingConv_X86VectorCall, // __attribute__((vectorcall))939 ZigClangCallingConv_X86VectorCall,
929 ZigClangCallingConv_X86Pascal, // __attribute__((pascal))940 ZigClangCallingConv_X86Pascal,
930 ZigClangCallingConv_Win64, // __attribute__((ms_abi))941 ZigClangCallingConv_Win64,
931 ZigClangCallingConv_X86_64SysV, // __attribute__((sysv_abi))942 ZigClangCallingConv_X86_64SysV,
932 ZigClangCallingConv_X86RegCall, // __attribute__((regcall))943 ZigClangCallingConv_X86RegCall,
933 ZigClangCallingConv_AAPCS, // __attribute__((pcs("aapcs")))944 ZigClangCallingConv_AAPCS,
934 ZigClangCallingConv_AAPCS_VFP, // __attribute__((pcs("aapcs-vfp")))945 ZigClangCallingConv_AAPCS_VFP,
935 ZigClangCallingConv_IntelOclBicc, // __attribute__((intel_ocl_bicc))946 ZigClangCallingConv_IntelOclBicc,
936 ZigClangCallingConv_SpirFunction, // default for OpenCL functions on SPIR target947 ZigClangCallingConv_SpirFunction,
937 ZigClangCallingConv_OpenCLKernel, // inferred for OpenCL kernels948 ZigClangCallingConv_OpenCLKernel,
938 ZigClangCallingConv_Swift, // __attribute__((swiftcall))949 ZigClangCallingConv_Swift,
939 ZigClangCallingConv_SwiftAsync, // __attribute__((swiftasynccall))950 ZigClangCallingConv_SwiftAsync,
940 ZigClangCallingConv_PreserveMost, // __attribute__((preserve_most))951 ZigClangCallingConv_PreserveMost,
941 ZigClangCallingConv_PreserveAll, // __attribute__((preserve_all))952 ZigClangCallingConv_PreserveAll,
942 ZigClangCallingConv_AArch64VectorCall, // __attribute__((aarch64_vector_pcs))953 ZigClangCallingConv_AArch64VectorCall,
954 ZigClangCallingConv_AArch64SVEPCS,
955 ZigClangCallingConv_AMDGPUKernelCall,
943};956};
944957
945enum ZigClangStorageClass {958enum ZigClangStorageClass {
...@@ -1253,7 +1266,6 @@ ZIG_EXTERN_C double ZigClangFloatingLiteral_getValueAsApproximateDouble(const Zi...@@ -1253,7 +1266,6 @@ ZIG_EXTERN_C double ZigClangFloatingLiteral_getValueAsApproximateDouble(const Zi
1253ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangFloatingLiteral_getBeginLoc(const struct ZigClangFloatingLiteral *);1266ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangFloatingLiteral_getBeginLoc(const struct ZigClangFloatingLiteral *);
1254ZIG_EXTERN_C ZigClangAPFloatBase_Semantics ZigClangFloatingLiteral_getRawSemantics(const ZigClangFloatingLiteral *self);1267ZIG_EXTERN_C ZigClangAPFloatBase_Semantics ZigClangFloatingLiteral_getRawSemantics(const ZigClangFloatingLiteral *self);
12551268
1256ZIG_EXTERN_C enum ZigClangStringLiteral_StringKind ZigClangStringLiteral_getKind(const struct ZigClangStringLiteral *self);
1257ZIG_EXTERN_C uint32_t ZigClangStringLiteral_getCodeUnit(const struct ZigClangStringLiteral *self, size_t i);1269ZIG_EXTERN_C uint32_t ZigClangStringLiteral_getCodeUnit(const struct ZigClangStringLiteral *self, size_t i);
1258ZIG_EXTERN_C unsigned ZigClangStringLiteral_getLength(const struct ZigClangStringLiteral *self);1270ZIG_EXTERN_C unsigned ZigClangStringLiteral_getLength(const struct ZigClangStringLiteral *self);
1259ZIG_EXTERN_C unsigned ZigClangStringLiteral_getCharByteWidth(const struct ZigClangStringLiteral *self);1271ZIG_EXTERN_C unsigned ZigClangStringLiteral_getCharByteWidth(const struct ZigClangStringLiteral *self);
src/zig_llvm.h+35-5
...@@ -324,8 +324,10 @@ ZIG_EXTERN_C void ZigLLVMAddFunctionAttrCold(LLVMValueRef fn);...@@ -324,8 +324,10 @@ ZIG_EXTERN_C void ZigLLVMAddFunctionAttrCold(LLVMValueRef fn);
324ZIG_EXTERN_C void ZigLLVMParseCommandLineOptions(size_t argc, const char *const *argv);324ZIG_EXTERN_C void ZigLLVMParseCommandLineOptions(size_t argc, const char *const *argv);
325325
326326
327// copied from include/llvm/ADT/Triple.h327// synchronize with llvm/include/ADT/Triple.h::ArchType
328// synchronize with target.cpp::arch_list328// synchronize with std.Target.Cpu.Arch
329// synchronize with src/stage1/target.cpp::arch_list
330// synchronize with codegen/llvm/bindings.zig::ArchType
329enum ZigLLVM_ArchType {331enum ZigLLVM_ArchType {
330 ZigLLVM_UnknownArch,332 ZigLLVM_UnknownArch,
331333
...@@ -339,7 +341,10 @@ enum ZigLLVM_ArchType {...@@ -339,7 +341,10 @@ enum ZigLLVM_ArchType {
339 ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)341 ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
340 ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian)342 ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian)
341 ZigLLVM_csky, // CSKY: csky343 ZigLLVM_csky, // CSKY: csky
344 ZigLLVM_dxil, // DXIL 32-bit DirectX bytecode
342 ZigLLVM_hexagon, // Hexagon: hexagon345 ZigLLVM_hexagon, // Hexagon: hexagon
346 ZigLLVM_loongarch32, // LoongArch (32-bit): loongarch32
347 ZigLLVM_loongarch64, // LoongArch (64-bit): loongarch64
343 ZigLLVM_m68k, // M68k: Motorola 680x0 family348 ZigLLVM_m68k, // M68k: Motorola 680x0 family
344 ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6349 ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6
345 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el350 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el
...@@ -409,6 +414,10 @@ enum ZigLLVM_VendorType {...@@ -409,6 +414,10 @@ enum ZigLLVM_VendorType {
409 ZigLLVM_LastVendorType = ZigLLVM_OpenEmbedded414 ZigLLVM_LastVendorType = ZigLLVM_OpenEmbedded
410};415};
411416
417// synchronize with llvm/include/ADT/Triple.h::OsType
418// synchronize with std.Target.Os.Tag
419// synchronize with codegen/llvm/bindings.zig::OsType
420// synchronize with src/stage1/target.cpp::os_list
412enum ZigLLVM_OSType {421enum ZigLLVM_OSType {
413 ZigLLVM_UnknownOS,422 ZigLLVM_UnknownOS,
414423
...@@ -437,9 +446,11 @@ enum ZigLLVM_OSType {...@@ -437,9 +446,11 @@ enum ZigLLVM_OSType {
437 ZigLLVM_NVCL, // NVIDIA OpenCL446 ZigLLVM_NVCL, // NVIDIA OpenCL
438 ZigLLVM_AMDHSA, // AMD HSA Runtime447 ZigLLVM_AMDHSA, // AMD HSA Runtime
439 ZigLLVM_PS4,448 ZigLLVM_PS4,
449 ZigLLVM_PS5,
440 ZigLLVM_ELFIAMCU,450 ZigLLVM_ELFIAMCU,
441 ZigLLVM_TvOS, // Apple tvOS451 ZigLLVM_TvOS, // Apple tvOS
442 ZigLLVM_WatchOS, // Apple watchOS452 ZigLLVM_WatchOS, // Apple watchOS
453 ZigLLVM_DriverKit, // Apple DriverKit
443 ZigLLVM_Mesa3D,454 ZigLLVM_Mesa3D,
444 ZigLLVM_Contiki,455 ZigLLVM_Contiki,
445 ZigLLVM_AMDPAL, // AMD PAL Runtime456 ZigLLVM_AMDPAL, // AMD PAL Runtime
...@@ -447,8 +458,8 @@ enum ZigLLVM_OSType {...@@ -447,8 +458,8 @@ enum ZigLLVM_OSType {
447 ZigLLVM_Hurd, // GNU/Hurd458 ZigLLVM_Hurd, // GNU/Hurd
448 ZigLLVM_WASI, // Experimental WebAssembly OS459 ZigLLVM_WASI, // Experimental WebAssembly OS
449 ZigLLVM_Emscripten,460 ZigLLVM_Emscripten,
450461 ZigLLVM_ShaderModel, // DirectX ShaderModel
451 ZigLLVM_LastOSType = ZigLLVM_Emscripten462 ZigLLVM_LastOSType = ZigLLVM_ShaderModel
452};463};
453464
454// Synchronize with target.cpp::abi_list465// Synchronize with target.cpp::abi_list
...@@ -477,16 +488,35 @@ enum ZigLLVM_EnvironmentType {...@@ -477,16 +488,35 @@ enum ZigLLVM_EnvironmentType {
477 ZigLLVM_CoreCLR,488 ZigLLVM_CoreCLR,
478 ZigLLVM_Simulator, // Simulator variants of other systems, e.g., Apple's iOS489 ZigLLVM_Simulator, // Simulator variants of other systems, e.g., Apple's iOS
479 ZigLLVM_MacABI, // Mac Catalyst variant of Apple's iOS deployment target.490 ZigLLVM_MacABI, // Mac Catalyst variant of Apple's iOS deployment target.
480 ZigLLVM_LastEnvironmentType = ZigLLVM_MacABI491
492 ZigLLVM_Pixel,
493 ZigLLVM_Vertex,
494 ZigLLVM_Geometry,
495 ZigLLVM_Hull,
496 ZigLLVM_Domain,
497 ZigLLVM_Compute,
498 ZigLLVM_Library,
499 ZigLLVM_RayGeneration,
500 ZigLLVM_Intersection,
501 ZigLLVM_AnyHit,
502 ZigLLVM_ClosestHit,
503 ZigLLVM_Miss,
504 ZigLLVM_Callable,
505 ZigLLVM_Mesh,
506 ZigLLVM_Amplification,
507
508 ZigLLVM_LastEnvironmentType = ZigLLVM_Amplification
481};509};
482510
483enum ZigLLVM_ObjectFormatType {511enum ZigLLVM_ObjectFormatType {
484 ZigLLVM_UnknownObjectFormat,512 ZigLLVM_UnknownObjectFormat,
485513
486 ZigLLVM_COFF,514 ZigLLVM_COFF,
515 ZigLLVM_DXContainer,
487 ZigLLVM_ELF,516 ZigLLVM_ELF,
488 ZigLLVM_GOFF,517 ZigLLVM_GOFF,
489 ZigLLVM_MachO,518 ZigLLVM_MachO,
519 ZigLLVM_SPIRV,
490 ZigLLVM_Wasm,520 ZigLLVM_Wasm,
491 ZigLLVM_XCOFF,521 ZigLLVM_XCOFF,
492};522};