authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-08-16 01:11:10-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-08-16 01:11:10-07:00
log2f599b655b81004f101773b3b35dc112c0d84b72
treea296b4086ee0d829cab7e7d0cb7488ebf492a622
parenta69b86003c737aeb42f015bb9225b3900b932add

update src/ to LLVM 13 rc1 API


11 files changed, 542 insertions(+), 301 deletions(-)

lib/std/target.zig+7
...@@ -464,6 +464,7 @@ pub const Target = struct {...@@ -464,6 +464,7 @@ pub const Target = struct {
464 musl,464 musl,
465 musleabi,465 musleabi,
466 musleabihf,466 musleabihf,
467 muslx32,
467 msvc,468 msvc,
468 itanium,469 itanium,
469 cygnus,470 cygnus,
...@@ -758,6 +759,7 @@ pub const Target = struct {...@@ -758,6 +759,7 @@ pub const Target = struct {
758 bpfeb,759 bpfeb,
759 csky,760 csky,
760 hexagon,761 hexagon,
762 m68k,
761 mips,763 mips,
762 mipsel,764 mipsel,
763 mips64,765 mips64,
...@@ -900,6 +902,7 @@ pub const Target = struct {...@@ -900,6 +902,7 @@ pub const Target = struct {
900 .arm => ._ARM,902 .arm => ._ARM,
901 .armeb => ._ARM,903 .armeb => ._ARM,
902 .hexagon => ._HEXAGON,904 .hexagon => ._HEXAGON,
905 .m68k => ._68K,
903 .le32 => ._NONE,906 .le32 => ._NONE,
904 .mips => ._MIPS,907 .mips => ._MIPS,
905 .mipsel => ._MIPS_RS3_LE,908 .mipsel => ._MIPS_RS3_LE,
...@@ -960,6 +963,7 @@ pub const Target = struct {...@@ -960,6 +963,7 @@ pub const Target = struct {
960 .arm => .ARM,963 .arm => .ARM,
961 .armeb => .Unknown,964 .armeb => .Unknown,
962 .hexagon => .Unknown,965 .hexagon => .Unknown,
966 .m68k => .Unknown,
963 .le32 => .Unknown,967 .le32 => .Unknown,
964 .mips => .Unknown,968 .mips => .Unknown,
965 .mipsel => .Unknown,969 .mipsel => .Unknown,
...@@ -1063,6 +1067,7 @@ pub const Target = struct {...@@ -1063,6 +1067,7 @@ pub const Target = struct {
1063 .armeb,1067 .armeb,
1064 .aarch64_be,1068 .aarch64_be,
1065 .bpfeb,1069 .bpfeb,
1070 .m68k,
1066 .mips,1071 .mips,
1067 .mips64,1072 .mips64,
1068 .powerpc,1073 .powerpc,
...@@ -1089,6 +1094,7 @@ pub const Target = struct {...@@ -1089,6 +1094,7 @@ pub const Target = struct {
1089 .armeb,1094 .armeb,
1090 .csky,1095 .csky,
1091 .hexagon,1096 .hexagon,
1097 .m68k,
1092 .le32,1098 .le32,
1093 .mips,1099 .mips,
1094 .mipsel,1100 .mipsel,
...@@ -1587,6 +1593,7 @@ pub const Target = struct {...@@ -1587,6 +1593,7 @@ pub const Target = struct {
1587 .arc,1593 .arc,
1588 .csky,1594 .csky,
1589 .hexagon,1595 .hexagon,
1596 .m68k,
1590 .msp430,1597 .msp430,
1591 .r600,1598 .r600,
1592 .amdgcn,1599 .amdgcn,
src/clang.zig+78-1
...@@ -1168,13 +1168,16 @@ const StmtClass = enum(c_int) {...@@ -1168,13 +1168,16 @@ const StmtClass = enum(c_int) {
1168 IndirectGotoStmtClass,1168 IndirectGotoStmtClass,
1169 MSDependentExistsStmtClass,1169 MSDependentExistsStmtClass,
1170 NullStmtClass,1170 NullStmtClass,
1171 OMPCanonicalLoopClass,
1171 OMPAtomicDirectiveClass,1172 OMPAtomicDirectiveClass,
1172 OMPBarrierDirectiveClass,1173 OMPBarrierDirectiveClass,
1173 OMPCancelDirectiveClass,1174 OMPCancelDirectiveClass,
1174 OMPCancellationPointDirectiveClass,1175 OMPCancellationPointDirectiveClass,
1175 OMPCriticalDirectiveClass,1176 OMPCriticalDirectiveClass,
1176 OMPDepobjDirectiveClass,1177 OMPDepobjDirectiveClass,
1178 OMPDispatchDirectiveClass,
1177 OMPFlushDirectiveClass,1179 OMPFlushDirectiveClass,
1180 OMPInteropDirectiveClass,
1178 OMPDistributeDirectiveClass,1181 OMPDistributeDirectiveClass,
1179 OMPDistributeParallelForDirectiveClass,1182 OMPDistributeParallelForDirectiveClass,
1180 OMPDistributeParallelForSimdDirectiveClass,1183 OMPDistributeParallelForSimdDirectiveClass,
...@@ -1200,6 +1203,9 @@ const StmtClass = enum(c_int) {...@@ -1200,6 +1203,9 @@ const StmtClass = enum(c_int) {
1200 OMPTeamsDistributeParallelForDirectiveClass,1203 OMPTeamsDistributeParallelForDirectiveClass,
1201 OMPTeamsDistributeParallelForSimdDirectiveClass,1204 OMPTeamsDistributeParallelForSimdDirectiveClass,
1202 OMPTeamsDistributeSimdDirectiveClass,1205 OMPTeamsDistributeSimdDirectiveClass,
1206 OMPTileDirectiveClass,
1207 OMPUnrollDirectiveClass,
1208 OMPMaskedDirectiveClass,
1203 OMPMasterDirectiveClass,1209 OMPMasterDirectiveClass,
1204 OMPOrderedDirectiveClass,1210 OMPOrderedDirectiveClass,
1205 OMPParallelDirectiveClass,1211 OMPParallelDirectiveClass,
...@@ -1348,6 +1354,7 @@ const StmtClass = enum(c_int) {...@@ -1348,6 +1354,7 @@ const StmtClass = enum(c_int) {
1348 PseudoObjectExprClass,1354 PseudoObjectExprClass,
1349 RecoveryExprClass,1355 RecoveryExprClass,
1350 RequiresExprClass,1356 RequiresExprClass,
1357 SYCLUniqueStableNameExprClass,
1351 ShuffleVectorExprClass,1358 ShuffleVectorExprClass,
1352 SizeOfPackExprClass,1359 SizeOfPackExprClass,
1353 SourceLocExprClass,1360 SourceLocExprClass,
...@@ -1390,6 +1397,7 @@ pub const CK = enum(c_int) {...@@ -1390,6 +1397,7 @@ pub const CK = enum(c_int) {
1390 PointerToIntegral,1397 PointerToIntegral,
1391 PointerToBoolean,1398 PointerToBoolean,
1392 ToVoid,1399 ToVoid,
1400 MatrixCast,
1393 VectorSplat,1401 VectorSplat,
1394 IntegralCast,1402 IntegralCast,
1395 IntegralToBoolean,1403 IntegralToBoolean,
...@@ -1445,6 +1453,8 @@ pub const DeclKind = enum(c_int) {...@@ -1445,6 +1453,8 @@ pub const DeclKind = enum(c_int) {
1445 Import,1453 Import,
1446 LifetimeExtendedTemporary,1454 LifetimeExtendedTemporary,
1447 LinkageSpec,1455 LinkageSpec,
1456 Using,
1457 UsingEnum,
1448 Label,1458 Label,
1449 Namespace,1459 Namespace,
1450 NamespaceAlias,1460 NamespaceAlias,
...@@ -1473,7 +1483,7 @@ pub const DeclKind = enum(c_int) {...@@ -1473,7 +1483,7 @@ pub const DeclKind = enum(c_int) {
1473 TypeAlias,1483 TypeAlias,
1474 Typedef,1484 Typedef,
1475 UnresolvedUsingTypename,1485 UnresolvedUsingTypename,
1476 Using,1486 UnresolvedUsingIfExists,
1477 UsingDirective,1487 UsingDirective,
1478 UsingPack,1488 UsingPack,
1479 UsingShadow,1489 UsingShadow,
...@@ -1615,6 +1625,72 @@ pub const BuiltinTypeKind = enum(c_int) {...@@ -1615,6 +1625,72 @@ pub const BuiltinTypeKind = enum(c_int) {
1615 SveBool,1625 SveBool,
1616 VectorQuad,1626 VectorQuad,
1617 VectorPair,1627 VectorPair,
1628 RvvInt8mf8,
1629 RvvInt8mf4,
1630 RvvInt8mf2,
1631 RvvInt8m1,
1632 RvvInt8m2,
1633 RvvInt8m4,
1634 RvvInt8m8,
1635 RvvUint8mf8,
1636 RvvUint8mf4,
1637 RvvUint8mf2,
1638 RvvUint8m1,
1639 RvvUint8m2,
1640 RvvUint8m4,
1641 RvvUint8m8,
1642 RvvInt16mf4,
1643 RvvInt16mf2,
1644 RvvInt16m1,
1645 RvvInt16m2,
1646 RvvInt16m4,
1647 RvvInt16m8,
1648 RvvUint16mf4,
1649 RvvUint16mf2,
1650 RvvUint16m1,
1651 RvvUint16m2,
1652 RvvUint16m4,
1653 RvvUint16m8,
1654 RvvInt32mf2,
1655 RvvInt32m1,
1656 RvvInt32m2,
1657 RvvInt32m4,
1658 RvvInt32m8,
1659 RvvUint32mf2,
1660 RvvUint32m1,
1661 RvvUint32m2,
1662 RvvUint32m4,
1663 RvvUint32m8,
1664 RvvInt64m1,
1665 RvvInt64m2,
1666 RvvInt64m4,
1667 RvvInt64m8,
1668 RvvUint64m1,
1669 RvvUint64m2,
1670 RvvUint64m4,
1671 RvvUint64m8,
1672 RvvFloat16mf4,
1673 RvvFloat16mf2,
1674 RvvFloat16m1,
1675 RvvFloat16m2,
1676 RvvFloat16m4,
1677 RvvFloat16m8,
1678 RvvFloat32mf2,
1679 RvvFloat32m1,
1680 RvvFloat32m2,
1681 RvvFloat32m4,
1682 RvvFloat32m8,
1683 RvvFloat64m1,
1684 RvvFloat64m2,
1685 RvvFloat64m4,
1686 RvvFloat64m8,
1687 RvvBool1,
1688 RvvBool2,
1689 RvvBool4,
1690 RvvBool8,
1691 RvvBool16,
1692 RvvBool32,
1693 RvvBool64,
1618 Void,1694 Void,
1619 Bool,1695 Bool,
1620 Char_U,1696 Char_U,
...@@ -1705,6 +1781,7 @@ pub const CallingConv = enum(c_int) {...@@ -1705,6 +1781,7 @@ pub const CallingConv = enum(c_int) {
1705 SpirFunction,1781 SpirFunction,
1706 OpenCLKernel,1782 OpenCLKernel,
1707 Swift,1783 Swift,
1784 SwiftAsync,
1708 PreserveMost,1785 PreserveMost,
1709 PreserveAll,1786 PreserveAll,
1710 AArch64VectorCall,1787 AArch64VectorCall,
src/codegen/llvm.zig+3
...@@ -31,6 +31,7 @@ pub fn targetTriple(allocator: *Allocator, target: std.Target) ![:0]u8 {...@@ -31,6 +31,7 @@ pub fn targetTriple(allocator: *Allocator, target: std.Target) ![:0]u8 {
31 .bpfeb => "bpfeb",31 .bpfeb => "bpfeb",
32 .csky => "csky",32 .csky => "csky",
33 .hexagon => "hexagon",33 .hexagon => "hexagon",
34 .m68k => "m68k",
34 .mips => "mips",35 .mips => "mips",
35 .mipsel => "mipsel",36 .mipsel => "mipsel",
36 .mips64 => "mips64",37 .mips64 => "mips64",
...@@ -140,6 +141,7 @@ pub fn targetTriple(allocator: *Allocator, target: std.Target) ![:0]u8 {...@@ -140,6 +141,7 @@ pub fn targetTriple(allocator: *Allocator, target: std.Target) ![:0]u8 {
140 .musl => "musl",141 .musl => "musl",
141 .musleabi => "musleabi",142 .musleabi => "musleabi",
142 .musleabihf => "musleabihf",143 .musleabihf => "musleabihf",
144 .muslx32 => "muslx32",
143 .msvc => "msvc",145 .msvc => "msvc",
144 .itanium => "itanium",146 .itanium => "itanium",
145 .cygnus => "cygnus",147 .cygnus => "cygnus",
...@@ -1463,6 +1465,7 @@ pub const FuncGen = struct {...@@ -1463,6 +1465,7 @@ pub const FuncGen = struct {
1463 llvm.Bool.fromBool(is_volatile),1465 llvm.Bool.fromBool(is_volatile),
1464 .False,1466 .False,
1465 .ATT,1467 .ATT,
1468 .False,
1466 );1469 );
1467 return self.builder.buildCall(1470 return self.builder.buildCall(
1468 asm_fn,1471 asm_fn,
src/codegen/llvm/bindings.zig+2
...@@ -259,6 +259,7 @@ extern fn LLVMGetInlineAsm(...@@ -259,6 +259,7 @@ extern fn LLVMGetInlineAsm(
259 HasSideEffects: Bool,259 HasSideEffects: Bool,
260 IsAlignStack: Bool,260 IsAlignStack: Bool,
261 Dialect: InlineAsmDialect,261 Dialect: InlineAsmDialect,
262 CanThrow: Bool,
262) *const Value;263) *const Value;
263264
264pub const functionType = LLVMFunctionType;265pub const functionType = LLVMFunctionType;
...@@ -840,6 +841,7 @@ pub const ArchType = enum(c_int) {...@@ -840,6 +841,7 @@ pub const ArchType = enum(c_int) {
840 bpfeb,841 bpfeb,
841 csky,842 csky,
842 hexagon,843 hexagon,
844 m68k,
843 mips,845 mips,
844 mipsel,846 mipsel,
845 mips64,847 mips64,
src/stage1/codegen.cpp+20-19
...@@ -3953,7 +3953,7 @@ static LLVMValueRef gen_valgrind_client_request(CodeGen *g, LLVMValueRef default...@@ -3953,7 +3953,7 @@ static LLVMValueRef gen_valgrind_client_request(CodeGen *g, LLVMValueRef default
3953 input_and_output_count, false);3953 input_and_output_count, false);
3954 LLVMValueRef asm_fn = LLVMGetInlineAsm(function_type, buf_ptr(asm_template), buf_len(asm_template),3954 LLVMValueRef asm_fn = LLVMGetInlineAsm(function_type, buf_ptr(asm_template), buf_len(asm_template),
3955 buf_ptr(asm_constraints), buf_len(asm_constraints), asm_has_side_effects, asm_is_alignstack,3955 buf_ptr(asm_constraints), buf_len(asm_constraints), asm_has_side_effects, asm_is_alignstack,
3956 LLVMInlineAsmDialectATT);3956 LLVMInlineAsmDialectATT, false);
3957 return LLVMBuildCall(g->builder, asm_fn, param_values, input_and_output_count, "");3957 return LLVMBuildCall(g->builder, asm_fn, param_values, input_and_output_count, "");
3958 }3958 }
3959 }3959 }
...@@ -5064,7 +5064,7 @@ static LLVMValueRef ir_render_asm_gen(CodeGen *g, Stage1Air *executable, Stage1A...@@ -5064,7 +5064,7 @@ static LLVMValueRef ir_render_asm_gen(CodeGen *g, Stage1Air *executable, Stage1A
50645064
5065 bool is_volatile = instruction->has_side_effects || (asm_expr->output_list.length == 0);5065 bool is_volatile = instruction->has_side_effects || (asm_expr->output_list.length == 0);
5066 LLVMValueRef asm_fn = LLVMGetInlineAsm(function_type, buf_ptr(&llvm_template), buf_len(&llvm_template),5066 LLVMValueRef asm_fn = LLVMGetInlineAsm(function_type, buf_ptr(&llvm_template), buf_len(&llvm_template),
5067 buf_ptr(&constraint_buf), buf_len(&constraint_buf), is_volatile, false, LLVMInlineAsmDialectATT);5067 buf_ptr(&constraint_buf), buf_len(&constraint_buf), is_volatile, false, LLVMInlineAsmDialectATT, false);
50685068
5069 LLVMValueRef built_call = LLVMBuildCall(g->builder, asm_fn, param_values, (unsigned)input_and_output_count, "");5069 LLVMValueRef built_call = LLVMBuildCall(g->builder, asm_fn, param_values, (unsigned)input_and_output_count, "");
5070 heap::c_allocator.deallocate(param_values, input_and_output_count);5070 heap::c_allocator.deallocate(param_values, input_and_output_count);
...@@ -5606,21 +5606,21 @@ static LLVMAtomicOrdering to_LLVMAtomicOrdering(AtomicOrder atomic_order) {...@@ -5606,21 +5606,21 @@ static LLVMAtomicOrdering to_LLVMAtomicOrdering(AtomicOrder atomic_order) {
5606 zig_unreachable();5606 zig_unreachable();
5607}5607}
56085608
5609static enum ZigLLVM_AtomicRMWBinOp to_ZigLLVMAtomicRMWBinOp(AtomicRmwOp op, bool is_signed, bool is_float) {5609static LLVMAtomicRMWBinOp to_LLVMAtomicRMWBinOp(AtomicRmwOp op, bool is_signed, bool is_float) {
5610 switch (op) {5610 switch (op) {
5611 case AtomicRmwOp_xchg: return ZigLLVMAtomicRMWBinOpXchg;5611 case AtomicRmwOp_xchg: return LLVMAtomicRMWBinOpXchg;
5612 case AtomicRmwOp_add:5612 case AtomicRmwOp_add:
5613 return is_float ? ZigLLVMAtomicRMWBinOpFAdd : ZigLLVMAtomicRMWBinOpAdd;5613 return is_float ? LLVMAtomicRMWBinOpFAdd : LLVMAtomicRMWBinOpAdd;
5614 case AtomicRmwOp_sub:5614 case AtomicRmwOp_sub:
5615 return is_float ? ZigLLVMAtomicRMWBinOpFSub : ZigLLVMAtomicRMWBinOpSub;5615 return is_float ? LLVMAtomicRMWBinOpFSub : LLVMAtomicRMWBinOpSub;
5616 case AtomicRmwOp_and: return ZigLLVMAtomicRMWBinOpAnd;5616 case AtomicRmwOp_and: return LLVMAtomicRMWBinOpAnd;
5617 case AtomicRmwOp_nand: return ZigLLVMAtomicRMWBinOpNand;5617 case AtomicRmwOp_nand: return LLVMAtomicRMWBinOpNand;
5618 case AtomicRmwOp_or: return ZigLLVMAtomicRMWBinOpOr;5618 case AtomicRmwOp_or: return LLVMAtomicRMWBinOpOr;
5619 case AtomicRmwOp_xor: return ZigLLVMAtomicRMWBinOpXor;5619 case AtomicRmwOp_xor: return LLVMAtomicRMWBinOpXor;
5620 case AtomicRmwOp_max:5620 case AtomicRmwOp_max:
5621 return is_signed ? ZigLLVMAtomicRMWBinOpMax : ZigLLVMAtomicRMWBinOpUMax;5621 return is_signed ? LLVMAtomicRMWBinOpMax : LLVMAtomicRMWBinOpUMax;
5622 case AtomicRmwOp_min:5622 case AtomicRmwOp_min:
5623 return is_signed ? ZigLLVMAtomicRMWBinOpMin : ZigLLVMAtomicRMWBinOpUMin;5623 return is_signed ? LLVMAtomicRMWBinOpMin : LLVMAtomicRMWBinOpUMin;
5624 }5624 }
5625 zig_unreachable();5625 zig_unreachable();
5626}5626}
...@@ -5679,8 +5679,9 @@ static LLVMValueRef ir_render_cmpxchg(CodeGen *g, Stage1Air *executable, Stage1A...@@ -5679,8 +5679,9 @@ static LLVMValueRef ir_render_cmpxchg(CodeGen *g, Stage1Air *executable, Stage1A
5679 LLVMAtomicOrdering success_order = to_LLVMAtomicOrdering(instruction->success_order);5679 LLVMAtomicOrdering success_order = to_LLVMAtomicOrdering(instruction->success_order);
5680 LLVMAtomicOrdering failure_order = to_LLVMAtomicOrdering(instruction->failure_order);5680 LLVMAtomicOrdering failure_order = to_LLVMAtomicOrdering(instruction->failure_order);
56815681
5682 LLVMValueRef result_val = ZigLLVMBuildCmpXchg(g->builder, ptr_val, cmp_val, new_val,5682 LLVMValueRef result_val = LLVMBuildAtomicCmpXchg(g->builder, ptr_val, cmp_val, new_val,
5683 success_order, failure_order, instruction->is_weak);5683 success_order, failure_order, g->is_single_threaded);
5684 LLVMSetWeak(result_val, instruction->is_weak);
56845685
5685 ZigType *optional_type = instruction->base.value->type;5686 ZigType *optional_type = instruction->base.value->type;
5686 assert(optional_type->id == ZigTypeIdOptional);5687 assert(optional_type->id == ZigTypeIdOptional);
...@@ -6446,13 +6447,13 @@ static LLVMValueRef ir_render_atomic_rmw(CodeGen *g, Stage1Air *executable,...@@ -6446,13 +6447,13 @@ static LLVMValueRef ir_render_atomic_rmw(CodeGen *g, Stage1Air *executable,
6446 } else {6447 } else {
6447 is_signed = false;6448 is_signed = false;
6448 }6449 }
6449 enum ZigLLVM_AtomicRMWBinOp op = to_ZigLLVMAtomicRMWBinOp(instruction->op, is_signed, is_float);6450 LLVMAtomicRMWBinOp op = to_LLVMAtomicRMWBinOp(instruction->op, is_signed, is_float);
6450 LLVMAtomicOrdering ordering = to_LLVMAtomicOrdering(instruction->ordering);6451 LLVMAtomicOrdering ordering = to_LLVMAtomicOrdering(instruction->ordering);
6451 LLVMValueRef ptr = ir_llvm_value(g, instruction->ptr);6452 LLVMValueRef ptr = ir_llvm_value(g, instruction->ptr);
6452 LLVMValueRef operand = ir_llvm_value(g, instruction->operand);6453 LLVMValueRef operand = ir_llvm_value(g, instruction->operand);
64536454
6454 LLVMTypeRef actual_abi_type = get_atomic_abi_type(g, instruction->ptr,6455 LLVMTypeRef actual_abi_type = get_atomic_abi_type(g, instruction->ptr,
6455 op == ZigLLVMAtomicRMWBinOpXchg);6456 op == LLVMAtomicRMWBinOpXchg);
6456 if (actual_abi_type != nullptr) {6457 if (actual_abi_type != nullptr) {
6457 // operand needs widening and truncating or bitcasting.6458 // operand needs widening and truncating or bitcasting.
6458 LLVMValueRef casted_ptr = LLVMBuildBitCast(g->builder, ptr,6459 LLVMValueRef casted_ptr = LLVMBuildBitCast(g->builder, ptr,
...@@ -6465,7 +6466,7 @@ static LLVMValueRef ir_render_atomic_rmw(CodeGen *g, Stage1Air *executable,...@@ -6465,7 +6466,7 @@ static LLVMValueRef ir_render_atomic_rmw(CodeGen *g, Stage1Air *executable,
6465 } else {6466 } else {
6466 casted_operand = LLVMBuildZExt(g->builder, operand, actual_abi_type, "");6467 casted_operand = LLVMBuildZExt(g->builder, operand, actual_abi_type, "");
6467 }6468 }
6468 LLVMValueRef uncasted_result = ZigLLVMBuildAtomicRMW(g->builder, op, casted_ptr, casted_operand, ordering,6469 LLVMValueRef uncasted_result = LLVMBuildAtomicRMW(g->builder, op, casted_ptr, casted_operand, ordering,
6469 g->is_single_threaded);6470 g->is_single_threaded);
6470 if (is_float) {6471 if (is_float) {
6471 return LLVMBuildBitCast(g->builder, uncasted_result, get_llvm_type(g, operand_type), "");6472 return LLVMBuildBitCast(g->builder, uncasted_result, get_llvm_type(g, operand_type), "");
...@@ -6475,14 +6476,14 @@ static LLVMValueRef ir_render_atomic_rmw(CodeGen *g, Stage1Air *executable,...@@ -6475,14 +6476,14 @@ static LLVMValueRef ir_render_atomic_rmw(CodeGen *g, Stage1Air *executable,
6475 }6476 }
64766477
6477 if (get_codegen_ptr_type_bail(g, operand_type) == nullptr) {6478 if (get_codegen_ptr_type_bail(g, operand_type) == nullptr) {
6478 return ZigLLVMBuildAtomicRMW(g->builder, op, ptr, operand, ordering, g->is_single_threaded);6479 return LLVMBuildAtomicRMW(g->builder, op, ptr, operand, ordering, g->is_single_threaded);
6479 }6480 }
64806481
6481 // it's a pointer but we need to treat it as an int6482 // it's a pointer but we need to treat it as an int
6482 LLVMValueRef casted_ptr = LLVMBuildBitCast(g->builder, ptr,6483 LLVMValueRef casted_ptr = LLVMBuildBitCast(g->builder, ptr,
6483 LLVMPointerType(g->builtin_types.entry_usize->llvm_type, 0), "");6484 LLVMPointerType(g->builtin_types.entry_usize->llvm_type, 0), "");
6484 LLVMValueRef casted_operand = LLVMBuildPtrToInt(g->builder, operand, g->builtin_types.entry_usize->llvm_type, "");6485 LLVMValueRef casted_operand = LLVMBuildPtrToInt(g->builder, operand, g->builtin_types.entry_usize->llvm_type, "");
6485 LLVMValueRef uncasted_result = ZigLLVMBuildAtomicRMW(g->builder, op, casted_ptr, casted_operand, ordering,6486 LLVMValueRef uncasted_result = LLVMBuildAtomicRMW(g->builder, op, casted_ptr, casted_operand, ordering,
6486 g->is_single_threaded);6487 g->is_single_threaded);
6487 return LLVMBuildIntToPtr(g->builder, uncasted_result, get_llvm_type(g, operand_type), "");6488 return LLVMBuildIntToPtr(g->builder, uncasted_result, get_llvm_type(g, operand_type), "");
6488}6489}
src/stage1/target.cpp+7-1
...@@ -25,6 +25,7 @@ static const ZigLLVM_ArchType arch_list[] = {...@@ -25,6 +25,7 @@ static const ZigLLVM_ArchType arch_list[] = {
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_hexagon, // Hexagon: hexagon27 ZigLLVM_hexagon, // Hexagon: hexagon
28 ZigLLVM_m68k, // M68k: Motorola 680x0 family
28 ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr629 ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6
29 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el30 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el
30 ZigLLVM_mips64, // MIPS64: mips64, mips64r6, mipsn32, mipsn32r631 ZigLLVM_mips64, // MIPS64: mips64, mips64r6, mipsn32, mipsn32r6
...@@ -147,6 +148,7 @@ static const ZigLLVM_EnvironmentType abi_list[] = {...@@ -147,6 +148,7 @@ static const ZigLLVM_EnvironmentType abi_list[] = {
147 ZigLLVM_Musl,148 ZigLLVM_Musl,
148 ZigLLVM_MuslEABI,149 ZigLLVM_MuslEABI,
149 ZigLLVM_MuslEABIHF,150 ZigLLVM_MuslEABIHF,
151 ZigLLVM_MuslX32,
150152
151 ZigLLVM_MSVC,153 ZigLLVM_MSVC,
152 ZigLLVM_Itanium,154 ZigLLVM_Itanium,
...@@ -497,6 +499,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {...@@ -497,6 +499,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
497 case ZigLLVM_arm:499 case ZigLLVM_arm:
498 case ZigLLVM_armeb:500 case ZigLLVM_armeb:
499 case ZigLLVM_hexagon:501 case ZigLLVM_hexagon:
502 case ZigLLVM_m68k:
500 case ZigLLVM_le32:503 case ZigLLVM_le32:
501 case ZigLLVM_mips:504 case ZigLLVM_mips:
502 case ZigLLVM_mipsel:505 case ZigLLVM_mipsel:
...@@ -564,6 +567,7 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {...@@ -564,6 +567,7 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {
564 case ZigLLVM_arm:567 case ZigLLVM_arm:
565 case ZigLLVM_armeb:568 case ZigLLVM_armeb:
566 case ZigLLVM_hexagon:569 case ZigLLVM_hexagon:
570 case ZigLLVM_m68k:
567 case ZigLLVM_le32:571 case ZigLLVM_le32:
568 case ZigLLVM_mips:572 case ZigLLVM_mips:
569 case ZigLLVM_mipsel:573 case ZigLLVM_mipsel:
...@@ -798,6 +802,8 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) {...@@ -798,6 +802,8 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) {
798 case ZigLLVM_aarch64_32:802 case ZigLLVM_aarch64_32:
799 case ZigLLVM_riscv32:803 case ZigLLVM_riscv32:
800 case ZigLLVM_riscv64:804 case ZigLLVM_riscv64:
805 case ZigLLVM_m68k:
806 case ZigLLVM_mips:
801 case ZigLLVM_mipsel:807 case ZigLLVM_mipsel:
802 case ZigLLVM_ppc:808 case ZigLLVM_ppc:
803 case ZigLLVM_ppcle:809 case ZigLLVM_ppcle:
...@@ -824,7 +830,6 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) {...@@ -824,7 +830,6 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) {
824 case ZigLLVM_kalimba:830 case ZigLLVM_kalimba:
825 case ZigLLVM_le32:831 case ZigLLVM_le32:
826 case ZigLLVM_le64:832 case ZigLLVM_le64:
827 case ZigLLVM_mips:
828 case ZigLLVM_mips64:833 case ZigLLVM_mips64:
829 case ZigLLVM_mips64el:834 case ZigLLVM_mips64el:
830 case ZigLLVM_msp430:835 case ZigLLVM_msp430:
...@@ -873,6 +878,7 @@ bool target_is_arm(const ZigTarget *target) {...@@ -873,6 +878,7 @@ bool target_is_arm(const ZigTarget *target) {
873 case ZigLLVM_bpfel:878 case ZigLLVM_bpfel:
874 case ZigLLVM_csky:879 case ZigLLVM_csky:
875 case ZigLLVM_hexagon:880 case ZigLLVM_hexagon:
881 case ZigLLVM_m68k:
876 case ZigLLVM_lanai:882 case ZigLLVM_lanai:
877 case ZigLLVM_hsail:883 case ZigLLVM_hsail:
878 case ZigLLVM_hsail64:884 case ZigLLVM_hsail64:
src/target.zig+5
...@@ -34,6 +34,8 @@ pub const available_libcs = [_]ArchOsAbi{...@@ -34,6 +34,8 @@ pub const available_libcs = [_]ArchOsAbi{
34 .{ .arch = .i386, .os = .linux, .abi = .gnu },34 .{ .arch = .i386, .os = .linux, .abi = .gnu },
35 .{ .arch = .i386, .os = .linux, .abi = .musl },35 .{ .arch = .i386, .os = .linux, .abi = .musl },
36 .{ .arch = .i386, .os = .windows, .abi = .gnu },36 .{ .arch = .i386, .os = .windows, .abi = .gnu },
37 .{ .arch = .m68k, .os = .linux, .abi = .gnu },
38 .{ .arch = .m68k, .os = .linux, .abi = .musl },
37 .{ .arch = .mips64el, .os = .linux, .abi = .gnuabi64 },39 .{ .arch = .mips64el, .os = .linux, .abi = .gnuabi64 },
38 .{ .arch = .mips64el, .os = .linux, .abi = .gnuabin32 },40 .{ .arch = .mips64el, .os = .linux, .abi = .gnuabin32 },
39 .{ .arch = .mips64el, .os = .linux, .abi = .musl },41 .{ .arch = .mips64el, .os = .linux, .abi = .musl },
...@@ -83,6 +85,7 @@ pub fn libCGenericName(target: std.Target) [:0]const u8 {...@@ -83,6 +85,7 @@ pub fn libCGenericName(target: std.Target) [:0]const u8 {
83 .musl,85 .musl,
84 .musleabi,86 .musleabi,
85 .musleabihf,87 .musleabihf,
88 .muslx32,
86 .none,89 .none,
87 => return "musl",90 => return "musl",
88 .code16,91 .code16,
...@@ -186,6 +189,7 @@ pub fn hasLlvmSupport(target: std.Target) bool {...@@ -186,6 +189,7 @@ pub fn hasLlvmSupport(target: std.Target) bool {
186 .bpfeb,189 .bpfeb,
187 .csky,190 .csky,
188 .hexagon,191 .hexagon,
192 .m68k,
189 .mips,193 .mips,
190 .mipsel,194 .mipsel,
191 .mips64,195 .mips64,
...@@ -295,6 +299,7 @@ pub fn archToLLVM(arch_tag: std.Target.Cpu.Arch) llvm.ArchType {...@@ -295,6 +299,7 @@ pub fn archToLLVM(arch_tag: std.Target.Cpu.Arch) llvm.ArchType {
295 .bpfeb => .bpfeb,299 .bpfeb => .bpfeb,
296 .csky => .csky,300 .csky => .csky,
297 .hexagon => .hexagon,301 .hexagon => .hexagon,
302 .m68k => .m68k,
298 .mips => .mips,303 .mips => .mips,
299 .mipsel => .mipsel,304 .mipsel => .mipsel,
300 .mips64 => .mips64,305 .mips64 => .mips64,
src/zig_clang.cpp+334-180
...@@ -164,6 +164,10 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {...@@ -164,6 +164,10 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {
164 case clang::CK_DerivedToBase:164 case clang::CK_DerivedToBase:
165 case clang::CK_DerivedToBaseMemberPointer:165 case clang::CK_DerivedToBaseMemberPointer:
166 case clang::CK_Dynamic:166 case clang::CK_Dynamic:
167 case clang::CK_FixedPointCast:
168 case clang::CK_FixedPointToBoolean:
169 case clang::CK_FixedPointToFloating:
170 case clang::CK_FixedPointToIntegral:
167 case clang::CK_FloatingCast:171 case clang::CK_FloatingCast:
168 case clang::CK_FloatingComplexCast:172 case clang::CK_FloatingComplexCast:
169 case clang::CK_FloatingComplexToBoolean:173 case clang::CK_FloatingComplexToBoolean:
...@@ -171,6 +175,7 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {...@@ -171,6 +175,7 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {
171 case clang::CK_FloatingComplexToReal:175 case clang::CK_FloatingComplexToReal:
172 case clang::CK_FloatingRealToComplex:176 case clang::CK_FloatingRealToComplex:
173 case clang::CK_FloatingToBoolean:177 case clang::CK_FloatingToBoolean:
178 case clang::CK_FloatingToFixedPoint:
174 case clang::CK_FloatingToIntegral:179 case clang::CK_FloatingToIntegral:
175 case clang::CK_FunctionToPointerDecay:180 case clang::CK_FunctionToPointerDecay:
176 case clang::CK_IntToOCLSampler:181 case clang::CK_IntToOCLSampler:
...@@ -181,13 +186,13 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {...@@ -181,13 +186,13 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {
181 case clang::CK_IntegralComplexToReal:186 case clang::CK_IntegralComplexToReal:
182 case clang::CK_IntegralRealToComplex:187 case clang::CK_IntegralRealToComplex:
183 case clang::CK_IntegralToBoolean:188 case clang::CK_IntegralToBoolean:
189 case clang::CK_IntegralToFixedPoint:
184 case clang::CK_IntegralToFloating:190 case clang::CK_IntegralToFloating:
185 case clang::CK_IntegralToPointer:191 case clang::CK_IntegralToPointer:
186 case clang::CK_FloatingToFixedPoint:
187 case clang::CK_FixedPointToFloating:
188 case clang::CK_LValueBitCast:192 case clang::CK_LValueBitCast:
189 case clang::CK_LValueToRValueBitCast:
190 case clang::CK_LValueToRValue:193 case clang::CK_LValueToRValue:
194 case clang::CK_LValueToRValueBitCast:
195 case clang::CK_MatrixCast:
191 case clang::CK_MemberPointerToBoolean:196 case clang::CK_MemberPointerToBoolean:
192 case clang::CK_NoOp:197 case clang::CK_NoOp:
193 case clang::CK_NonAtomicToAtomic:198 case clang::CK_NonAtomicToAtomic:
...@@ -203,10 +208,6 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {...@@ -203,10 +208,6 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {
203 case clang::CK_UserDefinedConversion:208 case clang::CK_UserDefinedConversion:
204 case clang::CK_VectorSplat:209 case clang::CK_VectorSplat:
205 case clang::CK_ZeroToOCLOpaqueType:210 case clang::CK_ZeroToOCLOpaqueType:
206 case clang::CK_FixedPointCast:
207 case clang::CK_FixedPointToIntegral:
208 case clang::CK_IntegralToFixedPoint:
209 case clang::CK_FixedPointToBoolean:
210 break;211 break;
211 }212 }
212};213};
...@@ -236,6 +237,7 @@ static_assert((clang::CastKind)ZigClangCK_IntegralToPointer == clang::CK_Integra...@@ -236,6 +237,7 @@ static_assert((clang::CastKind)ZigClangCK_IntegralToPointer == clang::CK_Integra
236static_assert((clang::CastKind)ZigClangCK_PointerToIntegral == clang::CK_PointerToIntegral, "");237static_assert((clang::CastKind)ZigClangCK_PointerToIntegral == clang::CK_PointerToIntegral, "");
237static_assert((clang::CastKind)ZigClangCK_PointerToBoolean == clang::CK_PointerToBoolean, "");238static_assert((clang::CastKind)ZigClangCK_PointerToBoolean == clang::CK_PointerToBoolean, "");
238static_assert((clang::CastKind)ZigClangCK_ToVoid == clang::CK_ToVoid, "");239static_assert((clang::CastKind)ZigClangCK_ToVoid == clang::CK_ToVoid, "");
240static_assert((clang::CastKind)ZigClangCK_MatrixCast == clang::CK_MatrixCast, "");
239static_assert((clang::CastKind)ZigClangCK_VectorSplat == clang::CK_VectorSplat, "");241static_assert((clang::CastKind)ZigClangCK_VectorSplat == clang::CK_VectorSplat, "");
240static_assert((clang::CastKind)ZigClangCK_IntegralCast == clang::CK_IntegralCast, "");242static_assert((clang::CastKind)ZigClangCK_IntegralCast == clang::CK_IntegralCast, "");
241static_assert((clang::CastKind)ZigClangCK_IntegralToBoolean == clang::CK_IntegralToBoolean, "");243static_assert((clang::CastKind)ZigClangCK_IntegralToBoolean == clang::CK_IntegralToBoolean, "");
...@@ -411,13 +413,16 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -411,13 +413,16 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
411 case ZigClangStmt_IndirectGotoStmtClass:413 case ZigClangStmt_IndirectGotoStmtClass:
412 case ZigClangStmt_MSDependentExistsStmtClass:414 case ZigClangStmt_MSDependentExistsStmtClass:
413 case ZigClangStmt_NullStmtClass:415 case ZigClangStmt_NullStmtClass:
416 case ZigClangStmt_OMPCanonicalLoopClass:
414 case ZigClangStmt_OMPAtomicDirectiveClass:417 case ZigClangStmt_OMPAtomicDirectiveClass:
415 case ZigClangStmt_OMPBarrierDirectiveClass:418 case ZigClangStmt_OMPBarrierDirectiveClass:
416 case ZigClangStmt_OMPCancelDirectiveClass:419 case ZigClangStmt_OMPCancelDirectiveClass:
417 case ZigClangStmt_OMPCancellationPointDirectiveClass:420 case ZigClangStmt_OMPCancellationPointDirectiveClass:
418 case ZigClangStmt_OMPCriticalDirectiveClass:421 case ZigClangStmt_OMPCriticalDirectiveClass:
419 case ZigClangStmt_OMPDepobjDirectiveClass:422 case ZigClangStmt_OMPDepobjDirectiveClass:
423 case ZigClangStmt_OMPDispatchDirectiveClass:
420 case ZigClangStmt_OMPFlushDirectiveClass:424 case ZigClangStmt_OMPFlushDirectiveClass:
425 case ZigClangStmt_OMPInteropDirectiveClass:
421 case ZigClangStmt_OMPDistributeDirectiveClass:426 case ZigClangStmt_OMPDistributeDirectiveClass:
422 case ZigClangStmt_OMPDistributeParallelForDirectiveClass:427 case ZigClangStmt_OMPDistributeParallelForDirectiveClass:
423 case ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass:428 case ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass:
...@@ -443,6 +448,9 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -443,6 +448,9 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
443 case ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass:448 case ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass:
444 case ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass:449 case ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass:
445 case ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass:450 case ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass:
451 case ZigClangStmt_OMPTileDirectiveClass:
452 case ZigClangStmt_OMPUnrollDirectiveClass:
453 case ZigClangStmt_OMPMaskedDirectiveClass:
446 case ZigClangStmt_OMPMasterDirectiveClass:454 case ZigClangStmt_OMPMasterDirectiveClass:
447 case ZigClangStmt_OMPOrderedDirectiveClass:455 case ZigClangStmt_OMPOrderedDirectiveClass:
448 case ZigClangStmt_OMPParallelDirectiveClass:456 case ZigClangStmt_OMPParallelDirectiveClass:
...@@ -591,6 +599,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -591,6 +599,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
591 case ZigClangStmt_PseudoObjectExprClass:599 case ZigClangStmt_PseudoObjectExprClass:
592 case ZigClangStmt_RecoveryExprClass:600 case ZigClangStmt_RecoveryExprClass:
593 case ZigClangStmt_RequiresExprClass:601 case ZigClangStmt_RequiresExprClass:
602 case ZigClangStmt_SYCLUniqueStableNameExprClass:
594 case ZigClangStmt_ShuffleVectorExprClass:603 case ZigClangStmt_ShuffleVectorExprClass:
595 case ZigClangStmt_SizeOfPackExprClass:604 case ZigClangStmt_SizeOfPackExprClass:
596 case ZigClangStmt_SourceLocExprClass:605 case ZigClangStmt_SourceLocExprClass:
...@@ -629,13 +638,16 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_IfStmtClass == clang::Stmt::I...@@ -629,13 +638,16 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_IfStmtClass == clang::Stmt::I
629static_assert((clang::Stmt::StmtClass)ZigClangStmt_IndirectGotoStmtClass == clang::Stmt::IndirectGotoStmtClass, "");638static_assert((clang::Stmt::StmtClass)ZigClangStmt_IndirectGotoStmtClass == clang::Stmt::IndirectGotoStmtClass, "");
630static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSDependentExistsStmtClass == clang::Stmt::MSDependentExistsStmtClass, "");639static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSDependentExistsStmtClass == clang::Stmt::MSDependentExistsStmtClass, "");
631static_assert((clang::Stmt::StmtClass)ZigClangStmt_NullStmtClass == clang::Stmt::NullStmtClass, "");640static_assert((clang::Stmt::StmtClass)ZigClangStmt_NullStmtClass == clang::Stmt::NullStmtClass, "");
641static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCanonicalLoopClass == clang::Stmt::OMPCanonicalLoopClass, "");
632static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPAtomicDirectiveClass == clang::Stmt::OMPAtomicDirectiveClass, "");642static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPAtomicDirectiveClass == clang::Stmt::OMPAtomicDirectiveClass, "");
633static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPBarrierDirectiveClass == clang::Stmt::OMPBarrierDirectiveClass, "");643static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPBarrierDirectiveClass == clang::Stmt::OMPBarrierDirectiveClass, "");
634static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancelDirectiveClass == clang::Stmt::OMPCancelDirectiveClass, "");644static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancelDirectiveClass == clang::Stmt::OMPCancelDirectiveClass, "");
635static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancellationPointDirectiveClass == clang::Stmt::OMPCancellationPointDirectiveClass, "");645static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancellationPointDirectiveClass == clang::Stmt::OMPCancellationPointDirectiveClass, "");
636static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCriticalDirectiveClass == clang::Stmt::OMPCriticalDirectiveClass, "");646static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCriticalDirectiveClass == clang::Stmt::OMPCriticalDirectiveClass, "");
637static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDepobjDirectiveClass == clang::Stmt::OMPDepobjDirectiveClass, "");647static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDepobjDirectiveClass == clang::Stmt::OMPDepobjDirectiveClass, "");
648static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDispatchDirectiveClass == clang::Stmt::OMPDispatchDirectiveClass, "");
638static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPFlushDirectiveClass == clang::Stmt::OMPFlushDirectiveClass, "");649static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPFlushDirectiveClass == clang::Stmt::OMPFlushDirectiveClass, "");
650static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPInteropDirectiveClass == clang::Stmt::OMPInteropDirectiveClass, "");
639static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeDirectiveClass == clang::Stmt::OMPDistributeDirectiveClass, "");651static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeDirectiveClass == clang::Stmt::OMPDistributeDirectiveClass, "");
640static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeParallelForDirectiveClass == clang::Stmt::OMPDistributeParallelForDirectiveClass, "");652static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeParallelForDirectiveClass == clang::Stmt::OMPDistributeParallelForDirectiveClass, "");
641static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPDistributeParallelForSimdDirectiveClass, "");653static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPDistributeParallelForSimdDirectiveClass, "");
...@@ -661,6 +673,9 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeDirectiveCl...@@ -661,6 +673,9 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeDirectiveCl
661static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForDirectiveClass, "");673static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForDirectiveClass, "");
662static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass, "");674static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass, "");
663static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeSimdDirectiveClass, "");675static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeSimdDirectiveClass, "");
676static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTileDirectiveClass == clang::Stmt::OMPTileDirectiveClass, "");
677static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPUnrollDirectiveClass == clang::Stmt::OMPUnrollDirectiveClass, "");
678static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedDirectiveClass == clang::Stmt::OMPMaskedDirectiveClass, "");
664static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == clang::Stmt::OMPMasterDirectiveClass, "");679static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == clang::Stmt::OMPMasterDirectiveClass, "");
665static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPOrderedDirectiveClass == clang::Stmt::OMPOrderedDirectiveClass, "");680static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPOrderedDirectiveClass == clang::Stmt::OMPOrderedDirectiveClass, "");
666static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelDirectiveClass == clang::Stmt::OMPParallelDirectiveClass, "");681static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelDirectiveClass == clang::Stmt::OMPParallelDirectiveClass, "");
...@@ -809,6 +824,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_PredefinedExprClass == clang:...@@ -809,6 +824,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_PredefinedExprClass == clang:
809static_assert((clang::Stmt::StmtClass)ZigClangStmt_PseudoObjectExprClass == clang::Stmt::PseudoObjectExprClass, "");824static_assert((clang::Stmt::StmtClass)ZigClangStmt_PseudoObjectExprClass == clang::Stmt::PseudoObjectExprClass, "");
810static_assert((clang::Stmt::StmtClass)ZigClangStmt_RecoveryExprClass == clang::Stmt::RecoveryExprClass, "");825static_assert((clang::Stmt::StmtClass)ZigClangStmt_RecoveryExprClass == clang::Stmt::RecoveryExprClass, "");
811static_assert((clang::Stmt::StmtClass)ZigClangStmt_RequiresExprClass == clang::Stmt::RequiresExprClass, "");826static_assert((clang::Stmt::StmtClass)ZigClangStmt_RequiresExprClass == clang::Stmt::RequiresExprClass, "");
827static_assert((clang::Stmt::StmtClass)ZigClangStmt_SYCLUniqueStableNameExprClass == clang::Stmt::SYCLUniqueStableNameExprClass, "");
812static_assert((clang::Stmt::StmtClass)ZigClangStmt_ShuffleVectorExprClass == clang::Stmt::ShuffleVectorExprClass, "");828static_assert((clang::Stmt::StmtClass)ZigClangStmt_ShuffleVectorExprClass == clang::Stmt::ShuffleVectorExprClass, "");
813static_assert((clang::Stmt::StmtClass)ZigClangStmt_SizeOfPackExprClass == clang::Stmt::SizeOfPackExprClass, "");829static_assert((clang::Stmt::StmtClass)ZigClangStmt_SizeOfPackExprClass == clang::Stmt::SizeOfPackExprClass, "");
814static_assert((clang::Stmt::StmtClass)ZigClangStmt_SourceLocExprClass == clang::Stmt::SourceLocExprClass, "");830static_assert((clang::Stmt::StmtClass)ZigClangStmt_SourceLocExprClass == clang::Stmt::SourceLocExprClass, "");
...@@ -876,6 +892,8 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {...@@ -876,6 +892,8 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
876 case clang::Decl::Import:892 case clang::Decl::Import:
877 case clang::Decl::LifetimeExtendedTemporary:893 case clang::Decl::LifetimeExtendedTemporary:
878 case clang::Decl::LinkageSpec:894 case clang::Decl::LinkageSpec:
895 case clang::Decl::Using:
896 case clang::Decl::UsingEnum:
879 case clang::Decl::Label:897 case clang::Decl::Label:
880 case clang::Decl::Namespace:898 case clang::Decl::Namespace:
881 case clang::Decl::NamespaceAlias:899 case clang::Decl::NamespaceAlias:
...@@ -904,7 +922,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {...@@ -904,7 +922,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
904 case clang::Decl::TypeAlias:922 case clang::Decl::TypeAlias:
905 case clang::Decl::Typedef:923 case clang::Decl::Typedef:
906 case clang::Decl::UnresolvedUsingTypename:924 case clang::Decl::UnresolvedUsingTypename:
907 case clang::Decl::Using:925 case clang::Decl::UnresolvedUsingIfExists:
908 case clang::Decl::UsingDirective:926 case clang::Decl::UsingDirective:
909 case clang::Decl::UsingPack:927 case clang::Decl::UsingPack:
910 case clang::Decl::UsingShadow:928 case clang::Decl::UsingShadow:
...@@ -961,6 +979,8 @@ static_assert((clang::Decl::Kind)ZigClangDeclFriendTemplate == clang::Decl::Frie...@@ -961,6 +979,8 @@ static_assert((clang::Decl::Kind)ZigClangDeclFriendTemplate == clang::Decl::Frie
961static_assert((clang::Decl::Kind)ZigClangDeclImport == clang::Decl::Import, "");979static_assert((clang::Decl::Kind)ZigClangDeclImport == clang::Decl::Import, "");
962static_assert((clang::Decl::Kind)ZigClangDeclLifetimeExtendedTemporary == clang::Decl::LifetimeExtendedTemporary, "");980static_assert((clang::Decl::Kind)ZigClangDeclLifetimeExtendedTemporary == clang::Decl::LifetimeExtendedTemporary, "");
963static_assert((clang::Decl::Kind)ZigClangDeclLinkageSpec == clang::Decl::LinkageSpec, "");981static_assert((clang::Decl::Kind)ZigClangDeclLinkageSpec == clang::Decl::LinkageSpec, "");
982static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");
983static_assert((clang::Decl::Kind)ZigClangDeclUsingEnum == clang::Decl::UsingEnum, "");
964static_assert((clang::Decl::Kind)ZigClangDeclLabel == clang::Decl::Label, "");984static_assert((clang::Decl::Kind)ZigClangDeclLabel == clang::Decl::Label, "");
965static_assert((clang::Decl::Kind)ZigClangDeclNamespace == clang::Decl::Namespace, "");985static_assert((clang::Decl::Kind)ZigClangDeclNamespace == clang::Decl::Namespace, "");
966static_assert((clang::Decl::Kind)ZigClangDeclNamespaceAlias == clang::Decl::NamespaceAlias, "");986static_assert((clang::Decl::Kind)ZigClangDeclNamespaceAlias == clang::Decl::NamespaceAlias, "");
...@@ -989,8 +1009,8 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCTypeParam == clang::Decl::ObjCT...@@ -989,8 +1009,8 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCTypeParam == clang::Decl::ObjCT
989static_assert((clang::Decl::Kind)ZigClangDeclTypeAlias == clang::Decl::TypeAlias, "");1009static_assert((clang::Decl::Kind)ZigClangDeclTypeAlias == clang::Decl::TypeAlias, "");
990static_assert((clang::Decl::Kind)ZigClangDeclTypedef == clang::Decl::Typedef, "");1010static_assert((clang::Decl::Kind)ZigClangDeclTypedef == clang::Decl::Typedef, "");
991static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingTypename == clang::Decl::UnresolvedUsingTypename, "");1011static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingTypename == clang::Decl::UnresolvedUsingTypename, "");
1012static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingIfExists == clang::Decl::UnresolvedUsingIfExists, "");
992static_assert((clang::Decl::Kind)ZigClangDeclOMPAllocate == clang::Decl::OMPAllocate, "");1013static_assert((clang::Decl::Kind)ZigClangDeclOMPAllocate == clang::Decl::OMPAllocate, "");
993static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");
994static_assert((clang::Decl::Kind)ZigClangDeclUsingDirective == clang::Decl::UsingDirective, "");1014static_assert((clang::Decl::Kind)ZigClangDeclUsingDirective == clang::Decl::UsingDirective, "");
995static_assert((clang::Decl::Kind)ZigClangDeclUsingPack == clang::Decl::UsingPack, "");1015static_assert((clang::Decl::Kind)ZigClangDeclUsingPack == clang::Decl::UsingPack, "");
996static_assert((clang::Decl::Kind)ZigClangDeclUsingShadow == clang::Decl::UsingShadow, "");1016static_assert((clang::Decl::Kind)ZigClangDeclUsingShadow == clang::Decl::UsingShadow, "");
...@@ -1032,177 +1052,243 @@ static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::Tra...@@ -1032,177 +1052,243 @@ static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::Tra
10321052
1033void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {1053void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
1034 switch (x) {1054 switch (x) {
1035 case clang::BuiltinType::OCLImage1dRO:1055 case ZigClangBuiltinTypeOCLImage1dRO:
1036 case clang::BuiltinType::OCLImage1dArrayRO:1056 case ZigClangBuiltinTypeOCLImage1dArrayRO:
1037 case clang::BuiltinType::OCLImage1dBufferRO:1057 case ZigClangBuiltinTypeOCLImage1dBufferRO:
1038 case clang::BuiltinType::OCLImage2dRO:1058 case ZigClangBuiltinTypeOCLImage2dRO:
1039 case clang::BuiltinType::OCLImage2dArrayRO:1059 case ZigClangBuiltinTypeOCLImage2dArrayRO:
1040 case clang::BuiltinType::OCLImage2dDepthRO:1060 case ZigClangBuiltinTypeOCLImage2dDepthRO:
1041 case clang::BuiltinType::OCLImage2dArrayDepthRO:1061 case ZigClangBuiltinTypeOCLImage2dArrayDepthRO:
1042 case clang::BuiltinType::OCLImage2dMSAARO:1062 case ZigClangBuiltinTypeOCLImage2dMSAARO:
1043 case clang::BuiltinType::OCLImage2dArrayMSAARO:1063 case ZigClangBuiltinTypeOCLImage2dArrayMSAARO:
1044 case clang::BuiltinType::OCLImage2dMSAADepthRO:1064 case ZigClangBuiltinTypeOCLImage2dMSAADepthRO:
1045 case clang::BuiltinType::OCLImage2dArrayMSAADepthRO:1065 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO:
1046 case clang::BuiltinType::OCLImage3dRO:1066 case ZigClangBuiltinTypeOCLImage3dRO:
1047 case clang::BuiltinType::OCLImage1dWO:1067 case ZigClangBuiltinTypeOCLImage1dWO:
1048 case clang::BuiltinType::OCLImage1dArrayWO:1068 case ZigClangBuiltinTypeOCLImage1dArrayWO:
1049 case clang::BuiltinType::OCLImage1dBufferWO:1069 case ZigClangBuiltinTypeOCLImage1dBufferWO:
1050 case clang::BuiltinType::OCLImage2dWO:1070 case ZigClangBuiltinTypeOCLImage2dWO:
1051 case clang::BuiltinType::OCLImage2dArrayWO:1071 case ZigClangBuiltinTypeOCLImage2dArrayWO:
1052 case clang::BuiltinType::OCLImage2dDepthWO:1072 case ZigClangBuiltinTypeOCLImage2dDepthWO:
1053 case clang::BuiltinType::OCLImage2dArrayDepthWO:1073 case ZigClangBuiltinTypeOCLImage2dArrayDepthWO:
1054 case clang::BuiltinType::OCLImage2dMSAAWO:1074 case ZigClangBuiltinTypeOCLImage2dMSAAWO:
1055 case clang::BuiltinType::OCLImage2dArrayMSAAWO:1075 case ZigClangBuiltinTypeOCLImage2dArrayMSAAWO:
1056 case clang::BuiltinType::OCLImage2dMSAADepthWO:1076 case ZigClangBuiltinTypeOCLImage2dMSAADepthWO:
1057 case clang::BuiltinType::OCLImage2dArrayMSAADepthWO:1077 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO:
1058 case clang::BuiltinType::OCLImage3dWO:1078 case ZigClangBuiltinTypeOCLImage3dWO:
1059 case clang::BuiltinType::OCLImage1dRW:1079 case ZigClangBuiltinTypeOCLImage1dRW:
1060 case clang::BuiltinType::OCLImage1dArrayRW:1080 case ZigClangBuiltinTypeOCLImage1dArrayRW:
1061 case clang::BuiltinType::OCLImage1dBufferRW:1081 case ZigClangBuiltinTypeOCLImage1dBufferRW:
1062 case clang::BuiltinType::OCLImage2dRW:1082 case ZigClangBuiltinTypeOCLImage2dRW:
1063 case clang::BuiltinType::OCLImage2dArrayRW:1083 case ZigClangBuiltinTypeOCLImage2dArrayRW:
1064 case clang::BuiltinType::OCLImage2dDepthRW:1084 case ZigClangBuiltinTypeOCLImage2dDepthRW:
1065 case clang::BuiltinType::OCLImage2dArrayDepthRW:1085 case ZigClangBuiltinTypeOCLImage2dArrayDepthRW:
1066 case clang::BuiltinType::OCLImage2dMSAARW:1086 case ZigClangBuiltinTypeOCLImage2dMSAARW:
1067 case clang::BuiltinType::OCLImage2dArrayMSAARW:1087 case ZigClangBuiltinTypeOCLImage2dArrayMSAARW:
1068 case clang::BuiltinType::OCLImage2dMSAADepthRW:1088 case ZigClangBuiltinTypeOCLImage2dMSAADepthRW:
1069 case clang::BuiltinType::OCLImage2dArrayMSAADepthRW:1089 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW:
1070 case clang::BuiltinType::OCLImage3dRW:1090 case ZigClangBuiltinTypeOCLImage3dRW:
1071 case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:1091 case ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload:
1072 case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:1092 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload:
1073 case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:1093 case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload:
1074 case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:1094 case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload:
1075 case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:1095 case ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult:
1076 case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:1096 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult:
1077 case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:1097 case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult:
1078 case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:1098 case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult:
1079 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:1099 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout:
1080 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:1100 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:
1081 case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:1101 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:
1082 case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:1102 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:
1083 case clang::BuiltinType::SveInt8:1103 case ZigClangBuiltinTypeSveInt8:
1084 case clang::BuiltinType::SveInt16:1104 case ZigClangBuiltinTypeSveInt16:
1085 case clang::BuiltinType::SveInt32:1105 case ZigClangBuiltinTypeSveInt32:
1086 case clang::BuiltinType::SveInt64:1106 case ZigClangBuiltinTypeSveInt64:
1087 case clang::BuiltinType::SveUint8:1107 case ZigClangBuiltinTypeSveUint8:
1088 case clang::BuiltinType::SveUint16:1108 case ZigClangBuiltinTypeSveUint16:
1089 case clang::BuiltinType::SveUint32:1109 case ZigClangBuiltinTypeSveUint32:
1090 case clang::BuiltinType::SveUint64:1110 case ZigClangBuiltinTypeSveUint64:
1091 case clang::BuiltinType::SveFloat16:1111 case ZigClangBuiltinTypeSveFloat16:
1092 case clang::BuiltinType::SveFloat32:1112 case ZigClangBuiltinTypeSveFloat32:
1093 case clang::BuiltinType::SveFloat64:1113 case ZigClangBuiltinTypeSveFloat64:
1094 case clang::BuiltinType::SveBFloat16:1114 case ZigClangBuiltinTypeSveBFloat16:
1095 case clang::BuiltinType::SveInt8x2:1115 case ZigClangBuiltinTypeSveInt8x2:
1096 case clang::BuiltinType::SveInt16x2:1116 case ZigClangBuiltinTypeSveInt16x2:
1097 case clang::BuiltinType::SveInt32x2:1117 case ZigClangBuiltinTypeSveInt32x2:
1098 case clang::BuiltinType::SveInt64x2:1118 case ZigClangBuiltinTypeSveInt64x2:
1099 case clang::BuiltinType::SveUint8x2:1119 case ZigClangBuiltinTypeSveUint8x2:
1100 case clang::BuiltinType::SveUint16x2:1120 case ZigClangBuiltinTypeSveUint16x2:
1101 case clang::BuiltinType::SveUint32x2:1121 case ZigClangBuiltinTypeSveUint32x2:
1102 case clang::BuiltinType::SveUint64x2:1122 case ZigClangBuiltinTypeSveUint64x2:
1103 case clang::BuiltinType::SveFloat16x2:1123 case ZigClangBuiltinTypeSveFloat16x2:
1104 case clang::BuiltinType::SveFloat32x2:1124 case ZigClangBuiltinTypeSveFloat32x2:
1105 case clang::BuiltinType::SveFloat64x2:1125 case ZigClangBuiltinTypeSveFloat64x2:
1106 case clang::BuiltinType::SveBFloat16x2:1126 case ZigClangBuiltinTypeSveBFloat16x2:
1107 case clang::BuiltinType::SveInt8x3:1127 case ZigClangBuiltinTypeSveInt8x3:
1108 case clang::BuiltinType::SveInt16x3:1128 case ZigClangBuiltinTypeSveInt16x3:
1109 case clang::BuiltinType::SveInt32x3:1129 case ZigClangBuiltinTypeSveInt32x3:
1110 case clang::BuiltinType::SveInt64x3:1130 case ZigClangBuiltinTypeSveInt64x3:
1111 case clang::BuiltinType::SveUint8x3:1131 case ZigClangBuiltinTypeSveUint8x3:
1112 case clang::BuiltinType::SveUint16x3:1132 case ZigClangBuiltinTypeSveUint16x3:
1113 case clang::BuiltinType::SveUint32x3:1133 case ZigClangBuiltinTypeSveUint32x3:
1114 case clang::BuiltinType::SveUint64x3:1134 case ZigClangBuiltinTypeSveUint64x3:
1115 case clang::BuiltinType::SveFloat16x3:1135 case ZigClangBuiltinTypeSveFloat16x3:
1116 case clang::BuiltinType::SveFloat32x3:1136 case ZigClangBuiltinTypeSveFloat32x3:
1117 case clang::BuiltinType::SveFloat64x3:1137 case ZigClangBuiltinTypeSveFloat64x3:
1118 case clang::BuiltinType::SveBFloat16x3:1138 case ZigClangBuiltinTypeSveBFloat16x3:
1119 case clang::BuiltinType::SveInt8x4:1139 case ZigClangBuiltinTypeSveInt8x4:
1120 case clang::BuiltinType::SveInt16x4:1140 case ZigClangBuiltinTypeSveInt16x4:
1121 case clang::BuiltinType::SveInt32x4:1141 case ZigClangBuiltinTypeSveInt32x4:
1122 case clang::BuiltinType::SveInt64x4:1142 case ZigClangBuiltinTypeSveInt64x4:
1123 case clang::BuiltinType::SveUint8x4:1143 case ZigClangBuiltinTypeSveUint8x4:
1124 case clang::BuiltinType::SveUint16x4:1144 case ZigClangBuiltinTypeSveUint16x4:
1125 case clang::BuiltinType::SveUint32x4:1145 case ZigClangBuiltinTypeSveUint32x4:
1126 case clang::BuiltinType::SveUint64x4:1146 case ZigClangBuiltinTypeSveUint64x4:
1127 case clang::BuiltinType::SveFloat16x4:1147 case ZigClangBuiltinTypeSveFloat16x4:
1128 case clang::BuiltinType::SveFloat32x4:1148 case ZigClangBuiltinTypeSveFloat32x4:
1129 case clang::BuiltinType::SveFloat64x4:1149 case ZigClangBuiltinTypeSveFloat64x4:
1130 case clang::BuiltinType::SveBFloat16x4:1150 case ZigClangBuiltinTypeSveBFloat16x4:
1131 case clang::BuiltinType::SveBool:1151 case ZigClangBuiltinTypeSveBool:
1132 case clang::BuiltinType::VectorQuad:1152 case ZigClangBuiltinTypeVectorQuad:
1133 case clang::BuiltinType::VectorPair:1153 case ZigClangBuiltinTypeVectorPair:
1134 case clang::BuiltinType::Void:1154 case ZigClangBuiltinTypeRvvInt8mf8:
1135 case clang::BuiltinType::Bool:1155 case ZigClangBuiltinTypeRvvInt8mf4:
1136 case clang::BuiltinType::Char_U:1156 case ZigClangBuiltinTypeRvvInt8mf2:
1137 case clang::BuiltinType::UChar:1157 case ZigClangBuiltinTypeRvvInt8m1:
1138 case clang::BuiltinType::WChar_U:1158 case ZigClangBuiltinTypeRvvInt8m2:
1139 case clang::BuiltinType::Char8:1159 case ZigClangBuiltinTypeRvvInt8m4:
1140 case clang::BuiltinType::Char16:1160 case ZigClangBuiltinTypeRvvInt8m8:
1141 case clang::BuiltinType::Char32:1161 case ZigClangBuiltinTypeRvvUint8mf8:
1142 case clang::BuiltinType::UShort:1162 case ZigClangBuiltinTypeRvvUint8mf4:
1143 case clang::BuiltinType::UInt:1163 case ZigClangBuiltinTypeRvvUint8mf2:
1144 case clang::BuiltinType::ULong:1164 case ZigClangBuiltinTypeRvvUint8m1:
1145 case clang::BuiltinType::ULongLong:1165 case ZigClangBuiltinTypeRvvUint8m2:
1146 case clang::BuiltinType::UInt128:1166 case ZigClangBuiltinTypeRvvUint8m4:
1147 case clang::BuiltinType::Char_S:1167 case ZigClangBuiltinTypeRvvUint8m8:
1148 case clang::BuiltinType::SChar:1168 case ZigClangBuiltinTypeRvvInt16mf4:
1149 case clang::BuiltinType::WChar_S:1169 case ZigClangBuiltinTypeRvvInt16mf2:
1150 case clang::BuiltinType::Short:1170 case ZigClangBuiltinTypeRvvInt16m1:
1151 case clang::BuiltinType::Int:1171 case ZigClangBuiltinTypeRvvInt16m2:
1152 case clang::BuiltinType::Long:1172 case ZigClangBuiltinTypeRvvInt16m4:
1153 case clang::BuiltinType::LongLong:1173 case ZigClangBuiltinTypeRvvInt16m8:
1154 case clang::BuiltinType::Int128:1174 case ZigClangBuiltinTypeRvvUint16mf4:
1155 case clang::BuiltinType::ShortAccum:1175 case ZigClangBuiltinTypeRvvUint16mf2:
1156 case clang::BuiltinType::Accum:1176 case ZigClangBuiltinTypeRvvUint16m1:
1157 case clang::BuiltinType::LongAccum:1177 case ZigClangBuiltinTypeRvvUint16m2:
1158 case clang::BuiltinType::UShortAccum:1178 case ZigClangBuiltinTypeRvvUint16m4:
1159 case clang::BuiltinType::UAccum:1179 case ZigClangBuiltinTypeRvvUint16m8:
1160 case clang::BuiltinType::ULongAccum:1180 case ZigClangBuiltinTypeRvvInt32mf2:
1161 case clang::BuiltinType::ShortFract:1181 case ZigClangBuiltinTypeRvvInt32m1:
1162 case clang::BuiltinType::Fract:1182 case ZigClangBuiltinTypeRvvInt32m2:
1163 case clang::BuiltinType::LongFract:1183 case ZigClangBuiltinTypeRvvInt32m4:
1164 case clang::BuiltinType::UShortFract:1184 case ZigClangBuiltinTypeRvvInt32m8:
1165 case clang::BuiltinType::UFract:1185 case ZigClangBuiltinTypeRvvUint32mf2:
1166 case clang::BuiltinType::ULongFract:1186 case ZigClangBuiltinTypeRvvUint32m1:
1167 case clang::BuiltinType::SatShortAccum:1187 case ZigClangBuiltinTypeRvvUint32m2:
1168 case clang::BuiltinType::SatAccum:1188 case ZigClangBuiltinTypeRvvUint32m4:
1169 case clang::BuiltinType::SatLongAccum:1189 case ZigClangBuiltinTypeRvvUint32m8:
1170 case clang::BuiltinType::SatUShortAccum:1190 case ZigClangBuiltinTypeRvvInt64m1:
1171 case clang::BuiltinType::SatUAccum:1191 case ZigClangBuiltinTypeRvvInt64m2:
1172 case clang::BuiltinType::SatULongAccum:1192 case ZigClangBuiltinTypeRvvInt64m4:
1173 case clang::BuiltinType::SatShortFract:1193 case ZigClangBuiltinTypeRvvInt64m8:
1174 case clang::BuiltinType::SatFract:1194 case ZigClangBuiltinTypeRvvUint64m1:
1175 case clang::BuiltinType::SatLongFract:1195 case ZigClangBuiltinTypeRvvUint64m2:
1176 case clang::BuiltinType::SatUShortFract:1196 case ZigClangBuiltinTypeRvvUint64m4:
1177 case clang::BuiltinType::SatUFract:1197 case ZigClangBuiltinTypeRvvUint64m8:
1178 case clang::BuiltinType::SatULongFract:1198 case ZigClangBuiltinTypeRvvFloat16mf4:
1179 case clang::BuiltinType::Half:1199 case ZigClangBuiltinTypeRvvFloat16mf2:
1180 case clang::BuiltinType::Float:1200 case ZigClangBuiltinTypeRvvFloat16m1:
1181 case clang::BuiltinType::Double:1201 case ZigClangBuiltinTypeRvvFloat16m2:
1182 case clang::BuiltinType::LongDouble:1202 case ZigClangBuiltinTypeRvvFloat16m4:
1183 case clang::BuiltinType::Float16:1203 case ZigClangBuiltinTypeRvvFloat16m8:
1184 case clang::BuiltinType::BFloat16:1204 case ZigClangBuiltinTypeRvvFloat32mf2:
1185 case clang::BuiltinType::Float128:1205 case ZigClangBuiltinTypeRvvFloat32m1:
1186 case clang::BuiltinType::NullPtr:1206 case ZigClangBuiltinTypeRvvFloat32m2:
1187 case clang::BuiltinType::ObjCId:1207 case ZigClangBuiltinTypeRvvFloat32m4:
1188 case clang::BuiltinType::ObjCClass:1208 case ZigClangBuiltinTypeRvvFloat32m8:
1189 case clang::BuiltinType::ObjCSel:1209 case ZigClangBuiltinTypeRvvFloat64m1:
1190 case clang::BuiltinType::OCLSampler:1210 case ZigClangBuiltinTypeRvvFloat64m2:
1191 case clang::BuiltinType::OCLEvent:1211 case ZigClangBuiltinTypeRvvFloat64m4:
1192 case clang::BuiltinType::OCLClkEvent:1212 case ZigClangBuiltinTypeRvvFloat64m8:
1193 case clang::BuiltinType::OCLQueue:1213 case ZigClangBuiltinTypeRvvBool1:
1194 case clang::BuiltinType::OCLReserveID:1214 case ZigClangBuiltinTypeRvvBool2:
1195 case clang::BuiltinType::Dependent:1215 case ZigClangBuiltinTypeRvvBool4:
1196 case clang::BuiltinType::Overload:1216 case ZigClangBuiltinTypeRvvBool8:
1197 case clang::BuiltinType::BoundMember:1217 case ZigClangBuiltinTypeRvvBool16:
1198 case clang::BuiltinType::PseudoObject:1218 case ZigClangBuiltinTypeRvvBool32:
1199 case clang::BuiltinType::UnknownAny:1219 case ZigClangBuiltinTypeRvvBool64:
1200 case clang::BuiltinType::BuiltinFn:1220 case ZigClangBuiltinTypeVoid:
1201 case clang::BuiltinType::ARCUnbridgedCast:1221 case ZigClangBuiltinTypeBool:
1202 case clang::BuiltinType::IncompleteMatrixIdx:1222 case ZigClangBuiltinTypeChar_U:
1203 case clang::BuiltinType::OMPArraySection:1223 case ZigClangBuiltinTypeUChar:
1204 case clang::BuiltinType::OMPArrayShaping:1224 case ZigClangBuiltinTypeWChar_U:
1205 case clang::BuiltinType::OMPIterator:1225 case ZigClangBuiltinTypeChar8:
1226 case ZigClangBuiltinTypeChar16:
1227 case ZigClangBuiltinTypeChar32:
1228 case ZigClangBuiltinTypeUShort:
1229 case ZigClangBuiltinTypeUInt:
1230 case ZigClangBuiltinTypeULong:
1231 case ZigClangBuiltinTypeULongLong:
1232 case ZigClangBuiltinTypeUInt128:
1233 case ZigClangBuiltinTypeChar_S:
1234 case ZigClangBuiltinTypeSChar:
1235 case ZigClangBuiltinTypeWChar_S:
1236 case ZigClangBuiltinTypeShort:
1237 case ZigClangBuiltinTypeInt:
1238 case ZigClangBuiltinTypeLong:
1239 case ZigClangBuiltinTypeLongLong:
1240 case ZigClangBuiltinTypeInt128:
1241 case ZigClangBuiltinTypeShortAccum:
1242 case ZigClangBuiltinTypeAccum:
1243 case ZigClangBuiltinTypeLongAccum:
1244 case ZigClangBuiltinTypeUShortAccum:
1245 case ZigClangBuiltinTypeUAccum:
1246 case ZigClangBuiltinTypeULongAccum:
1247 case ZigClangBuiltinTypeShortFract:
1248 case ZigClangBuiltinTypeFract:
1249 case ZigClangBuiltinTypeLongFract:
1250 case ZigClangBuiltinTypeUShortFract:
1251 case ZigClangBuiltinTypeUFract:
1252 case ZigClangBuiltinTypeULongFract:
1253 case ZigClangBuiltinTypeSatShortAccum:
1254 case ZigClangBuiltinTypeSatAccum:
1255 case ZigClangBuiltinTypeSatLongAccum:
1256 case ZigClangBuiltinTypeSatUShortAccum:
1257 case ZigClangBuiltinTypeSatUAccum:
1258 case ZigClangBuiltinTypeSatULongAccum:
1259 case ZigClangBuiltinTypeSatShortFract:
1260 case ZigClangBuiltinTypeSatFract:
1261 case ZigClangBuiltinTypeSatLongFract:
1262 case ZigClangBuiltinTypeSatUShortFract:
1263 case ZigClangBuiltinTypeSatUFract:
1264 case ZigClangBuiltinTypeSatULongFract:
1265 case ZigClangBuiltinTypeHalf:
1266 case ZigClangBuiltinTypeFloat:
1267 case ZigClangBuiltinTypeDouble:
1268 case ZigClangBuiltinTypeLongDouble:
1269 case ZigClangBuiltinTypeFloat16:
1270 case ZigClangBuiltinTypeBFloat16:
1271 case ZigClangBuiltinTypeFloat128:
1272 case ZigClangBuiltinTypeNullPtr:
1273 case ZigClangBuiltinTypeObjCId:
1274 case ZigClangBuiltinTypeObjCClass:
1275 case ZigClangBuiltinTypeObjCSel:
1276 case ZigClangBuiltinTypeOCLSampler:
1277 case ZigClangBuiltinTypeOCLEvent:
1278 case ZigClangBuiltinTypeOCLClkEvent:
1279 case ZigClangBuiltinTypeOCLQueue:
1280 case ZigClangBuiltinTypeOCLReserveID:
1281 case ZigClangBuiltinTypeDependent:
1282 case ZigClangBuiltinTypeOverload:
1283 case ZigClangBuiltinTypeBoundMember:
1284 case ZigClangBuiltinTypePseudoObject:
1285 case ZigClangBuiltinTypeUnknownAny:
1286 case ZigClangBuiltinTypeBuiltinFn:
1287 case ZigClangBuiltinTypeARCUnbridgedCast:
1288 case ZigClangBuiltinTypeIncompleteMatrixIdx:
1289 case ZigClangBuiltinTypeOMPArraySection:
1290 case ZigClangBuiltinTypeOMPArrayShaping:
1291 case ZigClangBuiltinTypeOMPIterator:
1206 break;1292 break;
1207 }1293 }
1208}1294}
...@@ -1306,6 +1392,72 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x4 == clan...@@ -1306,6 +1392,72 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x4 == clan
1306static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBool == clang::BuiltinType::SveBool, "");1392static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBool == clang::BuiltinType::SveBool, "");
1307static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorQuad == clang::BuiltinType::VectorQuad, "");1393static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorQuad == clang::BuiltinType::VectorQuad, "");
1308static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorPair == clang::BuiltinType::VectorPair, "");1394static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorPair == clang::BuiltinType::VectorPair, "");
1395static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf8 == clang::BuiltinType::RvvInt8mf8, "");
1396static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf4 == clang::BuiltinType::RvvInt8mf4, "");
1397static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf2 == clang::BuiltinType::RvvInt8mf2, "");
1398static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8m1 == clang::BuiltinType::RvvInt8m1, "");
1399static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8m2 == clang::BuiltinType::RvvInt8m2, "");
1400static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8m4 == clang::BuiltinType::RvvInt8m4, "");
1401static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8m8 == clang::BuiltinType::RvvInt8m8, "");
1402static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8mf8 == clang::BuiltinType::RvvUint8mf8, "");
1403static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8mf4 == clang::BuiltinType::RvvUint8mf4, "");
1404static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8mf2 == clang::BuiltinType::RvvUint8mf2, "");
1405static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8m1 == clang::BuiltinType::RvvUint8m1, "");
1406static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8m2 == clang::BuiltinType::RvvUint8m2, "");
1407static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8m4 == clang::BuiltinType::RvvUint8m4, "");
1408static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8m8 == clang::BuiltinType::RvvUint8m8, "");
1409static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16mf4 == clang::BuiltinType::RvvInt16mf4, "");
1410static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16mf2 == clang::BuiltinType::RvvInt16mf2, "");
1411static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16m1 == clang::BuiltinType::RvvInt16m1, "");
1412static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16m2 == clang::BuiltinType::RvvInt16m2, "");
1413static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16m4 == clang::BuiltinType::RvvInt16m4, "");
1414static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16m8 == clang::BuiltinType::RvvInt16m8, "");
1415static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16mf4 == clang::BuiltinType::RvvUint16mf4, "");
1416static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16mf2 == clang::BuiltinType::RvvUint16mf2, "");
1417static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16m1 == clang::BuiltinType::RvvUint16m1, "");
1418static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16m2 == clang::BuiltinType::RvvUint16m2, "");
1419static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16m4 == clang::BuiltinType::RvvUint16m4, "");
1420static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16m8 == clang::BuiltinType::RvvUint16m8, "");
1421static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt32mf2 == clang::BuiltinType::RvvInt32mf2, "");
1422static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt32m1 == clang::BuiltinType::RvvInt32m1, "");
1423static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt32m2 == clang::BuiltinType::RvvInt32m2, "");
1424static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt32m4 == clang::BuiltinType::RvvInt32m4, "");
1425static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt32m8 == clang::BuiltinType::RvvInt32m8, "");
1426static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint32mf2 == clang::BuiltinType::RvvUint32mf2, "");
1427static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint32m1 == clang::BuiltinType::RvvUint32m1, "");
1428static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint32m2 == clang::BuiltinType::RvvUint32m2, "");
1429static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint32m4 == clang::BuiltinType::RvvUint32m4, "");
1430static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint32m8 == clang::BuiltinType::RvvUint32m8, "");
1431static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt64m1 == clang::BuiltinType::RvvInt64m1, "");
1432static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt64m2 == clang::BuiltinType::RvvInt64m2, "");
1433static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt64m4 == clang::BuiltinType::RvvInt64m4, "");
1434static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt64m8 == clang::BuiltinType::RvvInt64m8, "");
1435static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint64m1 == clang::BuiltinType::RvvUint64m1, "");
1436static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint64m2 == clang::BuiltinType::RvvUint64m2, "");
1437static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint64m4 == clang::BuiltinType::RvvUint64m4, "");
1438static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint64m8 == clang::BuiltinType::RvvUint64m8, "");
1439static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16mf4 == clang::BuiltinType::RvvFloat16mf4, "");
1440static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16mf2 == clang::BuiltinType::RvvFloat16mf2, "");
1441static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16m1 == clang::BuiltinType::RvvFloat16m1, "");
1442static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16m2 == clang::BuiltinType::RvvFloat16m2, "");
1443static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16m4 == clang::BuiltinType::RvvFloat16m4, "");
1444static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16m8 == clang::BuiltinType::RvvFloat16m8, "");
1445static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat32mf2 == clang::BuiltinType::RvvFloat32mf2, "");
1446static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat32m1 == clang::BuiltinType::RvvFloat32m1, "");
1447static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat32m2 == clang::BuiltinType::RvvFloat32m2, "");
1448static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat32m4 == clang::BuiltinType::RvvFloat32m4, "");
1449static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat32m8 == clang::BuiltinType::RvvFloat32m8, "");
1450static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat64m1 == clang::BuiltinType::RvvFloat64m1, "");
1451static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat64m2 == clang::BuiltinType::RvvFloat64m2, "");
1452static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat64m4 == clang::BuiltinType::RvvFloat64m4, "");
1453static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat64m8 == clang::BuiltinType::RvvFloat64m8, "");
1454static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool1 == clang::BuiltinType::RvvBool1, "");
1455static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool2 == clang::BuiltinType::RvvBool2, "");
1456static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool4 == clang::BuiltinType::RvvBool4, "");
1457static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool8 == clang::BuiltinType::RvvBool8, "");
1458static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool16 == clang::BuiltinType::RvvBool16, "");
1459static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool32 == clang::BuiltinType::RvvBool32, "");
1460static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool64 == clang::BuiltinType::RvvBool64, "");
1309static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");1461static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");
1310static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");1462static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");
1311static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");1463static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");
...@@ -1396,6 +1548,7 @@ void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {...@@ -1396,6 +1548,7 @@ void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {
1396 case clang::CC_SpirFunction:1548 case clang::CC_SpirFunction:
1397 case clang::CC_OpenCLKernel:1549 case clang::CC_OpenCLKernel:
1398 case clang::CC_Swift:1550 case clang::CC_Swift:
1551 case clang::CC_SwiftAsync:
1399 case clang::CC_PreserveMost:1552 case clang::CC_PreserveMost:
1400 case clang::CC_PreserveAll:1553 case clang::CC_PreserveAll:
1401 case clang::CC_AArch64VectorCall:1554 case clang::CC_AArch64VectorCall:
...@@ -1418,6 +1571,7 @@ static_assert((clang::CallingConv)ZigClangCallingConv_IntelOclBicc == clang::CC_...@@ -1418,6 +1571,7 @@ static_assert((clang::CallingConv)ZigClangCallingConv_IntelOclBicc == clang::CC_
1418static_assert((clang::CallingConv)ZigClangCallingConv_SpirFunction == clang::CC_SpirFunction, "");1571static_assert((clang::CallingConv)ZigClangCallingConv_SpirFunction == clang::CC_SpirFunction, "");
1419static_assert((clang::CallingConv)ZigClangCallingConv_OpenCLKernel == clang::CC_OpenCLKernel, "");1572static_assert((clang::CallingConv)ZigClangCallingConv_OpenCLKernel == clang::CC_OpenCLKernel, "");
1420static_assert((clang::CallingConv)ZigClangCallingConv_Swift == clang::CC_Swift, "");1573static_assert((clang::CallingConv)ZigClangCallingConv_Swift == clang::CC_Swift, "");
1574static_assert((clang::CallingConv)ZigClangCallingConv_SwiftAsync == clang::CC_SwiftAsync, "");
1421static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, "");1575static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, "");
1422static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, "");1576static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, "");
1423static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, "");1577static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, "");
src/zig_clang.h+78-1
...@@ -318,13 +318,16 @@ enum ZigClangStmtClass {...@@ -318,13 +318,16 @@ enum ZigClangStmtClass {
318 ZigClangStmt_IndirectGotoStmtClass,318 ZigClangStmt_IndirectGotoStmtClass,
319 ZigClangStmt_MSDependentExistsStmtClass,319 ZigClangStmt_MSDependentExistsStmtClass,
320 ZigClangStmt_NullStmtClass,320 ZigClangStmt_NullStmtClass,
321 ZigClangStmt_OMPCanonicalLoopClass,
321 ZigClangStmt_OMPAtomicDirectiveClass,322 ZigClangStmt_OMPAtomicDirectiveClass,
322 ZigClangStmt_OMPBarrierDirectiveClass,323 ZigClangStmt_OMPBarrierDirectiveClass,
323 ZigClangStmt_OMPCancelDirectiveClass,324 ZigClangStmt_OMPCancelDirectiveClass,
324 ZigClangStmt_OMPCancellationPointDirectiveClass,325 ZigClangStmt_OMPCancellationPointDirectiveClass,
325 ZigClangStmt_OMPCriticalDirectiveClass,326 ZigClangStmt_OMPCriticalDirectiveClass,
326 ZigClangStmt_OMPDepobjDirectiveClass,327 ZigClangStmt_OMPDepobjDirectiveClass,
328 ZigClangStmt_OMPDispatchDirectiveClass,
327 ZigClangStmt_OMPFlushDirectiveClass,329 ZigClangStmt_OMPFlushDirectiveClass,
330 ZigClangStmt_OMPInteropDirectiveClass,
328 ZigClangStmt_OMPDistributeDirectiveClass,331 ZigClangStmt_OMPDistributeDirectiveClass,
329 ZigClangStmt_OMPDistributeParallelForDirectiveClass,332 ZigClangStmt_OMPDistributeParallelForDirectiveClass,
330 ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass,333 ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass,
...@@ -350,6 +353,9 @@ enum ZigClangStmtClass {...@@ -350,6 +353,9 @@ enum ZigClangStmtClass {
350 ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass,353 ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass,
351 ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass,354 ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass,
352 ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass,355 ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass,
356 ZigClangStmt_OMPTileDirectiveClass,
357 ZigClangStmt_OMPUnrollDirectiveClass,
358 ZigClangStmt_OMPMaskedDirectiveClass,
353 ZigClangStmt_OMPMasterDirectiveClass,359 ZigClangStmt_OMPMasterDirectiveClass,
354 ZigClangStmt_OMPOrderedDirectiveClass,360 ZigClangStmt_OMPOrderedDirectiveClass,
355 ZigClangStmt_OMPParallelDirectiveClass,361 ZigClangStmt_OMPParallelDirectiveClass,
...@@ -498,6 +504,7 @@ enum ZigClangStmtClass {...@@ -498,6 +504,7 @@ enum ZigClangStmtClass {
498 ZigClangStmt_PseudoObjectExprClass,504 ZigClangStmt_PseudoObjectExprClass,
499 ZigClangStmt_RecoveryExprClass,505 ZigClangStmt_RecoveryExprClass,
500 ZigClangStmt_RequiresExprClass,506 ZigClangStmt_RequiresExprClass,
507 ZigClangStmt_SYCLUniqueStableNameExprClass,
501 ZigClangStmt_ShuffleVectorExprClass,508 ZigClangStmt_ShuffleVectorExprClass,
502 ZigClangStmt_SizeOfPackExprClass,509 ZigClangStmt_SizeOfPackExprClass,
503 ZigClangStmt_SourceLocExprClass,510 ZigClangStmt_SourceLocExprClass,
...@@ -540,6 +547,7 @@ enum ZigClangCK {...@@ -540,6 +547,7 @@ enum ZigClangCK {
540 ZigClangCK_PointerToIntegral,547 ZigClangCK_PointerToIntegral,
541 ZigClangCK_PointerToBoolean,548 ZigClangCK_PointerToBoolean,
542 ZigClangCK_ToVoid,549 ZigClangCK_ToVoid,
550 ZigClangCK_MatrixCast,
543 ZigClangCK_VectorSplat,551 ZigClangCK_VectorSplat,
544 ZigClangCK_IntegralCast,552 ZigClangCK_IntegralCast,
545 ZigClangCK_IntegralToBoolean,553 ZigClangCK_IntegralToBoolean,
...@@ -595,6 +603,8 @@ enum ZigClangDeclKind {...@@ -595,6 +603,8 @@ enum ZigClangDeclKind {
595 ZigClangDeclImport,603 ZigClangDeclImport,
596 ZigClangDeclLifetimeExtendedTemporary,604 ZigClangDeclLifetimeExtendedTemporary,
597 ZigClangDeclLinkageSpec,605 ZigClangDeclLinkageSpec,
606 ZigClangDeclUsing,
607 ZigClangDeclUsingEnum,
598 ZigClangDeclLabel,608 ZigClangDeclLabel,
599 ZigClangDeclNamespace,609 ZigClangDeclNamespace,
600 ZigClangDeclNamespaceAlias,610 ZigClangDeclNamespaceAlias,
...@@ -623,7 +633,7 @@ enum ZigClangDeclKind {...@@ -623,7 +633,7 @@ enum ZigClangDeclKind {
623 ZigClangDeclTypeAlias,633 ZigClangDeclTypeAlias,
624 ZigClangDeclTypedef,634 ZigClangDeclTypedef,
625 ZigClangDeclUnresolvedUsingTypename,635 ZigClangDeclUnresolvedUsingTypename,
626 ZigClangDeclUsing,636 ZigClangDeclUnresolvedUsingIfExists,
627 ZigClangDeclUsingDirective,637 ZigClangDeclUsingDirective,
628 ZigClangDeclUsingPack,638 ZigClangDeclUsingPack,
629 ZigClangDeclUsingShadow,639 ZigClangDeclUsingShadow,
...@@ -765,6 +775,72 @@ enum ZigClangBuiltinTypeKind {...@@ -765,6 +775,72 @@ enum ZigClangBuiltinTypeKind {
765 ZigClangBuiltinTypeSveBool,775 ZigClangBuiltinTypeSveBool,
766 ZigClangBuiltinTypeVectorQuad,776 ZigClangBuiltinTypeVectorQuad,
767 ZigClangBuiltinTypeVectorPair,777 ZigClangBuiltinTypeVectorPair,
778 ZigClangBuiltinTypeRvvInt8mf8,
779 ZigClangBuiltinTypeRvvInt8mf4,
780 ZigClangBuiltinTypeRvvInt8mf2,
781 ZigClangBuiltinTypeRvvInt8m1,
782 ZigClangBuiltinTypeRvvInt8m2,
783 ZigClangBuiltinTypeRvvInt8m4,
784 ZigClangBuiltinTypeRvvInt8m8,
785 ZigClangBuiltinTypeRvvUint8mf8,
786 ZigClangBuiltinTypeRvvUint8mf4,
787 ZigClangBuiltinTypeRvvUint8mf2,
788 ZigClangBuiltinTypeRvvUint8m1,
789 ZigClangBuiltinTypeRvvUint8m2,
790 ZigClangBuiltinTypeRvvUint8m4,
791 ZigClangBuiltinTypeRvvUint8m8,
792 ZigClangBuiltinTypeRvvInt16mf4,
793 ZigClangBuiltinTypeRvvInt16mf2,
794 ZigClangBuiltinTypeRvvInt16m1,
795 ZigClangBuiltinTypeRvvInt16m2,
796 ZigClangBuiltinTypeRvvInt16m4,
797 ZigClangBuiltinTypeRvvInt16m8,
798 ZigClangBuiltinTypeRvvUint16mf4,
799 ZigClangBuiltinTypeRvvUint16mf2,
800 ZigClangBuiltinTypeRvvUint16m1,
801 ZigClangBuiltinTypeRvvUint16m2,
802 ZigClangBuiltinTypeRvvUint16m4,
803 ZigClangBuiltinTypeRvvUint16m8,
804 ZigClangBuiltinTypeRvvInt32mf2,
805 ZigClangBuiltinTypeRvvInt32m1,
806 ZigClangBuiltinTypeRvvInt32m2,
807 ZigClangBuiltinTypeRvvInt32m4,
808 ZigClangBuiltinTypeRvvInt32m8,
809 ZigClangBuiltinTypeRvvUint32mf2,
810 ZigClangBuiltinTypeRvvUint32m1,
811 ZigClangBuiltinTypeRvvUint32m2,
812 ZigClangBuiltinTypeRvvUint32m4,
813 ZigClangBuiltinTypeRvvUint32m8,
814 ZigClangBuiltinTypeRvvInt64m1,
815 ZigClangBuiltinTypeRvvInt64m2,
816 ZigClangBuiltinTypeRvvInt64m4,
817 ZigClangBuiltinTypeRvvInt64m8,
818 ZigClangBuiltinTypeRvvUint64m1,
819 ZigClangBuiltinTypeRvvUint64m2,
820 ZigClangBuiltinTypeRvvUint64m4,
821 ZigClangBuiltinTypeRvvUint64m8,
822 ZigClangBuiltinTypeRvvFloat16mf4,
823 ZigClangBuiltinTypeRvvFloat16mf2,
824 ZigClangBuiltinTypeRvvFloat16m1,
825 ZigClangBuiltinTypeRvvFloat16m2,
826 ZigClangBuiltinTypeRvvFloat16m4,
827 ZigClangBuiltinTypeRvvFloat16m8,
828 ZigClangBuiltinTypeRvvFloat32mf2,
829 ZigClangBuiltinTypeRvvFloat32m1,
830 ZigClangBuiltinTypeRvvFloat32m2,
831 ZigClangBuiltinTypeRvvFloat32m4,
832 ZigClangBuiltinTypeRvvFloat32m8,
833 ZigClangBuiltinTypeRvvFloat64m1,
834 ZigClangBuiltinTypeRvvFloat64m2,
835 ZigClangBuiltinTypeRvvFloat64m4,
836 ZigClangBuiltinTypeRvvFloat64m8,
837 ZigClangBuiltinTypeRvvBool1,
838 ZigClangBuiltinTypeRvvBool2,
839 ZigClangBuiltinTypeRvvBool4,
840 ZigClangBuiltinTypeRvvBool8,
841 ZigClangBuiltinTypeRvvBool16,
842 ZigClangBuiltinTypeRvvBool32,
843 ZigClangBuiltinTypeRvvBool64,
768 ZigClangBuiltinTypeVoid,844 ZigClangBuiltinTypeVoid,
769 ZigClangBuiltinTypeBool,845 ZigClangBuiltinTypeBool,
770 ZigClangBuiltinTypeChar_U,846 ZigClangBuiltinTypeChar_U,
...@@ -855,6 +931,7 @@ enum ZigClangCallingConv {...@@ -855,6 +931,7 @@ enum ZigClangCallingConv {
855 ZigClangCallingConv_SpirFunction, // default for OpenCL functions on SPIR target931 ZigClangCallingConv_SpirFunction, // default for OpenCL functions on SPIR target
856 ZigClangCallingConv_OpenCLKernel, // inferred for OpenCL kernels932 ZigClangCallingConv_OpenCLKernel, // inferred for OpenCL kernels
857 ZigClangCallingConv_Swift, // __attribute__((swiftcall))933 ZigClangCallingConv_Swift, // __attribute__((swiftcall))
934 ZigClangCallingConv_SwiftAsync, // __attribute__((swiftasynccall))
858 ZigClangCallingConv_PreserveMost, // __attribute__((preserve_most))935 ZigClangCallingConv_PreserveMost, // __attribute__((preserve_most))
859 ZigClangCallingConv_PreserveAll, // __attribute__((preserve_all))936 ZigClangCallingConv_PreserveAll, // __attribute__((preserve_all))
860 ZigClangCallingConv_AArch64VectorCall, // __attribute__((aarch64_vector_pcs))937 ZigClangCallingConv_AArch64VectorCall, // __attribute__((aarch64_vector_pcs))
src/zig_llvm.cpp+6-73
...@@ -155,10 +155,6 @@ LLVMTargetMachineRef ZigLLVMCreateTargetMachine(LLVMTargetRef T, const char *Tri...@@ -155,10 +155,6 @@ LLVMTargetMachineRef ZigLLVMCreateTargetMachine(LLVMTargetRef T, const char *Tri
155155
156 TargetOptions opt;156 TargetOptions opt;
157157
158 // Work around the missing initialization of this field in the default
159 // constructor. Use -1 so that the default value is used.
160 opt.StackProtectorGuardOffset = (unsigned)-1;
161
162 opt.FunctionSections = function_sections;158 opt.FunctionSections = function_sections;
163 switch (float_abi) {159 switch (float_abi) {
164 case ZigLLVMABITypeDefault:160 case ZigLLVMABITypeDefault:
...@@ -240,7 +236,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM...@@ -240,7 +236,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM
240236
241 if (asm_filename) {237 if (asm_filename) {
242 std::error_code EC;238 std::error_code EC;
243 dest_asm_ptr = new(std::nothrow) raw_fd_ostream(asm_filename, EC, sys::fs::F_None);239 dest_asm_ptr = new(std::nothrow) raw_fd_ostream(asm_filename, EC, sys::fs::OF_None);
244 if (EC) {240 if (EC) {
245 *error_message = strdup((const char *)StringRef(EC.message()).bytes_begin());241 *error_message = strdup((const char *)StringRef(EC.message()).bytes_begin());
246 return true;242 return true;
...@@ -248,7 +244,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM...@@ -248,7 +244,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM
248 }244 }
249 if (bin_filename) {245 if (bin_filename) {
250 std::error_code EC;246 std::error_code EC;
251 dest_bin_ptr = new(std::nothrow) raw_fd_ostream(bin_filename, EC, sys::fs::F_None);247 dest_bin_ptr = new(std::nothrow) raw_fd_ostream(bin_filename, EC, sys::fs::OF_None);
252 if (EC) {248 if (EC) {
253 *error_message = strdup((const char *)StringRef(EC.message()).bytes_begin());249 *error_message = strdup((const char *)StringRef(EC.message()).bytes_begin());
254 return true;250 return true;
...@@ -256,7 +252,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM...@@ -256,7 +252,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM
256 }252 }
257 if (bitcode_filename) {253 if (bitcode_filename) {
258 std::error_code EC;254 std::error_code EC;
259 dest_bitcode_ptr = new(std::nothrow) raw_fd_ostream(bitcode_filename, EC, sys::fs::F_None);255 dest_bitcode_ptr = new(std::nothrow) raw_fd_ostream(bitcode_filename, EC, sys::fs::OF_None);
260 if (EC) {256 if (EC) {
261 *error_message = strdup((const char *)StringRef(EC.message()).bytes_begin());257 *error_message = strdup((const char *)StringRef(EC.message()).bytes_begin());
262 return true;258 return true;
...@@ -292,7 +288,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM...@@ -292,7 +288,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM
292 StandardInstrumentations std_instrumentations(false);288 StandardInstrumentations std_instrumentations(false);
293 std_instrumentations.registerCallbacks(instr_callbacks);289 std_instrumentations.registerCallbacks(instr_callbacks);
294290
295 PassBuilder pass_builder(false, &target_machine, pipeline_opts,291 PassBuilder pass_builder(&target_machine, pipeline_opts,
296 None, &instr_callbacks);292 None, &instr_callbacks);
297 using OptimizationLevel = typename PassBuilder::OptimizationLevel;293 using OptimizationLevel = typename PassBuilder::OptimizationLevel;
298294
...@@ -1020,29 +1016,6 @@ void ZigLLVMSetModuleCodeModel(LLVMModuleRef module, LLVMCodeModel code_model) {...@@ -1020,29 +1016,6 @@ void ZigLLVMSetModuleCodeModel(LLVMModuleRef module, LLVMCodeModel code_model) {
1020 assert(!JIT);1016 assert(!JIT);
1021}1017}
10221018
1023static AtomicOrdering mapFromLLVMOrdering(LLVMAtomicOrdering Ordering) {
1024 switch (Ordering) {
1025 case LLVMAtomicOrderingNotAtomic: return AtomicOrdering::NotAtomic;
1026 case LLVMAtomicOrderingUnordered: return AtomicOrdering::Unordered;
1027 case LLVMAtomicOrderingMonotonic: return AtomicOrdering::Monotonic;
1028 case LLVMAtomicOrderingAcquire: return AtomicOrdering::Acquire;
1029 case LLVMAtomicOrderingRelease: return AtomicOrdering::Release;
1030 case LLVMAtomicOrderingAcquireRelease: return AtomicOrdering::AcquireRelease;
1031 case LLVMAtomicOrderingSequentiallyConsistent: return AtomicOrdering::SequentiallyConsistent;
1032 }
1033 abort();
1034}
1035
1036LLVMValueRef ZigLLVMBuildCmpXchg(LLVMBuilderRef builder, LLVMValueRef ptr, LLVMValueRef cmp,
1037 LLVMValueRef new_val, LLVMAtomicOrdering success_ordering,
1038 LLVMAtomicOrdering failure_ordering, bool is_weak)
1039{
1040 AtomicCmpXchgInst *inst = unwrap(builder)->CreateAtomicCmpXchg(unwrap(ptr), unwrap(cmp),
1041 unwrap(new_val), mapFromLLVMOrdering(success_ordering), mapFromLLVMOrdering(failure_ordering));
1042 inst->setWeak(is_weak);
1043 return wrap(inst);
1044}
1045
1046LLVMValueRef ZigLLVMBuildNSWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS,1019LLVMValueRef ZigLLVMBuildNSWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS,
1047 const char *name)1020 const char *name)
1048{1021{
...@@ -1237,38 +1210,6 @@ int ZigLLDLinkWasm(int argc, const char **argv, bool can_exit_early) {...@@ -1237,38 +1210,6 @@ int ZigLLDLinkWasm(int argc, const char **argv, bool can_exit_early) {
1237 return lld::wasm::link(args, can_exit_early, llvm::outs(), llvm::errs());1210 return lld::wasm::link(args, can_exit_early, llvm::outs(), llvm::errs());
1238}1211}
12391212
1240static AtomicRMWInst::BinOp toLLVMRMWBinOp(enum ZigLLVM_AtomicRMWBinOp BinOp) {
1241 switch (BinOp) {
1242 default:
1243 case ZigLLVMAtomicRMWBinOpXchg: return AtomicRMWInst::Xchg;
1244 case ZigLLVMAtomicRMWBinOpAdd: return AtomicRMWInst::Add;
1245 case ZigLLVMAtomicRMWBinOpSub: return AtomicRMWInst::Sub;
1246 case ZigLLVMAtomicRMWBinOpAnd: return AtomicRMWInst::And;
1247 case ZigLLVMAtomicRMWBinOpNand: return AtomicRMWInst::Nand;
1248 case ZigLLVMAtomicRMWBinOpOr: return AtomicRMWInst::Or;
1249 case ZigLLVMAtomicRMWBinOpXor: return AtomicRMWInst::Xor;
1250 case ZigLLVMAtomicRMWBinOpMax: return AtomicRMWInst::Max;
1251 case ZigLLVMAtomicRMWBinOpMin: return AtomicRMWInst::Min;
1252 case ZigLLVMAtomicRMWBinOpUMax: return AtomicRMWInst::UMax;
1253 case ZigLLVMAtomicRMWBinOpUMin: return AtomicRMWInst::UMin;
1254 case ZigLLVMAtomicRMWBinOpFAdd: return AtomicRMWInst::FAdd;
1255 case ZigLLVMAtomicRMWBinOpFSub: return AtomicRMWInst::FSub;
1256 }
1257}
1258
1259static AtomicOrdering toLLVMOrdering(LLVMAtomicOrdering Ordering) {
1260 switch (Ordering) {
1261 default:
1262 case LLVMAtomicOrderingNotAtomic: return AtomicOrdering::NotAtomic;
1263 case LLVMAtomicOrderingUnordered: return AtomicOrdering::Unordered;
1264 case LLVMAtomicOrderingMonotonic: return AtomicOrdering::Monotonic;
1265 case LLVMAtomicOrderingAcquire: return AtomicOrdering::Acquire;
1266 case LLVMAtomicOrderingRelease: return AtomicOrdering::Release;
1267 case LLVMAtomicOrderingAcquireRelease: return AtomicOrdering::AcquireRelease;
1268 case LLVMAtomicOrderingSequentiallyConsistent: return AtomicOrdering::SequentiallyConsistent;
1269 }
1270}
1271
1272inline LLVMAttributeRef wrap(Attribute Attr) {1213inline LLVMAttributeRef wrap(Attribute Attr) {
1273 return reinterpret_cast<LLVMAttributeRef>(Attr.getRawPointer());1214 return reinterpret_cast<LLVMAttributeRef>(Attr.getRawPointer());
1274}1215}
...@@ -1277,16 +1218,6 @@ inline Attribute unwrap(LLVMAttributeRef Attr) {...@@ -1277,16 +1218,6 @@ inline Attribute unwrap(LLVMAttributeRef Attr) {
1277 return Attribute::fromRawPointer(Attr);1218 return Attribute::fromRawPointer(Attr);
1278}1219}
12791220
1280LLVMValueRef ZigLLVMBuildAtomicRMW(LLVMBuilderRef B, enum ZigLLVM_AtomicRMWBinOp op,
1281 LLVMValueRef PTR, LLVMValueRef Val,
1282 LLVMAtomicOrdering ordering, LLVMBool singleThread)
1283{
1284 AtomicRMWInst::BinOp intop = toLLVMRMWBinOp(op);
1285 return wrap(unwrap(B)->CreateAtomicRMW(intop, unwrap(PTR),
1286 unwrap(Val), toLLVMOrdering(ordering),
1287 singleThread ? SyncScope::SingleThread : SyncScope::System));
1288}
1289
1290LLVMValueRef ZigLLVMBuildAndReduce(LLVMBuilderRef B, LLVMValueRef Val) {1221LLVMValueRef ZigLLVMBuildAndReduce(LLVMBuilderRef B, LLVMValueRef Val) {
1291 return wrap(unwrap(B)->CreateAndReduce(unwrap(Val)));1222 return wrap(unwrap(B)->CreateAndReduce(unwrap(Val)));
1292}1223}
...@@ -1343,6 +1274,7 @@ static_assert((Triple::ArchType)ZigLLVM_bpfel == Triple::bpfel, "");...@@ -1343,6 +1274,7 @@ static_assert((Triple::ArchType)ZigLLVM_bpfel == Triple::bpfel, "");
1343static_assert((Triple::ArchType)ZigLLVM_bpfeb == Triple::bpfeb, "");1274static_assert((Triple::ArchType)ZigLLVM_bpfeb == Triple::bpfeb, "");
1344static_assert((Triple::ArchType)ZigLLVM_csky == Triple::csky, "");1275static_assert((Triple::ArchType)ZigLLVM_csky == Triple::csky, "");
1345static_assert((Triple::ArchType)ZigLLVM_hexagon == Triple::hexagon, "");1276static_assert((Triple::ArchType)ZigLLVM_hexagon == Triple::hexagon, "");
1277static_assert((Triple::ArchType)ZigLLVM_m68k == Triple::m68k, "");
1346static_assert((Triple::ArchType)ZigLLVM_mips == Triple::mips, "");1278static_assert((Triple::ArchType)ZigLLVM_mips == Triple::mips, "");
1347static_assert((Triple::ArchType)ZigLLVM_mipsel == Triple::mipsel, "");1279static_assert((Triple::ArchType)ZigLLVM_mipsel == Triple::mipsel, "");
1348static_assert((Triple::ArchType)ZigLLVM_mips64 == Triple::mips64, "");1280static_assert((Triple::ArchType)ZigLLVM_mips64 == Triple::mips64, "");
...@@ -1459,6 +1391,7 @@ static_assert((Triple::EnvironmentType)ZigLLVM_Android == Triple::Android, "");...@@ -1459,6 +1391,7 @@ static_assert((Triple::EnvironmentType)ZigLLVM_Android == Triple::Android, "");
1459static_assert((Triple::EnvironmentType)ZigLLVM_Musl == Triple::Musl, "");1391static_assert((Triple::EnvironmentType)ZigLLVM_Musl == Triple::Musl, "");
1460static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABI == Triple::MuslEABI, "");1392static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABI == Triple::MuslEABI, "");
1461static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABIHF == Triple::MuslEABIHF, "");1393static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABIHF == Triple::MuslEABIHF, "");
1394static_assert((Triple::EnvironmentType)ZigLLVM_MuslX32 == Triple::MuslX32, "");
1462static_assert((Triple::EnvironmentType)ZigLLVM_MSVC == Triple::MSVC, "");1395static_assert((Triple::EnvironmentType)ZigLLVM_MSVC == Triple::MSVC, "");
1463static_assert((Triple::EnvironmentType)ZigLLVM_Itanium == Triple::Itanium, "");1396static_assert((Triple::EnvironmentType)ZigLLVM_Itanium == Triple::Itanium, "");
1464static_assert((Triple::EnvironmentType)ZigLLVM_Cygnus == Triple::Cygnus, "");1397static_assert((Triple::EnvironmentType)ZigLLVM_Cygnus == Triple::Cygnus, "");
src/zig_llvm.h+2-26
...@@ -137,10 +137,6 @@ ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildUMin(LLVMBuilderRef builder, LLVMValueRef...@@ -137,10 +137,6 @@ ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildUMin(LLVMBuilderRef builder, LLVMValueRef
137ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildSMax(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS, const char* name);137ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildSMax(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS, const char* name);
138ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildSMin(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS, const char* name);138ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildSMin(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS, const char* name);
139139
140ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildCmpXchg(LLVMBuilderRef builder, LLVMValueRef ptr, LLVMValueRef cmp,
141 LLVMValueRef new_val, LLVMAtomicOrdering success_ordering,
142 LLVMAtomicOrdering failure_ordering, bool is_weak);
143
144ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildNSWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS,140ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildNSWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS,
145 const char *name);141 const char *name);
146ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildNUWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS,142ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildNUWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS,
...@@ -303,6 +299,7 @@ enum ZigLLVM_ArchType {...@@ -303,6 +299,7 @@ enum ZigLLVM_ArchType {
303 ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian)299 ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian)
304 ZigLLVM_csky, // CSKY: csky300 ZigLLVM_csky, // CSKY: csky
305 ZigLLVM_hexagon, // Hexagon: hexagon301 ZigLLVM_hexagon, // Hexagon: hexagon
302 ZigLLVM_m68k, // M68k: Motorola 680x0 family
306 ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6303 ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6
307 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el304 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el
308 ZigLLVM_mips64, // MIPS64: mips64, mips64r6, mipsn32, mipsn32r6305 ZigLLVM_mips64, // MIPS64: mips64, mips64r6, mipsn32, mipsn32r6
...@@ -345,7 +342,6 @@ enum ZigLLVM_ArchType {...@@ -345,7 +342,6 @@ enum ZigLLVM_ArchType {
345 ZigLLVM_renderscript32, // 32-bit RenderScript342 ZigLLVM_renderscript32, // 32-bit RenderScript
346 ZigLLVM_renderscript64, // 64-bit RenderScript343 ZigLLVM_renderscript64, // 64-bit RenderScript
347 ZigLLVM_ve, // NEC SX-Aurora Vector Engine344 ZigLLVM_ve, // NEC SX-Aurora Vector Engine
348
349 ZigLLVM_LastArchType = ZigLLVM_ve345 ZigLLVM_LastArchType = ZigLLVM_ve
350};346};
351347
...@@ -430,6 +426,7 @@ enum ZigLLVM_EnvironmentType {...@@ -430,6 +426,7 @@ enum ZigLLVM_EnvironmentType {
430 ZigLLVM_Musl,426 ZigLLVM_Musl,
431 ZigLLVM_MuslEABI,427 ZigLLVM_MuslEABI,
432 ZigLLVM_MuslEABIHF,428 ZigLLVM_MuslEABIHF,
429 ZigLLVM_MuslX32,
433430
434 ZigLLVM_MSVC,431 ZigLLVM_MSVC,
435 ZigLLVM_Itanium,432 ZigLLVM_Itanium,
...@@ -437,7 +434,6 @@ enum ZigLLVM_EnvironmentType {...@@ -437,7 +434,6 @@ enum ZigLLVM_EnvironmentType {
437 ZigLLVM_CoreCLR,434 ZigLLVM_CoreCLR,
438 ZigLLVM_Simulator, // Simulator variants of other systems, e.g., Apple's iOS435 ZigLLVM_Simulator, // Simulator variants of other systems, e.g., Apple's iOS
439 ZigLLVM_MacABI, // Mac Catalyst variant of Apple's iOS deployment target.436 ZigLLVM_MacABI, // Mac Catalyst variant of Apple's iOS deployment target.
440
441 ZigLLVM_LastEnvironmentType = ZigLLVM_MacABI437 ZigLLVM_LastEnvironmentType = ZigLLVM_MacABI
442};438};
443439
...@@ -452,26 +448,6 @@ enum ZigLLVM_ObjectFormatType {...@@ -452,26 +448,6 @@ enum ZigLLVM_ObjectFormatType {
452 ZigLLVM_XCOFF,448 ZigLLVM_XCOFF,
453};449};
454450
455enum ZigLLVM_AtomicRMWBinOp {
456 ZigLLVMAtomicRMWBinOpXchg,
457 ZigLLVMAtomicRMWBinOpAdd,
458 ZigLLVMAtomicRMWBinOpSub,
459 ZigLLVMAtomicRMWBinOpAnd,
460 ZigLLVMAtomicRMWBinOpNand,
461 ZigLLVMAtomicRMWBinOpOr,
462 ZigLLVMAtomicRMWBinOpXor,
463 ZigLLVMAtomicRMWBinOpMax,
464 ZigLLVMAtomicRMWBinOpMin,
465 ZigLLVMAtomicRMWBinOpUMax,
466 ZigLLVMAtomicRMWBinOpUMin,
467 ZigLLVMAtomicRMWBinOpFAdd,
468 ZigLLVMAtomicRMWBinOpFSub,
469};
470
471LLVMValueRef ZigLLVMBuildAtomicRMW(LLVMBuilderRef B, enum ZigLLVM_AtomicRMWBinOp op,
472 LLVMValueRef PTR, LLVMValueRef Val,
473 LLVMAtomicOrdering ordering, LLVMBool singleThread);
474
475LLVMValueRef ZigLLVMBuildAndReduce(LLVMBuilderRef B, LLVMValueRef Val);451LLVMValueRef ZigLLVMBuildAndReduce(LLVMBuilderRef B, LLVMValueRef Val);
476LLVMValueRef ZigLLVMBuildOrReduce(LLVMBuilderRef B, LLVMValueRef Val);452LLVMValueRef ZigLLVMBuildOrReduce(LLVMBuilderRef B, LLVMValueRef Val);
477LLVMValueRef ZigLLVMBuildXorReduce(LLVMBuilderRef B, LLVMValueRef Val);453LLVMValueRef ZigLLVMBuildXorReduce(LLVMBuilderRef B, LLVMValueRef Val);