From 2f599b655b81004f101773b3b35dc112c0d84b72 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 16 Aug 2021 01:11:10 -0700 Subject: [PATCH] update src/ to LLVM 13 rc1 API --- lib/std/target.zig | 7 + src/clang.zig | 79 +++++- src/codegen/llvm.zig | 3 + src/codegen/llvm/bindings.zig | 2 + src/stage1/codegen.cpp | 39 +-- src/stage1/target.cpp | 8 +- src/target.zig | 5 + src/zig_clang.cpp | 514 ++++++++++++++++++++++------------ src/zig_clang.h | 79 +++++- src/zig_llvm.cpp | 79 +----- src/zig_llvm.h | 28 +- 11 files changed, 542 insertions(+), 301 deletions(-) diff --git a/lib/std/target.zig b/lib/std/target.zig index 69800c9f8b..a5a82cbe09 100644 --- a/lib/std/target.zig +++ b/lib/std/target.zig @@ -464,6 +464,7 @@ pub const Target = struct { musl, musleabi, musleabihf, + muslx32, msvc, itanium, cygnus, @@ -758,6 +759,7 @@ pub const Target = struct { bpfeb, csky, hexagon, + m68k, mips, mipsel, mips64, @@ -900,6 +902,7 @@ pub const Target = struct { .arm => ._ARM, .armeb => ._ARM, .hexagon => ._HEXAGON, + .m68k => ._68K, .le32 => ._NONE, .mips => ._MIPS, .mipsel => ._MIPS_RS3_LE, @@ -960,6 +963,7 @@ pub const Target = struct { .arm => .ARM, .armeb => .Unknown, .hexagon => .Unknown, + .m68k => .Unknown, .le32 => .Unknown, .mips => .Unknown, .mipsel => .Unknown, @@ -1063,6 +1067,7 @@ pub const Target = struct { .armeb, .aarch64_be, .bpfeb, + .m68k, .mips, .mips64, .powerpc, @@ -1089,6 +1094,7 @@ pub const Target = struct { .armeb, .csky, .hexagon, + .m68k, .le32, .mips, .mipsel, @@ -1587,6 +1593,7 @@ pub const Target = struct { .arc, .csky, .hexagon, + .m68k, .msp430, .r600, .amdgcn, diff --git a/src/clang.zig b/src/clang.zig index 1254a505f4..430c9093f2 100644 --- a/src/clang.zig +++ b/src/clang.zig @@ -1168,13 +1168,16 @@ const StmtClass = enum(c_int) { IndirectGotoStmtClass, MSDependentExistsStmtClass, NullStmtClass, + OMPCanonicalLoopClass, OMPAtomicDirectiveClass, OMPBarrierDirectiveClass, OMPCancelDirectiveClass, OMPCancellationPointDirectiveClass, OMPCriticalDirectiveClass, OMPDepobjDirectiveClass, + OMPDispatchDirectiveClass, OMPFlushDirectiveClass, + OMPInteropDirectiveClass, OMPDistributeDirectiveClass, OMPDistributeParallelForDirectiveClass, OMPDistributeParallelForSimdDirectiveClass, @@ -1200,6 +1203,9 @@ const StmtClass = enum(c_int) { OMPTeamsDistributeParallelForDirectiveClass, OMPTeamsDistributeParallelForSimdDirectiveClass, OMPTeamsDistributeSimdDirectiveClass, + OMPTileDirectiveClass, + OMPUnrollDirectiveClass, + OMPMaskedDirectiveClass, OMPMasterDirectiveClass, OMPOrderedDirectiveClass, OMPParallelDirectiveClass, @@ -1348,6 +1354,7 @@ const StmtClass = enum(c_int) { PseudoObjectExprClass, RecoveryExprClass, RequiresExprClass, + SYCLUniqueStableNameExprClass, ShuffleVectorExprClass, SizeOfPackExprClass, SourceLocExprClass, @@ -1390,6 +1397,7 @@ pub const CK = enum(c_int) { PointerToIntegral, PointerToBoolean, ToVoid, + MatrixCast, VectorSplat, IntegralCast, IntegralToBoolean, @@ -1445,6 +1453,8 @@ pub const DeclKind = enum(c_int) { Import, LifetimeExtendedTemporary, LinkageSpec, + Using, + UsingEnum, Label, Namespace, NamespaceAlias, @@ -1473,7 +1483,7 @@ pub const DeclKind = enum(c_int) { TypeAlias, Typedef, UnresolvedUsingTypename, - Using, + UnresolvedUsingIfExists, UsingDirective, UsingPack, UsingShadow, @@ -1615,6 +1625,72 @@ pub const BuiltinTypeKind = enum(c_int) { SveBool, VectorQuad, VectorPair, + RvvInt8mf8, + RvvInt8mf4, + RvvInt8mf2, + RvvInt8m1, + RvvInt8m2, + RvvInt8m4, + RvvInt8m8, + RvvUint8mf8, + RvvUint8mf4, + RvvUint8mf2, + RvvUint8m1, + RvvUint8m2, + RvvUint8m4, + RvvUint8m8, + RvvInt16mf4, + RvvInt16mf2, + RvvInt16m1, + RvvInt16m2, + RvvInt16m4, + RvvInt16m8, + RvvUint16mf4, + RvvUint16mf2, + RvvUint16m1, + RvvUint16m2, + RvvUint16m4, + RvvUint16m8, + RvvInt32mf2, + RvvInt32m1, + RvvInt32m2, + RvvInt32m4, + RvvInt32m8, + RvvUint32mf2, + RvvUint32m1, + RvvUint32m2, + RvvUint32m4, + RvvUint32m8, + RvvInt64m1, + RvvInt64m2, + RvvInt64m4, + RvvInt64m8, + RvvUint64m1, + RvvUint64m2, + RvvUint64m4, + RvvUint64m8, + RvvFloat16mf4, + RvvFloat16mf2, + RvvFloat16m1, + RvvFloat16m2, + RvvFloat16m4, + RvvFloat16m8, + RvvFloat32mf2, + RvvFloat32m1, + RvvFloat32m2, + RvvFloat32m4, + RvvFloat32m8, + RvvFloat64m1, + RvvFloat64m2, + RvvFloat64m4, + RvvFloat64m8, + RvvBool1, + RvvBool2, + RvvBool4, + RvvBool8, + RvvBool16, + RvvBool32, + RvvBool64, Void, Bool, Char_U, @@ -1705,6 +1781,7 @@ pub const CallingConv = enum(c_int) { SpirFunction, OpenCLKernel, Swift, + SwiftAsync, PreserveMost, PreserveAll, AArch64VectorCall, diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 4f9a24f80c..2b678b0a69 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -31,6 +31,7 @@ pub fn targetTriple(allocator: *Allocator, target: std.Target) ![:0]u8 { .bpfeb => "bpfeb", .csky => "csky", .hexagon => "hexagon", + .m68k => "m68k", .mips => "mips", .mipsel => "mipsel", .mips64 => "mips64", @@ -140,6 +141,7 @@ pub fn targetTriple(allocator: *Allocator, target: std.Target) ![:0]u8 { .musl => "musl", .musleabi => "musleabi", .musleabihf => "musleabihf", + .muslx32 => "muslx32", .msvc => "msvc", .itanium => "itanium", .cygnus => "cygnus", @@ -1463,6 +1465,7 @@ pub const FuncGen = struct { llvm.Bool.fromBool(is_volatile), .False, .ATT, + .False, ); return self.builder.buildCall( asm_fn, diff --git a/src/codegen/llvm/bindings.zig b/src/codegen/llvm/bindings.zig index da02e56ac8..fc97dfb81f 100644 --- a/src/codegen/llvm/bindings.zig +++ b/src/codegen/llvm/bindings.zig @@ -259,6 +259,7 @@ extern fn LLVMGetInlineAsm( HasSideEffects: Bool, IsAlignStack: Bool, Dialect: InlineAsmDialect, + CanThrow: Bool, ) *const Value; pub const functionType = LLVMFunctionType; @@ -840,6 +841,7 @@ pub const ArchType = enum(c_int) { bpfeb, csky, hexagon, + m68k, mips, mipsel, mips64, diff --git a/src/stage1/codegen.cpp b/src/stage1/codegen.cpp index 359af18e82..063671b1bf 100644 --- a/src/stage1/codegen.cpp +++ b/src/stage1/codegen.cpp @@ -3953,7 +3953,7 @@ static LLVMValueRef gen_valgrind_client_request(CodeGen *g, LLVMValueRef default input_and_output_count, false); LLVMValueRef asm_fn = LLVMGetInlineAsm(function_type, buf_ptr(asm_template), buf_len(asm_template), buf_ptr(asm_constraints), buf_len(asm_constraints), asm_has_side_effects, asm_is_alignstack, - LLVMInlineAsmDialectATT); + LLVMInlineAsmDialectATT, false); return LLVMBuildCall(g->builder, asm_fn, param_values, input_and_output_count, ""); } } @@ -5064,7 +5064,7 @@ static LLVMValueRef ir_render_asm_gen(CodeGen *g, Stage1Air *executable, Stage1A bool is_volatile = instruction->has_side_effects || (asm_expr->output_list.length == 0); LLVMValueRef asm_fn = LLVMGetInlineAsm(function_type, buf_ptr(&llvm_template), buf_len(&llvm_template), - buf_ptr(&constraint_buf), buf_len(&constraint_buf), is_volatile, false, LLVMInlineAsmDialectATT); + buf_ptr(&constraint_buf), buf_len(&constraint_buf), is_volatile, false, LLVMInlineAsmDialectATT, false); LLVMValueRef built_call = LLVMBuildCall(g->builder, asm_fn, param_values, (unsigned)input_and_output_count, ""); heap::c_allocator.deallocate(param_values, input_and_output_count); @@ -5606,21 +5606,21 @@ static LLVMAtomicOrdering to_LLVMAtomicOrdering(AtomicOrder atomic_order) { zig_unreachable(); } -static enum ZigLLVM_AtomicRMWBinOp to_ZigLLVMAtomicRMWBinOp(AtomicRmwOp op, bool is_signed, bool is_float) { +static LLVMAtomicRMWBinOp to_LLVMAtomicRMWBinOp(AtomicRmwOp op, bool is_signed, bool is_float) { switch (op) { - case AtomicRmwOp_xchg: return ZigLLVMAtomicRMWBinOpXchg; + case AtomicRmwOp_xchg: return LLVMAtomicRMWBinOpXchg; case AtomicRmwOp_add: - return is_float ? ZigLLVMAtomicRMWBinOpFAdd : ZigLLVMAtomicRMWBinOpAdd; + return is_float ? LLVMAtomicRMWBinOpFAdd : LLVMAtomicRMWBinOpAdd; case AtomicRmwOp_sub: - return is_float ? ZigLLVMAtomicRMWBinOpFSub : ZigLLVMAtomicRMWBinOpSub; - case AtomicRmwOp_and: return ZigLLVMAtomicRMWBinOpAnd; - case AtomicRmwOp_nand: return ZigLLVMAtomicRMWBinOpNand; - case AtomicRmwOp_or: return ZigLLVMAtomicRMWBinOpOr; - case AtomicRmwOp_xor: return ZigLLVMAtomicRMWBinOpXor; + return is_float ? LLVMAtomicRMWBinOpFSub : LLVMAtomicRMWBinOpSub; + case AtomicRmwOp_and: return LLVMAtomicRMWBinOpAnd; + case AtomicRmwOp_nand: return LLVMAtomicRMWBinOpNand; + case AtomicRmwOp_or: return LLVMAtomicRMWBinOpOr; + case AtomicRmwOp_xor: return LLVMAtomicRMWBinOpXor; case AtomicRmwOp_max: - return is_signed ? ZigLLVMAtomicRMWBinOpMax : ZigLLVMAtomicRMWBinOpUMax; + return is_signed ? LLVMAtomicRMWBinOpMax : LLVMAtomicRMWBinOpUMax; case AtomicRmwOp_min: - return is_signed ? ZigLLVMAtomicRMWBinOpMin : ZigLLVMAtomicRMWBinOpUMin; + return is_signed ? LLVMAtomicRMWBinOpMin : LLVMAtomicRMWBinOpUMin; } zig_unreachable(); } @@ -5679,8 +5679,9 @@ static LLVMValueRef ir_render_cmpxchg(CodeGen *g, Stage1Air *executable, Stage1A LLVMAtomicOrdering success_order = to_LLVMAtomicOrdering(instruction->success_order); LLVMAtomicOrdering failure_order = to_LLVMAtomicOrdering(instruction->failure_order); - LLVMValueRef result_val = ZigLLVMBuildCmpXchg(g->builder, ptr_val, cmp_val, new_val, - success_order, failure_order, instruction->is_weak); + LLVMValueRef result_val = LLVMBuildAtomicCmpXchg(g->builder, ptr_val, cmp_val, new_val, + success_order, failure_order, g->is_single_threaded); + LLVMSetWeak(result_val, instruction->is_weak); ZigType *optional_type = instruction->base.value->type; assert(optional_type->id == ZigTypeIdOptional); @@ -6446,13 +6447,13 @@ static LLVMValueRef ir_render_atomic_rmw(CodeGen *g, Stage1Air *executable, } else { is_signed = false; } - enum ZigLLVM_AtomicRMWBinOp op = to_ZigLLVMAtomicRMWBinOp(instruction->op, is_signed, is_float); + LLVMAtomicRMWBinOp op = to_LLVMAtomicRMWBinOp(instruction->op, is_signed, is_float); LLVMAtomicOrdering ordering = to_LLVMAtomicOrdering(instruction->ordering); LLVMValueRef ptr = ir_llvm_value(g, instruction->ptr); LLVMValueRef operand = ir_llvm_value(g, instruction->operand); LLVMTypeRef actual_abi_type = get_atomic_abi_type(g, instruction->ptr, - op == ZigLLVMAtomicRMWBinOpXchg); + op == LLVMAtomicRMWBinOpXchg); if (actual_abi_type != nullptr) { // operand needs widening and truncating or bitcasting. LLVMValueRef casted_ptr = LLVMBuildBitCast(g->builder, ptr, @@ -6465,7 +6466,7 @@ static LLVMValueRef ir_render_atomic_rmw(CodeGen *g, Stage1Air *executable, } else { casted_operand = LLVMBuildZExt(g->builder, operand, actual_abi_type, ""); } - LLVMValueRef uncasted_result = ZigLLVMBuildAtomicRMW(g->builder, op, casted_ptr, casted_operand, ordering, + LLVMValueRef uncasted_result = LLVMBuildAtomicRMW(g->builder, op, casted_ptr, casted_operand, ordering, g->is_single_threaded); if (is_float) { 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, } if (get_codegen_ptr_type_bail(g, operand_type) == nullptr) { - return ZigLLVMBuildAtomicRMW(g->builder, op, ptr, operand, ordering, g->is_single_threaded); + return LLVMBuildAtomicRMW(g->builder, op, ptr, operand, ordering, g->is_single_threaded); } // it's a pointer but we need to treat it as an int LLVMValueRef casted_ptr = LLVMBuildBitCast(g->builder, ptr, LLVMPointerType(g->builtin_types.entry_usize->llvm_type, 0), ""); LLVMValueRef casted_operand = LLVMBuildPtrToInt(g->builder, operand, g->builtin_types.entry_usize->llvm_type, ""); - LLVMValueRef uncasted_result = ZigLLVMBuildAtomicRMW(g->builder, op, casted_ptr, casted_operand, ordering, + LLVMValueRef uncasted_result = LLVMBuildAtomicRMW(g->builder, op, casted_ptr, casted_operand, ordering, g->is_single_threaded); return LLVMBuildIntToPtr(g->builder, uncasted_result, get_llvm_type(g, operand_type), ""); } diff --git a/src/stage1/target.cpp b/src/stage1/target.cpp index 6594eb57d5..9c95be3d5a 100644 --- a/src/stage1/target.cpp +++ b/src/stage1/target.cpp @@ -25,6 +25,7 @@ static const ZigLLVM_ArchType arch_list[] = { ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian) ZigLLVM_csky, // CSKY: csky ZigLLVM_hexagon, // Hexagon: hexagon + ZigLLVM_m68k, // M68k: Motorola 680x0 family ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el ZigLLVM_mips64, // MIPS64: mips64, mips64r6, mipsn32, mipsn32r6 @@ -147,6 +148,7 @@ static const ZigLLVM_EnvironmentType abi_list[] = { ZigLLVM_Musl, ZigLLVM_MuslEABI, ZigLLVM_MuslEABIHF, + ZigLLVM_MuslX32, ZigLLVM_MSVC, ZigLLVM_Itanium, @@ -497,6 +499,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) { case ZigLLVM_arm: case ZigLLVM_armeb: case ZigLLVM_hexagon: + case ZigLLVM_m68k: case ZigLLVM_le32: case ZigLLVM_mips: case ZigLLVM_mipsel: @@ -564,6 +567,7 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) { case ZigLLVM_arm: case ZigLLVM_armeb: case ZigLLVM_hexagon: + case ZigLLVM_m68k: case ZigLLVM_le32: case ZigLLVM_mips: case ZigLLVM_mipsel: @@ -798,6 +802,8 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) { case ZigLLVM_aarch64_32: case ZigLLVM_riscv32: case ZigLLVM_riscv64: + case ZigLLVM_m68k: + case ZigLLVM_mips: case ZigLLVM_mipsel: case ZigLLVM_ppc: case ZigLLVM_ppcle: @@ -824,7 +830,6 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) { case ZigLLVM_kalimba: case ZigLLVM_le32: case ZigLLVM_le64: - case ZigLLVM_mips: case ZigLLVM_mips64: case ZigLLVM_mips64el: case ZigLLVM_msp430: @@ -873,6 +878,7 @@ bool target_is_arm(const ZigTarget *target) { case ZigLLVM_bpfel: case ZigLLVM_csky: case ZigLLVM_hexagon: + case ZigLLVM_m68k: case ZigLLVM_lanai: case ZigLLVM_hsail: case ZigLLVM_hsail64: diff --git a/src/target.zig b/src/target.zig index 06483d68ff..0958f1d00f 100644 --- a/src/target.zig +++ b/src/target.zig @@ -34,6 +34,8 @@ pub const available_libcs = [_]ArchOsAbi{ .{ .arch = .i386, .os = .linux, .abi = .gnu }, .{ .arch = .i386, .os = .linux, .abi = .musl }, .{ .arch = .i386, .os = .windows, .abi = .gnu }, + .{ .arch = .m68k, .os = .linux, .abi = .gnu }, + .{ .arch = .m68k, .os = .linux, .abi = .musl }, .{ .arch = .mips64el, .os = .linux, .abi = .gnuabi64 }, .{ .arch = .mips64el, .os = .linux, .abi = .gnuabin32 }, .{ .arch = .mips64el, .os = .linux, .abi = .musl }, @@ -83,6 +85,7 @@ pub fn libCGenericName(target: std.Target) [:0]const u8 { .musl, .musleabi, .musleabihf, + .muslx32, .none, => return "musl", .code16, @@ -186,6 +189,7 @@ pub fn hasLlvmSupport(target: std.Target) bool { .bpfeb, .csky, .hexagon, + .m68k, .mips, .mipsel, .mips64, @@ -295,6 +299,7 @@ pub fn archToLLVM(arch_tag: std.Target.Cpu.Arch) llvm.ArchType { .bpfeb => .bpfeb, .csky => .csky, .hexagon => .hexagon, + .m68k => .m68k, .mips => .mips, .mipsel => .mipsel, .mips64 => .mips64, diff --git a/src/zig_clang.cpp b/src/zig_clang.cpp index 6611585f68..98d9259e0d 100644 --- a/src/zig_clang.cpp +++ b/src/zig_clang.cpp @@ -164,6 +164,10 @@ void ZigClang_detect_enum_CK(clang::CastKind x) { case clang::CK_DerivedToBase: case clang::CK_DerivedToBaseMemberPointer: case clang::CK_Dynamic: + case clang::CK_FixedPointCast: + case clang::CK_FixedPointToBoolean: + case clang::CK_FixedPointToFloating: + case clang::CK_FixedPointToIntegral: case clang::CK_FloatingCast: case clang::CK_FloatingComplexCast: case clang::CK_FloatingComplexToBoolean: @@ -171,6 +175,7 @@ void ZigClang_detect_enum_CK(clang::CastKind x) { case clang::CK_FloatingComplexToReal: case clang::CK_FloatingRealToComplex: case clang::CK_FloatingToBoolean: + case clang::CK_FloatingToFixedPoint: case clang::CK_FloatingToIntegral: case clang::CK_FunctionToPointerDecay: case clang::CK_IntToOCLSampler: @@ -181,13 +186,13 @@ void ZigClang_detect_enum_CK(clang::CastKind x) { case clang::CK_IntegralComplexToReal: case clang::CK_IntegralRealToComplex: case clang::CK_IntegralToBoolean: + case clang::CK_IntegralToFixedPoint: case clang::CK_IntegralToFloating: case clang::CK_IntegralToPointer: - case clang::CK_FloatingToFixedPoint: - case clang::CK_FixedPointToFloating: case clang::CK_LValueBitCast: - case clang::CK_LValueToRValueBitCast: case clang::CK_LValueToRValue: + case clang::CK_LValueToRValueBitCast: + case clang::CK_MatrixCast: case clang::CK_MemberPointerToBoolean: case clang::CK_NoOp: case clang::CK_NonAtomicToAtomic: @@ -203,10 +208,6 @@ void ZigClang_detect_enum_CK(clang::CastKind x) { case clang::CK_UserDefinedConversion: case clang::CK_VectorSplat: case clang::CK_ZeroToOCLOpaqueType: - case clang::CK_FixedPointCast: - case clang::CK_FixedPointToIntegral: - case clang::CK_IntegralToFixedPoint: - case clang::CK_FixedPointToBoolean: break; } }; @@ -236,6 +237,7 @@ static_assert((clang::CastKind)ZigClangCK_IntegralToPointer == clang::CK_Integra static_assert((clang::CastKind)ZigClangCK_PointerToIntegral == clang::CK_PointerToIntegral, ""); static_assert((clang::CastKind)ZigClangCK_PointerToBoolean == clang::CK_PointerToBoolean, ""); static_assert((clang::CastKind)ZigClangCK_ToVoid == clang::CK_ToVoid, ""); +static_assert((clang::CastKind)ZigClangCK_MatrixCast == clang::CK_MatrixCast, ""); static_assert((clang::CastKind)ZigClangCK_VectorSplat == clang::CK_VectorSplat, ""); static_assert((clang::CastKind)ZigClangCK_IntegralCast == clang::CK_IntegralCast, ""); static_assert((clang::CastKind)ZigClangCK_IntegralToBoolean == clang::CK_IntegralToBoolean, ""); @@ -411,13 +413,16 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) { case ZigClangStmt_IndirectGotoStmtClass: case ZigClangStmt_MSDependentExistsStmtClass: case ZigClangStmt_NullStmtClass: + case ZigClangStmt_OMPCanonicalLoopClass: case ZigClangStmt_OMPAtomicDirectiveClass: case ZigClangStmt_OMPBarrierDirectiveClass: case ZigClangStmt_OMPCancelDirectiveClass: case ZigClangStmt_OMPCancellationPointDirectiveClass: case ZigClangStmt_OMPCriticalDirectiveClass: case ZigClangStmt_OMPDepobjDirectiveClass: + case ZigClangStmt_OMPDispatchDirectiveClass: case ZigClangStmt_OMPFlushDirectiveClass: + case ZigClangStmt_OMPInteropDirectiveClass: case ZigClangStmt_OMPDistributeDirectiveClass: case ZigClangStmt_OMPDistributeParallelForDirectiveClass: case ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass: @@ -443,6 +448,9 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) { case ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass: case ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass: case ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass: + case ZigClangStmt_OMPTileDirectiveClass: + case ZigClangStmt_OMPUnrollDirectiveClass: + case ZigClangStmt_OMPMaskedDirectiveClass: case ZigClangStmt_OMPMasterDirectiveClass: case ZigClangStmt_OMPOrderedDirectiveClass: case ZigClangStmt_OMPParallelDirectiveClass: @@ -591,6 +599,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) { case ZigClangStmt_PseudoObjectExprClass: case ZigClangStmt_RecoveryExprClass: case ZigClangStmt_RequiresExprClass: + case ZigClangStmt_SYCLUniqueStableNameExprClass: case ZigClangStmt_ShuffleVectorExprClass: case ZigClangStmt_SizeOfPackExprClass: case ZigClangStmt_SourceLocExprClass: @@ -629,13 +638,16 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_IfStmtClass == clang::Stmt::I static_assert((clang::Stmt::StmtClass)ZigClangStmt_IndirectGotoStmtClass == clang::Stmt::IndirectGotoStmtClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSDependentExistsStmtClass == clang::Stmt::MSDependentExistsStmtClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_NullStmtClass == clang::Stmt::NullStmtClass, ""); +static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCanonicalLoopClass == clang::Stmt::OMPCanonicalLoopClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPAtomicDirectiveClass == clang::Stmt::OMPAtomicDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPBarrierDirectiveClass == clang::Stmt::OMPBarrierDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancelDirectiveClass == clang::Stmt::OMPCancelDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancellationPointDirectiveClass == clang::Stmt::OMPCancellationPointDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCriticalDirectiveClass == clang::Stmt::OMPCriticalDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDepobjDirectiveClass == clang::Stmt::OMPDepobjDirectiveClass, ""); +static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDispatchDirectiveClass == clang::Stmt::OMPDispatchDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPFlushDirectiveClass == clang::Stmt::OMPFlushDirectiveClass, ""); +static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPInteropDirectiveClass == clang::Stmt::OMPInteropDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeDirectiveClass == clang::Stmt::OMPDistributeDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeParallelForDirectiveClass == clang::Stmt::OMPDistributeParallelForDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPDistributeParallelForSimdDirectiveClass, ""); @@ -661,6 +673,9 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeDirectiveCl static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeSimdDirectiveClass, ""); +static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTileDirectiveClass == clang::Stmt::OMPTileDirectiveClass, ""); +static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPUnrollDirectiveClass == clang::Stmt::OMPUnrollDirectiveClass, ""); +static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedDirectiveClass == clang::Stmt::OMPMaskedDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == clang::Stmt::OMPMasterDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPOrderedDirectiveClass == clang::Stmt::OMPOrderedDirectiveClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelDirectiveClass == clang::Stmt::OMPParallelDirectiveClass, ""); @@ -809,6 +824,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_PredefinedExprClass == clang: static_assert((clang::Stmt::StmtClass)ZigClangStmt_PseudoObjectExprClass == clang::Stmt::PseudoObjectExprClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_RecoveryExprClass == clang::Stmt::RecoveryExprClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_RequiresExprClass == clang::Stmt::RequiresExprClass, ""); +static_assert((clang::Stmt::StmtClass)ZigClangStmt_SYCLUniqueStableNameExprClass == clang::Stmt::SYCLUniqueStableNameExprClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_ShuffleVectorExprClass == clang::Stmt::ShuffleVectorExprClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_SizeOfPackExprClass == clang::Stmt::SizeOfPackExprClass, ""); static_assert((clang::Stmt::StmtClass)ZigClangStmt_SourceLocExprClass == clang::Stmt::SourceLocExprClass, ""); @@ -876,6 +892,8 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) { case clang::Decl::Import: case clang::Decl::LifetimeExtendedTemporary: case clang::Decl::LinkageSpec: + case clang::Decl::Using: + case clang::Decl::UsingEnum: case clang::Decl::Label: case clang::Decl::Namespace: case clang::Decl::NamespaceAlias: @@ -904,7 +922,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) { case clang::Decl::TypeAlias: case clang::Decl::Typedef: case clang::Decl::UnresolvedUsingTypename: - case clang::Decl::Using: + case clang::Decl::UnresolvedUsingIfExists: case clang::Decl::UsingDirective: case clang::Decl::UsingPack: case clang::Decl::UsingShadow: @@ -961,6 +979,8 @@ static_assert((clang::Decl::Kind)ZigClangDeclFriendTemplate == clang::Decl::Frie static_assert((clang::Decl::Kind)ZigClangDeclImport == clang::Decl::Import, ""); static_assert((clang::Decl::Kind)ZigClangDeclLifetimeExtendedTemporary == clang::Decl::LifetimeExtendedTemporary, ""); static_assert((clang::Decl::Kind)ZigClangDeclLinkageSpec == clang::Decl::LinkageSpec, ""); +static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, ""); +static_assert((clang::Decl::Kind)ZigClangDeclUsingEnum == clang::Decl::UsingEnum, ""); static_assert((clang::Decl::Kind)ZigClangDeclLabel == clang::Decl::Label, ""); static_assert((clang::Decl::Kind)ZigClangDeclNamespace == clang::Decl::Namespace, ""); static_assert((clang::Decl::Kind)ZigClangDeclNamespaceAlias == clang::Decl::NamespaceAlias, ""); @@ -989,8 +1009,8 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCTypeParam == clang::Decl::ObjCT static_assert((clang::Decl::Kind)ZigClangDeclTypeAlias == clang::Decl::TypeAlias, ""); static_assert((clang::Decl::Kind)ZigClangDeclTypedef == clang::Decl::Typedef, ""); static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingTypename == clang::Decl::UnresolvedUsingTypename, ""); +static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingIfExists == clang::Decl::UnresolvedUsingIfExists, ""); static_assert((clang::Decl::Kind)ZigClangDeclOMPAllocate == clang::Decl::OMPAllocate, ""); -static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, ""); static_assert((clang::Decl::Kind)ZigClangDeclUsingDirective == clang::Decl::UsingDirective, ""); static_assert((clang::Decl::Kind)ZigClangDeclUsingPack == clang::Decl::UsingPack, ""); static_assert((clang::Decl::Kind)ZigClangDeclUsingShadow == clang::Decl::UsingShadow, ""); @@ -1032,177 +1052,243 @@ static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::Tra void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) { switch (x) { - case clang::BuiltinType::OCLImage1dRO: - case clang::BuiltinType::OCLImage1dArrayRO: - case clang::BuiltinType::OCLImage1dBufferRO: - case clang::BuiltinType::OCLImage2dRO: - case clang::BuiltinType::OCLImage2dArrayRO: - case clang::BuiltinType::OCLImage2dDepthRO: - case clang::BuiltinType::OCLImage2dArrayDepthRO: - case clang::BuiltinType::OCLImage2dMSAARO: - case clang::BuiltinType::OCLImage2dArrayMSAARO: - case clang::BuiltinType::OCLImage2dMSAADepthRO: - case clang::BuiltinType::OCLImage2dArrayMSAADepthRO: - case clang::BuiltinType::OCLImage3dRO: - case clang::BuiltinType::OCLImage1dWO: - case clang::BuiltinType::OCLImage1dArrayWO: - case clang::BuiltinType::OCLImage1dBufferWO: - case clang::BuiltinType::OCLImage2dWO: - case clang::BuiltinType::OCLImage2dArrayWO: - case clang::BuiltinType::OCLImage2dDepthWO: - case clang::BuiltinType::OCLImage2dArrayDepthWO: - case clang::BuiltinType::OCLImage2dMSAAWO: - case clang::BuiltinType::OCLImage2dArrayMSAAWO: - case clang::BuiltinType::OCLImage2dMSAADepthWO: - case clang::BuiltinType::OCLImage2dArrayMSAADepthWO: - case clang::BuiltinType::OCLImage3dWO: - case clang::BuiltinType::OCLImage1dRW: - case clang::BuiltinType::OCLImage1dArrayRW: - case clang::BuiltinType::OCLImage1dBufferRW: - case clang::BuiltinType::OCLImage2dRW: - case clang::BuiltinType::OCLImage2dArrayRW: - case clang::BuiltinType::OCLImage2dDepthRW: - case clang::BuiltinType::OCLImage2dArrayDepthRW: - case clang::BuiltinType::OCLImage2dMSAARW: - case clang::BuiltinType::OCLImage2dArrayMSAARW: - case clang::BuiltinType::OCLImage2dMSAADepthRW: - case clang::BuiltinType::OCLImage2dArrayMSAADepthRW: - case clang::BuiltinType::OCLImage3dRW: - case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload: - case clang::BuiltinType::OCLIntelSubgroupAVCImePayload: - case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload: - case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload: - case clang::BuiltinType::OCLIntelSubgroupAVCMceResult: - case clang::BuiltinType::OCLIntelSubgroupAVCImeResult: - case clang::BuiltinType::OCLIntelSubgroupAVCRefResult: - case clang::BuiltinType::OCLIntelSubgroupAVCSicResult: - case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout: - case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout: - case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin: - case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin: - case clang::BuiltinType::SveInt8: - case clang::BuiltinType::SveInt16: - case clang::BuiltinType::SveInt32: - case clang::BuiltinType::SveInt64: - case clang::BuiltinType::SveUint8: - case clang::BuiltinType::SveUint16: - case clang::BuiltinType::SveUint32: - case clang::BuiltinType::SveUint64: - case clang::BuiltinType::SveFloat16: - case clang::BuiltinType::SveFloat32: - case clang::BuiltinType::SveFloat64: - case clang::BuiltinType::SveBFloat16: - case clang::BuiltinType::SveInt8x2: - case clang::BuiltinType::SveInt16x2: - case clang::BuiltinType::SveInt32x2: - case clang::BuiltinType::SveInt64x2: - case clang::BuiltinType::SveUint8x2: - case clang::BuiltinType::SveUint16x2: - case clang::BuiltinType::SveUint32x2: - case clang::BuiltinType::SveUint64x2: - case clang::BuiltinType::SveFloat16x2: - case clang::BuiltinType::SveFloat32x2: - case clang::BuiltinType::SveFloat64x2: - case clang::BuiltinType::SveBFloat16x2: - case clang::BuiltinType::SveInt8x3: - case clang::BuiltinType::SveInt16x3: - case clang::BuiltinType::SveInt32x3: - case clang::BuiltinType::SveInt64x3: - case clang::BuiltinType::SveUint8x3: - case clang::BuiltinType::SveUint16x3: - case clang::BuiltinType::SveUint32x3: - case clang::BuiltinType::SveUint64x3: - case clang::BuiltinType::SveFloat16x3: - case clang::BuiltinType::SveFloat32x3: - case clang::BuiltinType::SveFloat64x3: - case clang::BuiltinType::SveBFloat16x3: - case clang::BuiltinType::SveInt8x4: - case clang::BuiltinType::SveInt16x4: - case clang::BuiltinType::SveInt32x4: - case clang::BuiltinType::SveInt64x4: - case clang::BuiltinType::SveUint8x4: - case clang::BuiltinType::SveUint16x4: - case clang::BuiltinType::SveUint32x4: - case clang::BuiltinType::SveUint64x4: - case clang::BuiltinType::SveFloat16x4: - case clang::BuiltinType::SveFloat32x4: - case clang::BuiltinType::SveFloat64x4: - case clang::BuiltinType::SveBFloat16x4: - case clang::BuiltinType::SveBool: - case clang::BuiltinType::VectorQuad: - case clang::BuiltinType::VectorPair: - case clang::BuiltinType::Void: - case clang::BuiltinType::Bool: - case clang::BuiltinType::Char_U: - case clang::BuiltinType::UChar: - case clang::BuiltinType::WChar_U: - case clang::BuiltinType::Char8: - case clang::BuiltinType::Char16: - case clang::BuiltinType::Char32: - case clang::BuiltinType::UShort: - case clang::BuiltinType::UInt: - case clang::BuiltinType::ULong: - case clang::BuiltinType::ULongLong: - case clang::BuiltinType::UInt128: - case clang::BuiltinType::Char_S: - case clang::BuiltinType::SChar: - case clang::BuiltinType::WChar_S: - case clang::BuiltinType::Short: - case clang::BuiltinType::Int: - case clang::BuiltinType::Long: - case clang::BuiltinType::LongLong: - case clang::BuiltinType::Int128: - case clang::BuiltinType::ShortAccum: - case clang::BuiltinType::Accum: - case clang::BuiltinType::LongAccum: - case clang::BuiltinType::UShortAccum: - case clang::BuiltinType::UAccum: - case clang::BuiltinType::ULongAccum: - case clang::BuiltinType::ShortFract: - case clang::BuiltinType::Fract: - case clang::BuiltinType::LongFract: - case clang::BuiltinType::UShortFract: - case clang::BuiltinType::UFract: - case clang::BuiltinType::ULongFract: - case clang::BuiltinType::SatShortAccum: - case clang::BuiltinType::SatAccum: - case clang::BuiltinType::SatLongAccum: - case clang::BuiltinType::SatUShortAccum: - case clang::BuiltinType::SatUAccum: - case clang::BuiltinType::SatULongAccum: - case clang::BuiltinType::SatShortFract: - case clang::BuiltinType::SatFract: - case clang::BuiltinType::SatLongFract: - case clang::BuiltinType::SatUShortFract: - case clang::BuiltinType::SatUFract: - case clang::BuiltinType::SatULongFract: - case clang::BuiltinType::Half: - case clang::BuiltinType::Float: - case clang::BuiltinType::Double: - case clang::BuiltinType::LongDouble: - case clang::BuiltinType::Float16: - case clang::BuiltinType::BFloat16: - case clang::BuiltinType::Float128: - case clang::BuiltinType::NullPtr: - case clang::BuiltinType::ObjCId: - case clang::BuiltinType::ObjCClass: - case clang::BuiltinType::ObjCSel: - case clang::BuiltinType::OCLSampler: - case clang::BuiltinType::OCLEvent: - case clang::BuiltinType::OCLClkEvent: - case clang::BuiltinType::OCLQueue: - case clang::BuiltinType::OCLReserveID: - case clang::BuiltinType::Dependent: - case clang::BuiltinType::Overload: - case clang::BuiltinType::BoundMember: - case clang::BuiltinType::PseudoObject: - case clang::BuiltinType::UnknownAny: - case clang::BuiltinType::BuiltinFn: - case clang::BuiltinType::ARCUnbridgedCast: - case clang::BuiltinType::IncompleteMatrixIdx: - case clang::BuiltinType::OMPArraySection: - case clang::BuiltinType::OMPArrayShaping: - case clang::BuiltinType::OMPIterator: + case ZigClangBuiltinTypeOCLImage1dRO: + case ZigClangBuiltinTypeOCLImage1dArrayRO: + case ZigClangBuiltinTypeOCLImage1dBufferRO: + case ZigClangBuiltinTypeOCLImage2dRO: + case ZigClangBuiltinTypeOCLImage2dArrayRO: + case ZigClangBuiltinTypeOCLImage2dDepthRO: + case ZigClangBuiltinTypeOCLImage2dArrayDepthRO: + case ZigClangBuiltinTypeOCLImage2dMSAARO: + case ZigClangBuiltinTypeOCLImage2dArrayMSAARO: + case ZigClangBuiltinTypeOCLImage2dMSAADepthRO: + case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO: + case ZigClangBuiltinTypeOCLImage3dRO: + case ZigClangBuiltinTypeOCLImage1dWO: + case ZigClangBuiltinTypeOCLImage1dArrayWO: + case ZigClangBuiltinTypeOCLImage1dBufferWO: + case ZigClangBuiltinTypeOCLImage2dWO: + case ZigClangBuiltinTypeOCLImage2dArrayWO: + case ZigClangBuiltinTypeOCLImage2dDepthWO: + case ZigClangBuiltinTypeOCLImage2dArrayDepthWO: + case ZigClangBuiltinTypeOCLImage2dMSAAWO: + case ZigClangBuiltinTypeOCLImage2dArrayMSAAWO: + case ZigClangBuiltinTypeOCLImage2dMSAADepthWO: + case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO: + case ZigClangBuiltinTypeOCLImage3dWO: + case ZigClangBuiltinTypeOCLImage1dRW: + case ZigClangBuiltinTypeOCLImage1dArrayRW: + case ZigClangBuiltinTypeOCLImage1dBufferRW: + case ZigClangBuiltinTypeOCLImage2dRW: + case ZigClangBuiltinTypeOCLImage2dArrayRW: + case ZigClangBuiltinTypeOCLImage2dDepthRW: + case ZigClangBuiltinTypeOCLImage2dArrayDepthRW: + case ZigClangBuiltinTypeOCLImage2dMSAARW: + case ZigClangBuiltinTypeOCLImage2dArrayMSAARW: + case ZigClangBuiltinTypeOCLImage2dMSAADepthRW: + case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW: + case ZigClangBuiltinTypeOCLImage3dRW: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin: + case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin: + case ZigClangBuiltinTypeSveInt8: + case ZigClangBuiltinTypeSveInt16: + case ZigClangBuiltinTypeSveInt32: + case ZigClangBuiltinTypeSveInt64: + case ZigClangBuiltinTypeSveUint8: + case ZigClangBuiltinTypeSveUint16: + case ZigClangBuiltinTypeSveUint32: + case ZigClangBuiltinTypeSveUint64: + case ZigClangBuiltinTypeSveFloat16: + case ZigClangBuiltinTypeSveFloat32: + case ZigClangBuiltinTypeSveFloat64: + case ZigClangBuiltinTypeSveBFloat16: + case ZigClangBuiltinTypeSveInt8x2: + case ZigClangBuiltinTypeSveInt16x2: + case ZigClangBuiltinTypeSveInt32x2: + case ZigClangBuiltinTypeSveInt64x2: + case ZigClangBuiltinTypeSveUint8x2: + case ZigClangBuiltinTypeSveUint16x2: + case ZigClangBuiltinTypeSveUint32x2: + case ZigClangBuiltinTypeSveUint64x2: + case ZigClangBuiltinTypeSveFloat16x2: + case ZigClangBuiltinTypeSveFloat32x2: + case ZigClangBuiltinTypeSveFloat64x2: + case ZigClangBuiltinTypeSveBFloat16x2: + case ZigClangBuiltinTypeSveInt8x3: + case ZigClangBuiltinTypeSveInt16x3: + case ZigClangBuiltinTypeSveInt32x3: + case ZigClangBuiltinTypeSveInt64x3: + case ZigClangBuiltinTypeSveUint8x3: + case ZigClangBuiltinTypeSveUint16x3: + case ZigClangBuiltinTypeSveUint32x3: + case ZigClangBuiltinTypeSveUint64x3: + case ZigClangBuiltinTypeSveFloat16x3: + case ZigClangBuiltinTypeSveFloat32x3: + case ZigClangBuiltinTypeSveFloat64x3: + case ZigClangBuiltinTypeSveBFloat16x3: + case ZigClangBuiltinTypeSveInt8x4: + case ZigClangBuiltinTypeSveInt16x4: + case ZigClangBuiltinTypeSveInt32x4: + case ZigClangBuiltinTypeSveInt64x4: + case ZigClangBuiltinTypeSveUint8x4: + case ZigClangBuiltinTypeSveUint16x4: + case ZigClangBuiltinTypeSveUint32x4: + case ZigClangBuiltinTypeSveUint64x4: + case ZigClangBuiltinTypeSveFloat16x4: + case ZigClangBuiltinTypeSveFloat32x4: + case ZigClangBuiltinTypeSveFloat64x4: + case ZigClangBuiltinTypeSveBFloat16x4: + case ZigClangBuiltinTypeSveBool: + case ZigClangBuiltinTypeVectorQuad: + case ZigClangBuiltinTypeVectorPair: + case ZigClangBuiltinTypeRvvInt8mf8: + case ZigClangBuiltinTypeRvvInt8mf4: + case ZigClangBuiltinTypeRvvInt8mf2: + case ZigClangBuiltinTypeRvvInt8m1: + case ZigClangBuiltinTypeRvvInt8m2: + case ZigClangBuiltinTypeRvvInt8m4: + case ZigClangBuiltinTypeRvvInt8m8: + case ZigClangBuiltinTypeRvvUint8mf8: + case ZigClangBuiltinTypeRvvUint8mf4: + case ZigClangBuiltinTypeRvvUint8mf2: + case ZigClangBuiltinTypeRvvUint8m1: + case ZigClangBuiltinTypeRvvUint8m2: + case ZigClangBuiltinTypeRvvUint8m4: + case ZigClangBuiltinTypeRvvUint8m8: + case ZigClangBuiltinTypeRvvInt16mf4: + case ZigClangBuiltinTypeRvvInt16mf2: + case ZigClangBuiltinTypeRvvInt16m1: + case ZigClangBuiltinTypeRvvInt16m2: + case ZigClangBuiltinTypeRvvInt16m4: + case ZigClangBuiltinTypeRvvInt16m8: + case ZigClangBuiltinTypeRvvUint16mf4: + case ZigClangBuiltinTypeRvvUint16mf2: + case ZigClangBuiltinTypeRvvUint16m1: + case ZigClangBuiltinTypeRvvUint16m2: + case ZigClangBuiltinTypeRvvUint16m4: + case ZigClangBuiltinTypeRvvUint16m8: + case ZigClangBuiltinTypeRvvInt32mf2: + case ZigClangBuiltinTypeRvvInt32m1: + case ZigClangBuiltinTypeRvvInt32m2: + case ZigClangBuiltinTypeRvvInt32m4: + case ZigClangBuiltinTypeRvvInt32m8: + case ZigClangBuiltinTypeRvvUint32mf2: + case ZigClangBuiltinTypeRvvUint32m1: + case ZigClangBuiltinTypeRvvUint32m2: + case ZigClangBuiltinTypeRvvUint32m4: + case ZigClangBuiltinTypeRvvUint32m8: + case ZigClangBuiltinTypeRvvInt64m1: + case ZigClangBuiltinTypeRvvInt64m2: + case ZigClangBuiltinTypeRvvInt64m4: + case ZigClangBuiltinTypeRvvInt64m8: + case ZigClangBuiltinTypeRvvUint64m1: + case ZigClangBuiltinTypeRvvUint64m2: + case ZigClangBuiltinTypeRvvUint64m4: + case ZigClangBuiltinTypeRvvUint64m8: + case ZigClangBuiltinTypeRvvFloat16mf4: + case ZigClangBuiltinTypeRvvFloat16mf2: + case ZigClangBuiltinTypeRvvFloat16m1: + case ZigClangBuiltinTypeRvvFloat16m2: + case ZigClangBuiltinTypeRvvFloat16m4: + case ZigClangBuiltinTypeRvvFloat16m8: + case ZigClangBuiltinTypeRvvFloat32mf2: + case ZigClangBuiltinTypeRvvFloat32m1: + case ZigClangBuiltinTypeRvvFloat32m2: + case ZigClangBuiltinTypeRvvFloat32m4: + case ZigClangBuiltinTypeRvvFloat32m8: + case ZigClangBuiltinTypeRvvFloat64m1: + case ZigClangBuiltinTypeRvvFloat64m2: + case ZigClangBuiltinTypeRvvFloat64m4: + case ZigClangBuiltinTypeRvvFloat64m8: + case ZigClangBuiltinTypeRvvBool1: + case ZigClangBuiltinTypeRvvBool2: + case ZigClangBuiltinTypeRvvBool4: + case ZigClangBuiltinTypeRvvBool8: + case ZigClangBuiltinTypeRvvBool16: + case ZigClangBuiltinTypeRvvBool32: + case ZigClangBuiltinTypeRvvBool64: + case ZigClangBuiltinTypeVoid: + case ZigClangBuiltinTypeBool: + case ZigClangBuiltinTypeChar_U: + case ZigClangBuiltinTypeUChar: + case ZigClangBuiltinTypeWChar_U: + case ZigClangBuiltinTypeChar8: + case ZigClangBuiltinTypeChar16: + case ZigClangBuiltinTypeChar32: + case ZigClangBuiltinTypeUShort: + case ZigClangBuiltinTypeUInt: + case ZigClangBuiltinTypeULong: + case ZigClangBuiltinTypeULongLong: + case ZigClangBuiltinTypeUInt128: + case ZigClangBuiltinTypeChar_S: + case ZigClangBuiltinTypeSChar: + case ZigClangBuiltinTypeWChar_S: + case ZigClangBuiltinTypeShort: + case ZigClangBuiltinTypeInt: + case ZigClangBuiltinTypeLong: + case ZigClangBuiltinTypeLongLong: + case ZigClangBuiltinTypeInt128: + case ZigClangBuiltinTypeShortAccum: + case ZigClangBuiltinTypeAccum: + case ZigClangBuiltinTypeLongAccum: + case ZigClangBuiltinTypeUShortAccum: + case ZigClangBuiltinTypeUAccum: + case ZigClangBuiltinTypeULongAccum: + case ZigClangBuiltinTypeShortFract: + case ZigClangBuiltinTypeFract: + case ZigClangBuiltinTypeLongFract: + case ZigClangBuiltinTypeUShortFract: + case ZigClangBuiltinTypeUFract: + case ZigClangBuiltinTypeULongFract: + case ZigClangBuiltinTypeSatShortAccum: + case ZigClangBuiltinTypeSatAccum: + case ZigClangBuiltinTypeSatLongAccum: + case ZigClangBuiltinTypeSatUShortAccum: + case ZigClangBuiltinTypeSatUAccum: + case ZigClangBuiltinTypeSatULongAccum: + case ZigClangBuiltinTypeSatShortFract: + case ZigClangBuiltinTypeSatFract: + case ZigClangBuiltinTypeSatLongFract: + case ZigClangBuiltinTypeSatUShortFract: + case ZigClangBuiltinTypeSatUFract: + case ZigClangBuiltinTypeSatULongFract: + case ZigClangBuiltinTypeHalf: + case ZigClangBuiltinTypeFloat: + case ZigClangBuiltinTypeDouble: + case ZigClangBuiltinTypeLongDouble: + case ZigClangBuiltinTypeFloat16: + case ZigClangBuiltinTypeBFloat16: + case ZigClangBuiltinTypeFloat128: + case ZigClangBuiltinTypeNullPtr: + case ZigClangBuiltinTypeObjCId: + case ZigClangBuiltinTypeObjCClass: + case ZigClangBuiltinTypeObjCSel: + case ZigClangBuiltinTypeOCLSampler: + case ZigClangBuiltinTypeOCLEvent: + case ZigClangBuiltinTypeOCLClkEvent: + case ZigClangBuiltinTypeOCLQueue: + case ZigClangBuiltinTypeOCLReserveID: + case ZigClangBuiltinTypeDependent: + case ZigClangBuiltinTypeOverload: + case ZigClangBuiltinTypeBoundMember: + case ZigClangBuiltinTypePseudoObject: + case ZigClangBuiltinTypeUnknownAny: + case ZigClangBuiltinTypeBuiltinFn: + case ZigClangBuiltinTypeARCUnbridgedCast: + case ZigClangBuiltinTypeIncompleteMatrixIdx: + case ZigClangBuiltinTypeOMPArraySection: + case ZigClangBuiltinTypeOMPArrayShaping: + case ZigClangBuiltinTypeOMPIterator: break; } } @@ -1306,6 +1392,72 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x4 == clan static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBool == clang::BuiltinType::SveBool, ""); static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorQuad == clang::BuiltinType::VectorQuad, ""); static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorPair == clang::BuiltinType::VectorPair, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf8 == clang::BuiltinType::RvvInt8mf8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf4 == clang::BuiltinType::RvvInt8mf4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf2 == clang::BuiltinType::RvvInt8mf2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8m1 == clang::BuiltinType::RvvInt8m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8m2 == clang::BuiltinType::RvvInt8m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8m4 == clang::BuiltinType::RvvInt8m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8m8 == clang::BuiltinType::RvvInt8m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8mf8 == clang::BuiltinType::RvvUint8mf8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8mf4 == clang::BuiltinType::RvvUint8mf4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8mf2 == clang::BuiltinType::RvvUint8mf2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8m1 == clang::BuiltinType::RvvUint8m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8m2 == clang::BuiltinType::RvvUint8m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8m4 == clang::BuiltinType::RvvUint8m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint8m8 == clang::BuiltinType::RvvUint8m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16mf4 == clang::BuiltinType::RvvInt16mf4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16mf2 == clang::BuiltinType::RvvInt16mf2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16m1 == clang::BuiltinType::RvvInt16m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16m2 == clang::BuiltinType::RvvInt16m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16m4 == clang::BuiltinType::RvvInt16m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt16m8 == clang::BuiltinType::RvvInt16m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16mf4 == clang::BuiltinType::RvvUint16mf4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16mf2 == clang::BuiltinType::RvvUint16mf2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16m1 == clang::BuiltinType::RvvUint16m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16m2 == clang::BuiltinType::RvvUint16m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16m4 == clang::BuiltinType::RvvUint16m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint16m8 == clang::BuiltinType::RvvUint16m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt32mf2 == clang::BuiltinType::RvvInt32mf2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt32m1 == clang::BuiltinType::RvvInt32m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt32m2 == clang::BuiltinType::RvvInt32m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt32m4 == clang::BuiltinType::RvvInt32m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt32m8 == clang::BuiltinType::RvvInt32m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint32mf2 == clang::BuiltinType::RvvUint32mf2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint32m1 == clang::BuiltinType::RvvUint32m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint32m2 == clang::BuiltinType::RvvUint32m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint32m4 == clang::BuiltinType::RvvUint32m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint32m8 == clang::BuiltinType::RvvUint32m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt64m1 == clang::BuiltinType::RvvInt64m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt64m2 == clang::BuiltinType::RvvInt64m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt64m4 == clang::BuiltinType::RvvInt64m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt64m8 == clang::BuiltinType::RvvInt64m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint64m1 == clang::BuiltinType::RvvUint64m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint64m2 == clang::BuiltinType::RvvUint64m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint64m4 == clang::BuiltinType::RvvUint64m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvUint64m8 == clang::BuiltinType::RvvUint64m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16mf4 == clang::BuiltinType::RvvFloat16mf4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16mf2 == clang::BuiltinType::RvvFloat16mf2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16m1 == clang::BuiltinType::RvvFloat16m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16m2 == clang::BuiltinType::RvvFloat16m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16m4 == clang::BuiltinType::RvvFloat16m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat16m8 == clang::BuiltinType::RvvFloat16m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat32mf2 == clang::BuiltinType::RvvFloat32mf2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat32m1 == clang::BuiltinType::RvvFloat32m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat32m2 == clang::BuiltinType::RvvFloat32m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat32m4 == clang::BuiltinType::RvvFloat32m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat32m8 == clang::BuiltinType::RvvFloat32m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat64m1 == clang::BuiltinType::RvvFloat64m1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat64m2 == clang::BuiltinType::RvvFloat64m2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat64m4 == clang::BuiltinType::RvvFloat64m4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvFloat64m8 == clang::BuiltinType::RvvFloat64m8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool1 == clang::BuiltinType::RvvBool1, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool2 == clang::BuiltinType::RvvBool2, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool4 == clang::BuiltinType::RvvBool4, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool8 == clang::BuiltinType::RvvBool8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool16 == clang::BuiltinType::RvvBool16, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool32 == clang::BuiltinType::RvvBool32, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBool64 == clang::BuiltinType::RvvBool64, ""); static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, ""); static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, ""); static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, ""); @@ -1396,6 +1548,7 @@ void ZigClang_detect_enum_CallingConv(clang::CallingConv x) { case clang::CC_SpirFunction: case clang::CC_OpenCLKernel: case clang::CC_Swift: + case clang::CC_SwiftAsync: case clang::CC_PreserveMost: case clang::CC_PreserveAll: case clang::CC_AArch64VectorCall: @@ -1418,6 +1571,7 @@ static_assert((clang::CallingConv)ZigClangCallingConv_IntelOclBicc == clang::CC_ static_assert((clang::CallingConv)ZigClangCallingConv_SpirFunction == clang::CC_SpirFunction, ""); static_assert((clang::CallingConv)ZigClangCallingConv_OpenCLKernel == clang::CC_OpenCLKernel, ""); static_assert((clang::CallingConv)ZigClangCallingConv_Swift == clang::CC_Swift, ""); +static_assert((clang::CallingConv)ZigClangCallingConv_SwiftAsync == clang::CC_SwiftAsync, ""); static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, ""); static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, ""); static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, ""); diff --git a/src/zig_clang.h b/src/zig_clang.h index 0e7a8b2990..19fe81be91 100644 --- a/src/zig_clang.h +++ b/src/zig_clang.h @@ -318,13 +318,16 @@ enum ZigClangStmtClass { ZigClangStmt_IndirectGotoStmtClass, ZigClangStmt_MSDependentExistsStmtClass, ZigClangStmt_NullStmtClass, + ZigClangStmt_OMPCanonicalLoopClass, ZigClangStmt_OMPAtomicDirectiveClass, ZigClangStmt_OMPBarrierDirectiveClass, ZigClangStmt_OMPCancelDirectiveClass, ZigClangStmt_OMPCancellationPointDirectiveClass, ZigClangStmt_OMPCriticalDirectiveClass, ZigClangStmt_OMPDepobjDirectiveClass, + ZigClangStmt_OMPDispatchDirectiveClass, ZigClangStmt_OMPFlushDirectiveClass, + ZigClangStmt_OMPInteropDirectiveClass, ZigClangStmt_OMPDistributeDirectiveClass, ZigClangStmt_OMPDistributeParallelForDirectiveClass, ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass, @@ -350,6 +353,9 @@ enum ZigClangStmtClass { ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass, ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass, ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass, + ZigClangStmt_OMPTileDirectiveClass, + ZigClangStmt_OMPUnrollDirectiveClass, + ZigClangStmt_OMPMaskedDirectiveClass, ZigClangStmt_OMPMasterDirectiveClass, ZigClangStmt_OMPOrderedDirectiveClass, ZigClangStmt_OMPParallelDirectiveClass, @@ -498,6 +504,7 @@ enum ZigClangStmtClass { ZigClangStmt_PseudoObjectExprClass, ZigClangStmt_RecoveryExprClass, ZigClangStmt_RequiresExprClass, + ZigClangStmt_SYCLUniqueStableNameExprClass, ZigClangStmt_ShuffleVectorExprClass, ZigClangStmt_SizeOfPackExprClass, ZigClangStmt_SourceLocExprClass, @@ -540,6 +547,7 @@ enum ZigClangCK { ZigClangCK_PointerToIntegral, ZigClangCK_PointerToBoolean, ZigClangCK_ToVoid, + ZigClangCK_MatrixCast, ZigClangCK_VectorSplat, ZigClangCK_IntegralCast, ZigClangCK_IntegralToBoolean, @@ -595,6 +603,8 @@ enum ZigClangDeclKind { ZigClangDeclImport, ZigClangDeclLifetimeExtendedTemporary, ZigClangDeclLinkageSpec, + ZigClangDeclUsing, + ZigClangDeclUsingEnum, ZigClangDeclLabel, ZigClangDeclNamespace, ZigClangDeclNamespaceAlias, @@ -623,7 +633,7 @@ enum ZigClangDeclKind { ZigClangDeclTypeAlias, ZigClangDeclTypedef, ZigClangDeclUnresolvedUsingTypename, - ZigClangDeclUsing, + ZigClangDeclUnresolvedUsingIfExists, ZigClangDeclUsingDirective, ZigClangDeclUsingPack, ZigClangDeclUsingShadow, @@ -765,6 +775,72 @@ enum ZigClangBuiltinTypeKind { ZigClangBuiltinTypeSveBool, ZigClangBuiltinTypeVectorQuad, ZigClangBuiltinTypeVectorPair, + ZigClangBuiltinTypeRvvInt8mf8, + ZigClangBuiltinTypeRvvInt8mf4, + ZigClangBuiltinTypeRvvInt8mf2, + ZigClangBuiltinTypeRvvInt8m1, + ZigClangBuiltinTypeRvvInt8m2, + ZigClangBuiltinTypeRvvInt8m4, + ZigClangBuiltinTypeRvvInt8m8, + ZigClangBuiltinTypeRvvUint8mf8, + ZigClangBuiltinTypeRvvUint8mf4, + ZigClangBuiltinTypeRvvUint8mf2, + ZigClangBuiltinTypeRvvUint8m1, + ZigClangBuiltinTypeRvvUint8m2, + ZigClangBuiltinTypeRvvUint8m4, + ZigClangBuiltinTypeRvvUint8m8, + ZigClangBuiltinTypeRvvInt16mf4, + ZigClangBuiltinTypeRvvInt16mf2, + ZigClangBuiltinTypeRvvInt16m1, + ZigClangBuiltinTypeRvvInt16m2, + ZigClangBuiltinTypeRvvInt16m4, + ZigClangBuiltinTypeRvvInt16m8, + ZigClangBuiltinTypeRvvUint16mf4, + ZigClangBuiltinTypeRvvUint16mf2, + ZigClangBuiltinTypeRvvUint16m1, + ZigClangBuiltinTypeRvvUint16m2, + ZigClangBuiltinTypeRvvUint16m4, + ZigClangBuiltinTypeRvvUint16m8, + ZigClangBuiltinTypeRvvInt32mf2, + ZigClangBuiltinTypeRvvInt32m1, + ZigClangBuiltinTypeRvvInt32m2, + ZigClangBuiltinTypeRvvInt32m4, + ZigClangBuiltinTypeRvvInt32m8, + ZigClangBuiltinTypeRvvUint32mf2, + ZigClangBuiltinTypeRvvUint32m1, + ZigClangBuiltinTypeRvvUint32m2, + ZigClangBuiltinTypeRvvUint32m4, + ZigClangBuiltinTypeRvvUint32m8, + ZigClangBuiltinTypeRvvInt64m1, + ZigClangBuiltinTypeRvvInt64m2, + ZigClangBuiltinTypeRvvInt64m4, + ZigClangBuiltinTypeRvvInt64m8, + ZigClangBuiltinTypeRvvUint64m1, + ZigClangBuiltinTypeRvvUint64m2, + ZigClangBuiltinTypeRvvUint64m4, + ZigClangBuiltinTypeRvvUint64m8, + ZigClangBuiltinTypeRvvFloat16mf4, + ZigClangBuiltinTypeRvvFloat16mf2, + ZigClangBuiltinTypeRvvFloat16m1, + ZigClangBuiltinTypeRvvFloat16m2, + ZigClangBuiltinTypeRvvFloat16m4, + ZigClangBuiltinTypeRvvFloat16m8, + ZigClangBuiltinTypeRvvFloat32mf2, + ZigClangBuiltinTypeRvvFloat32m1, + ZigClangBuiltinTypeRvvFloat32m2, + ZigClangBuiltinTypeRvvFloat32m4, + ZigClangBuiltinTypeRvvFloat32m8, + ZigClangBuiltinTypeRvvFloat64m1, + ZigClangBuiltinTypeRvvFloat64m2, + ZigClangBuiltinTypeRvvFloat64m4, + ZigClangBuiltinTypeRvvFloat64m8, + ZigClangBuiltinTypeRvvBool1, + ZigClangBuiltinTypeRvvBool2, + ZigClangBuiltinTypeRvvBool4, + ZigClangBuiltinTypeRvvBool8, + ZigClangBuiltinTypeRvvBool16, + ZigClangBuiltinTypeRvvBool32, + ZigClangBuiltinTypeRvvBool64, ZigClangBuiltinTypeVoid, ZigClangBuiltinTypeBool, ZigClangBuiltinTypeChar_U, @@ -855,6 +931,7 @@ enum ZigClangCallingConv { ZigClangCallingConv_SpirFunction, // default for OpenCL functions on SPIR target ZigClangCallingConv_OpenCLKernel, // inferred for OpenCL kernels ZigClangCallingConv_Swift, // __attribute__((swiftcall)) + ZigClangCallingConv_SwiftAsync, // __attribute__((swiftasynccall)) ZigClangCallingConv_PreserveMost, // __attribute__((preserve_most)) ZigClangCallingConv_PreserveAll, // __attribute__((preserve_all)) ZigClangCallingConv_AArch64VectorCall, // __attribute__((aarch64_vector_pcs)) diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index d0bc24ed1b..83f3be3144 100644 --- a/src/zig_llvm.cpp +++ b/src/zig_llvm.cpp @@ -155,10 +155,6 @@ LLVMTargetMachineRef ZigLLVMCreateTargetMachine(LLVMTargetRef T, const char *Tri TargetOptions opt; - // Work around the missing initialization of this field in the default - // constructor. Use -1 so that the default value is used. - opt.StackProtectorGuardOffset = (unsigned)-1; - opt.FunctionSections = function_sections; switch (float_abi) { case ZigLLVMABITypeDefault: @@ -240,7 +236,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM if (asm_filename) { std::error_code EC; - dest_asm_ptr = new(std::nothrow) raw_fd_ostream(asm_filename, EC, sys::fs::F_None); + dest_asm_ptr = new(std::nothrow) raw_fd_ostream(asm_filename, EC, sys::fs::OF_None); if (EC) { *error_message = strdup((const char *)StringRef(EC.message()).bytes_begin()); return true; @@ -248,7 +244,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM } if (bin_filename) { std::error_code EC; - dest_bin_ptr = new(std::nothrow) raw_fd_ostream(bin_filename, EC, sys::fs::F_None); + dest_bin_ptr = new(std::nothrow) raw_fd_ostream(bin_filename, EC, sys::fs::OF_None); if (EC) { *error_message = strdup((const char *)StringRef(EC.message()).bytes_begin()); return true; @@ -256,7 +252,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM } if (bitcode_filename) { std::error_code EC; - dest_bitcode_ptr = new(std::nothrow) raw_fd_ostream(bitcode_filename, EC, sys::fs::F_None); + dest_bitcode_ptr = new(std::nothrow) raw_fd_ostream(bitcode_filename, EC, sys::fs::OF_None); if (EC) { *error_message = strdup((const char *)StringRef(EC.message()).bytes_begin()); return true; @@ -292,7 +288,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM StandardInstrumentations std_instrumentations(false); std_instrumentations.registerCallbacks(instr_callbacks); - PassBuilder pass_builder(false, &target_machine, pipeline_opts, + PassBuilder pass_builder(&target_machine, pipeline_opts, None, &instr_callbacks); using OptimizationLevel = typename PassBuilder::OptimizationLevel; @@ -1020,29 +1016,6 @@ void ZigLLVMSetModuleCodeModel(LLVMModuleRef module, LLVMCodeModel code_model) { assert(!JIT); } -static AtomicOrdering mapFromLLVMOrdering(LLVMAtomicOrdering Ordering) { - switch (Ordering) { - case LLVMAtomicOrderingNotAtomic: return AtomicOrdering::NotAtomic; - case LLVMAtomicOrderingUnordered: return AtomicOrdering::Unordered; - case LLVMAtomicOrderingMonotonic: return AtomicOrdering::Monotonic; - case LLVMAtomicOrderingAcquire: return AtomicOrdering::Acquire; - case LLVMAtomicOrderingRelease: return AtomicOrdering::Release; - case LLVMAtomicOrderingAcquireRelease: return AtomicOrdering::AcquireRelease; - case LLVMAtomicOrderingSequentiallyConsistent: return AtomicOrdering::SequentiallyConsistent; - } - abort(); -} - -LLVMValueRef ZigLLVMBuildCmpXchg(LLVMBuilderRef builder, LLVMValueRef ptr, LLVMValueRef cmp, - LLVMValueRef new_val, LLVMAtomicOrdering success_ordering, - LLVMAtomicOrdering failure_ordering, bool is_weak) -{ - AtomicCmpXchgInst *inst = unwrap(builder)->CreateAtomicCmpXchg(unwrap(ptr), unwrap(cmp), - unwrap(new_val), mapFromLLVMOrdering(success_ordering), mapFromLLVMOrdering(failure_ordering)); - inst->setWeak(is_weak); - return wrap(inst); -} - LLVMValueRef ZigLLVMBuildNSWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS, const char *name) { @@ -1237,38 +1210,6 @@ int ZigLLDLinkWasm(int argc, const char **argv, bool can_exit_early) { return lld::wasm::link(args, can_exit_early, llvm::outs(), llvm::errs()); } -static AtomicRMWInst::BinOp toLLVMRMWBinOp(enum ZigLLVM_AtomicRMWBinOp BinOp) { - switch (BinOp) { - default: - case ZigLLVMAtomicRMWBinOpXchg: return AtomicRMWInst::Xchg; - case ZigLLVMAtomicRMWBinOpAdd: return AtomicRMWInst::Add; - case ZigLLVMAtomicRMWBinOpSub: return AtomicRMWInst::Sub; - case ZigLLVMAtomicRMWBinOpAnd: return AtomicRMWInst::And; - case ZigLLVMAtomicRMWBinOpNand: return AtomicRMWInst::Nand; - case ZigLLVMAtomicRMWBinOpOr: return AtomicRMWInst::Or; - case ZigLLVMAtomicRMWBinOpXor: return AtomicRMWInst::Xor; - case ZigLLVMAtomicRMWBinOpMax: return AtomicRMWInst::Max; - case ZigLLVMAtomicRMWBinOpMin: return AtomicRMWInst::Min; - case ZigLLVMAtomicRMWBinOpUMax: return AtomicRMWInst::UMax; - case ZigLLVMAtomicRMWBinOpUMin: return AtomicRMWInst::UMin; - case ZigLLVMAtomicRMWBinOpFAdd: return AtomicRMWInst::FAdd; - case ZigLLVMAtomicRMWBinOpFSub: return AtomicRMWInst::FSub; - } -} - -static AtomicOrdering toLLVMOrdering(LLVMAtomicOrdering Ordering) { - switch (Ordering) { - default: - case LLVMAtomicOrderingNotAtomic: return AtomicOrdering::NotAtomic; - case LLVMAtomicOrderingUnordered: return AtomicOrdering::Unordered; - case LLVMAtomicOrderingMonotonic: return AtomicOrdering::Monotonic; - case LLVMAtomicOrderingAcquire: return AtomicOrdering::Acquire; - case LLVMAtomicOrderingRelease: return AtomicOrdering::Release; - case LLVMAtomicOrderingAcquireRelease: return AtomicOrdering::AcquireRelease; - case LLVMAtomicOrderingSequentiallyConsistent: return AtomicOrdering::SequentiallyConsistent; - } -} - inline LLVMAttributeRef wrap(Attribute Attr) { return reinterpret_cast(Attr.getRawPointer()); } @@ -1277,16 +1218,6 @@ inline Attribute unwrap(LLVMAttributeRef Attr) { return Attribute::fromRawPointer(Attr); } -LLVMValueRef ZigLLVMBuildAtomicRMW(LLVMBuilderRef B, enum ZigLLVM_AtomicRMWBinOp op, - LLVMValueRef PTR, LLVMValueRef Val, - LLVMAtomicOrdering ordering, LLVMBool singleThread) -{ - AtomicRMWInst::BinOp intop = toLLVMRMWBinOp(op); - return wrap(unwrap(B)->CreateAtomicRMW(intop, unwrap(PTR), - unwrap(Val), toLLVMOrdering(ordering), - singleThread ? SyncScope::SingleThread : SyncScope::System)); -} - LLVMValueRef ZigLLVMBuildAndReduce(LLVMBuilderRef B, LLVMValueRef Val) { return wrap(unwrap(B)->CreateAndReduce(unwrap(Val))); } @@ -1343,6 +1274,7 @@ static_assert((Triple::ArchType)ZigLLVM_bpfel == Triple::bpfel, ""); static_assert((Triple::ArchType)ZigLLVM_bpfeb == Triple::bpfeb, ""); static_assert((Triple::ArchType)ZigLLVM_csky == Triple::csky, ""); static_assert((Triple::ArchType)ZigLLVM_hexagon == Triple::hexagon, ""); +static_assert((Triple::ArchType)ZigLLVM_m68k == Triple::m68k, ""); static_assert((Triple::ArchType)ZigLLVM_mips == Triple::mips, ""); static_assert((Triple::ArchType)ZigLLVM_mipsel == Triple::mipsel, ""); static_assert((Triple::ArchType)ZigLLVM_mips64 == Triple::mips64, ""); @@ -1459,6 +1391,7 @@ static_assert((Triple::EnvironmentType)ZigLLVM_Android == Triple::Android, ""); static_assert((Triple::EnvironmentType)ZigLLVM_Musl == Triple::Musl, ""); static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABI == Triple::MuslEABI, ""); static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABIHF == Triple::MuslEABIHF, ""); +static_assert((Triple::EnvironmentType)ZigLLVM_MuslX32 == Triple::MuslX32, ""); static_assert((Triple::EnvironmentType)ZigLLVM_MSVC == Triple::MSVC, ""); static_assert((Triple::EnvironmentType)ZigLLVM_Itanium == Triple::Itanium, ""); static_assert((Triple::EnvironmentType)ZigLLVM_Cygnus == Triple::Cygnus, ""); diff --git a/src/zig_llvm.h b/src/zig_llvm.h index f49c2662c6..e16da15036 100644 --- a/src/zig_llvm.h +++ b/src/zig_llvm.h @@ -137,10 +137,6 @@ ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildUMin(LLVMBuilderRef builder, LLVMValueRef ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildSMax(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS, const char* name); ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildSMin(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS, const char* name); -ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildCmpXchg(LLVMBuilderRef builder, LLVMValueRef ptr, LLVMValueRef cmp, - LLVMValueRef new_val, LLVMAtomicOrdering success_ordering, - LLVMAtomicOrdering failure_ordering, bool is_weak); - ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildNSWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS, const char *name); ZIG_EXTERN_C LLVMValueRef ZigLLVMBuildNUWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS, @@ -303,6 +299,7 @@ enum ZigLLVM_ArchType { ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian) ZigLLVM_csky, // CSKY: csky ZigLLVM_hexagon, // Hexagon: hexagon + ZigLLVM_m68k, // M68k: Motorola 680x0 family ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el ZigLLVM_mips64, // MIPS64: mips64, mips64r6, mipsn32, mipsn32r6 @@ -345,7 +342,6 @@ enum ZigLLVM_ArchType { ZigLLVM_renderscript32, // 32-bit RenderScript ZigLLVM_renderscript64, // 64-bit RenderScript ZigLLVM_ve, // NEC SX-Aurora Vector Engine - ZigLLVM_LastArchType = ZigLLVM_ve }; @@ -430,6 +426,7 @@ enum ZigLLVM_EnvironmentType { ZigLLVM_Musl, ZigLLVM_MuslEABI, ZigLLVM_MuslEABIHF, + ZigLLVM_MuslX32, ZigLLVM_MSVC, ZigLLVM_Itanium, @@ -437,7 +434,6 @@ enum ZigLLVM_EnvironmentType { ZigLLVM_CoreCLR, ZigLLVM_Simulator, // Simulator variants of other systems, e.g., Apple's iOS ZigLLVM_MacABI, // Mac Catalyst variant of Apple's iOS deployment target. - ZigLLVM_LastEnvironmentType = ZigLLVM_MacABI }; @@ -452,26 +448,6 @@ enum ZigLLVM_ObjectFormatType { ZigLLVM_XCOFF, }; -enum ZigLLVM_AtomicRMWBinOp { - ZigLLVMAtomicRMWBinOpXchg, - ZigLLVMAtomicRMWBinOpAdd, - ZigLLVMAtomicRMWBinOpSub, - ZigLLVMAtomicRMWBinOpAnd, - ZigLLVMAtomicRMWBinOpNand, - ZigLLVMAtomicRMWBinOpOr, - ZigLLVMAtomicRMWBinOpXor, - ZigLLVMAtomicRMWBinOpMax, - ZigLLVMAtomicRMWBinOpMin, - ZigLLVMAtomicRMWBinOpUMax, - ZigLLVMAtomicRMWBinOpUMin, - ZigLLVMAtomicRMWBinOpFAdd, - ZigLLVMAtomicRMWBinOpFSub, -}; - -LLVMValueRef ZigLLVMBuildAtomicRMW(LLVMBuilderRef B, enum ZigLLVM_AtomicRMWBinOp op, - LLVMValueRef PTR, LLVMValueRef Val, - LLVMAtomicOrdering ordering, LLVMBool singleThread); - LLVMValueRef ZigLLVMBuildAndReduce(LLVMBuilderRef B, LLVMValueRef Val); LLVMValueRef ZigLLVMBuildOrReduce(LLVMBuilderRef B, LLVMValueRef Val); LLVMValueRef ZigLLVMBuildXorReduce(LLVMBuilderRef B, LLVMValueRef Val);