Commit 243ae3a6cb
Changed files (4)
lib
std
src
lib/std/Target.zig
@@ -47,6 +47,7 @@ pub const Os = struct {
tvos,
watchos,
driverkit,
+ xros,
mesa3d,
contiki,
amdpal,
@@ -56,6 +57,7 @@ pub const Os = struct {
emscripten,
shadermodel,
liteos,
+ serenity,
opencl,
glsl450,
vulkan,
@@ -1002,6 +1004,7 @@ pub const Cpu = struct {
hsail64,
spir,
spir64,
+ spirv,
spirv32,
spirv64,
kalimba,
@@ -1012,8 +1015,6 @@ pub const Cpu = struct {
renderscript32,
renderscript64,
ve,
- // Stage1 currently assumes that architectures above this comment
- // map one-to-one with the ZigLLVM_ArchType enum.
spu_2,
pub inline fn isX86(arch: Arch) bool {
src/codegen/llvm/bindings.zig
@@ -284,8 +284,6 @@ extern fn ZigLLVMWriteArchive(
pub const OSType = enum(c_int) {
UnknownOS,
- Ananas,
- CloudABI,
Darwin,
DragonFly,
FreeBSD,
@@ -302,7 +300,6 @@ pub const OSType = enum(c_int) {
Win32,
ZOS,
Haiku,
- Minix,
RTEMS,
NaCl,
AIX,
@@ -315,8 +312,8 @@ pub const OSType = enum(c_int) {
TvOS,
WatchOS,
DriverKit,
+ XROS,
Mesa3D,
- Contiki,
AMDPAL,
HermitCore,
Hurd,
@@ -324,6 +321,8 @@ pub const OSType = enum(c_int) {
Emscripten,
ShaderModel,
LiteOS,
+ Serenity,
+ Vulkan,
};
pub const ArchType = enum(c_int) {
@@ -378,6 +377,7 @@ pub const ArchType = enum(c_int) {
hsail64,
spir,
spir64,
+ spirv,
spirv32,
spirv64,
kalimba,
src/zig_llvm.cpp
@@ -110,19 +110,19 @@ LLVMTargetMachineRef ZigLLVMCreateTargetMachine(LLVMTargetRef T, const char *Tri
bool JIT;
std::optional<CodeModel::Model> CM = unwrap(CodeModel, JIT);
- CodeGenOpt::Level OL;
+ CodeGenOptLevel OL;
switch (Level) {
case LLVMCodeGenLevelNone:
- OL = CodeGenOpt::None;
+ OL = CodeGenOptLevel::None;
break;
case LLVMCodeGenLevelLess:
- OL = CodeGenOpt::Less;
+ OL = CodeGenOptLevel::Less;
break;
case LLVMCodeGenLevelAggressive:
- OL = CodeGenOpt::Aggressive;
+ OL = CodeGenOptLevel::Aggressive;
break;
default:
- OL = CodeGenOpt::Default;
+ OL = CodeGenOptLevel::Default;
break;
}
@@ -336,13 +336,13 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM
createTargetTransformInfoWrapperPass(target_machine.getTargetIRAnalysis()));
if (dest_bin && !lto) {
- if (target_machine.addPassesToEmitFile(codegen_pm, *dest_bin, nullptr, CGFT_ObjectFile)) {
+ if (target_machine.addPassesToEmitFile(codegen_pm, *dest_bin, nullptr, CodeGenFileType::ObjectFile)) {
*error_message = strdup("TargetMachine can't emit an object file");
return true;
}
}
if (dest_asm) {
- if (target_machine.addPassesToEmitFile(codegen_pm, *dest_asm, nullptr, CGFT_AssemblyFile)) {
+ if (target_machine.addPassesToEmitFile(codegen_pm, *dest_asm, nullptr, CodeGenFileType::AssemblyFile)) {
*error_message = strdup("TargetMachine can't emit an assembly file");
return true;
}
@@ -534,7 +534,9 @@ bool ZigLLVMWriteArchive(const char *archive_name, const char **file_names, size
if (err) return true;
new_members.push_back(std::move(*new_member));
}
- Error err = writeArchive(archive_name, new_members, true, kind, true, false, nullptr);
+ Error err = writeArchive(archive_name, new_members,
+ SymtabWritingMode::NormalSymtab, kind, true, false, nullptr);
+
if (err) return true;
return false;
}
@@ -620,6 +622,7 @@ static_assert((Triple::ArchType)ZigLLVM_hsail == Triple::hsail, "");
static_assert((Triple::ArchType)ZigLLVM_hsail64 == Triple::hsail64, "");
static_assert((Triple::ArchType)ZigLLVM_spir == Triple::spir, "");
static_assert((Triple::ArchType)ZigLLVM_spir64 == Triple::spir64, "");
+static_assert((Triple::ArchType)ZigLLVM_spirv == Triple::spirv, "");
static_assert((Triple::ArchType)ZigLLVM_spirv32 == Triple::spirv32, "");
static_assert((Triple::ArchType)ZigLLVM_spirv64 == Triple::spirv64, "");
static_assert((Triple::ArchType)ZigLLVM_kalimba == Triple::kalimba, "");
@@ -642,7 +645,6 @@ static_assert((Triple::VendorType)ZigLLVM_ImaginationTechnologies == Triple::Ima
static_assert((Triple::VendorType)ZigLLVM_MipsTechnologies == Triple::MipsTechnologies, "");
static_assert((Triple::VendorType)ZigLLVM_NVIDIA == Triple::NVIDIA, "");
static_assert((Triple::VendorType)ZigLLVM_CSR == Triple::CSR, "");
-static_assert((Triple::VendorType)ZigLLVM_Myriad == Triple::Myriad, "");
static_assert((Triple::VendorType)ZigLLVM_AMD == Triple::AMD, "");
static_assert((Triple::VendorType)ZigLLVM_Mesa == Triple::Mesa, "");
static_assert((Triple::VendorType)ZigLLVM_SUSE == Triple::SUSE, "");
@@ -650,8 +652,6 @@ static_assert((Triple::VendorType)ZigLLVM_OpenEmbedded == Triple::OpenEmbedded,
static_assert((Triple::VendorType)ZigLLVM_LastVendorType == Triple::LastVendorType, "");
static_assert((Triple::OSType)ZigLLVM_UnknownOS == Triple::UnknownOS, "");
-static_assert((Triple::OSType)ZigLLVM_Ananas == Triple::Ananas, "");
-static_assert((Triple::OSType)ZigLLVM_CloudABI == Triple::CloudABI, "");
static_assert((Triple::OSType)ZigLLVM_Darwin == Triple::Darwin, "");
static_assert((Triple::OSType)ZigLLVM_DragonFly == Triple::DragonFly, "");
static_assert((Triple::OSType)ZigLLVM_FreeBSD == Triple::FreeBSD, "");
@@ -670,7 +670,6 @@ static_assert((Triple::OSType)ZigLLVM_UEFI == Triple::UEFI, "");
static_assert((Triple::OSType)ZigLLVM_Win32 == Triple::Win32, "");
static_assert((Triple::OSType)ZigLLVM_ZOS == Triple::ZOS, "");
static_assert((Triple::OSType)ZigLLVM_Haiku == Triple::Haiku, "");
-static_assert((Triple::OSType)ZigLLVM_Minix == Triple::Minix, "");
static_assert((Triple::OSType)ZigLLVM_RTEMS == Triple::RTEMS, "");
static_assert((Triple::OSType)ZigLLVM_NaCl == Triple::NaCl, "");
static_assert((Triple::OSType)ZigLLVM_AIX == Triple::AIX, "");
@@ -681,8 +680,9 @@ static_assert((Triple::OSType)ZigLLVM_PS4 == Triple::PS4, "");
static_assert((Triple::OSType)ZigLLVM_ELFIAMCU == Triple::ELFIAMCU, "");
static_assert((Triple::OSType)ZigLLVM_TvOS == Triple::TvOS, "");
static_assert((Triple::OSType)ZigLLVM_WatchOS == Triple::WatchOS, "");
+static_assert((Triple::OSType)ZigLLVM_DriverKit == Triple::DriverKit, "");
+static_assert((Triple::OSType)ZigLLVM_XROS == Triple::XROS, "");
static_assert((Triple::OSType)ZigLLVM_Mesa3D == Triple::Mesa3D, "");
-static_assert((Triple::OSType)ZigLLVM_Contiki == Triple::Contiki, "");
static_assert((Triple::OSType)ZigLLVM_AMDPAL == Triple::AMDPAL, "");
static_assert((Triple::OSType)ZigLLVM_HermitCore == Triple::HermitCore, "");
static_assert((Triple::OSType)ZigLLVM_Hurd == Triple::Hurd, "");
@@ -690,6 +690,8 @@ static_assert((Triple::OSType)ZigLLVM_WASI == Triple::WASI, "");
static_assert((Triple::OSType)ZigLLVM_Emscripten == Triple::Emscripten, "");
static_assert((Triple::OSType)ZigLLVM_ShaderModel == Triple::ShaderModel, "");
static_assert((Triple::OSType)ZigLLVM_LiteOS == Triple::LiteOS, "");
+static_assert((Triple::OSType)ZigLLVM_Serenity == Triple::Serenity, "");
+static_assert((Triple::OSType)ZigLLVM_Vulkan == Triple::Vulkan, "");
static_assert((Triple::OSType)ZigLLVM_LastOSType == Triple::LastOSType, "");
static_assert((Triple::EnvironmentType)ZigLLVM_UnknownEnvironment == Triple::UnknownEnvironment, "");
@@ -748,12 +750,14 @@ static_assert((CallingConv::ID)ZigLLVM_Fast == llvm::CallingConv::Fast, "");
static_assert((CallingConv::ID)ZigLLVM_Cold == llvm::CallingConv::Cold, "");
static_assert((CallingConv::ID)ZigLLVM_GHC == llvm::CallingConv::GHC, "");
static_assert((CallingConv::ID)ZigLLVM_HiPE == llvm::CallingConv::HiPE, "");
-static_assert((CallingConv::ID)ZigLLVM_WebKit_JS == llvm::CallingConv::WebKit_JS, "");
static_assert((CallingConv::ID)ZigLLVM_AnyReg == llvm::CallingConv::AnyReg, "");
static_assert((CallingConv::ID)ZigLLVM_PreserveMost == llvm::CallingConv::PreserveMost, "");
static_assert((CallingConv::ID)ZigLLVM_PreserveAll == llvm::CallingConv::PreserveAll, "");
static_assert((CallingConv::ID)ZigLLVM_Swift == llvm::CallingConv::Swift, "");
static_assert((CallingConv::ID)ZigLLVM_CXX_FAST_TLS == llvm::CallingConv::CXX_FAST_TLS, "");
+static_assert((CallingConv::ID)ZigLLVM_Tail == llvm::CallingConv::Tail, "");
+static_assert((CallingConv::ID)ZigLLVM_CFGuard_Check == llvm::CallingConv::CFGuard_Check, "");
+static_assert((CallingConv::ID)ZigLLVM_SwiftTail == llvm::CallingConv::SwiftTail, "");
static_assert((CallingConv::ID)ZigLLVM_FirstTargetCC == llvm::CallingConv::FirstTargetCC, "");
static_assert((CallingConv::ID)ZigLLVM_X86_StdCall == llvm::CallingConv::X86_StdCall, "");
static_assert((CallingConv::ID)ZigLLVM_X86_FastCall == llvm::CallingConv::X86_FastCall, "");
@@ -787,4 +791,16 @@ static_assert((CallingConv::ID)ZigLLVM_MSP430_BUILTIN == llvm::CallingConv::MSP4
static_assert((CallingConv::ID)ZigLLVM_AMDGPU_LS == llvm::CallingConv::AMDGPU_LS, "");
static_assert((CallingConv::ID)ZigLLVM_AMDGPU_ES == llvm::CallingConv::AMDGPU_ES, "");
static_assert((CallingConv::ID)ZigLLVM_AArch64_VectorCall == llvm::CallingConv::AArch64_VectorCall, "");
+static_assert((CallingConv::ID)ZigLLVM_AArch64_SVE_VectorCall == llvm::CallingConv::AArch64_SVE_VectorCall, "");
+static_assert((CallingConv::ID)ZigLLVM_WASM_EmscriptenInvoke == llvm::CallingConv::WASM_EmscriptenInvoke, "");
+static_assert((CallingConv::ID)ZigLLVM_AMDGPU_Gfx == llvm::CallingConv::AMDGPU_Gfx, "");
+static_assert((CallingConv::ID)ZigLLVM_M68k_INTR == llvm::CallingConv::M68k_INTR, "");
+static_assert((CallingConv::ID)ZigLLVM_AArch64_SME_ABI_Support_Routines_PreserveMost_From_X0 == llvm::CallingConv::AArch64_SME_ABI_Support_Routines_PreserveMost_From_X0, "");
+static_assert((CallingConv::ID)ZigLLVM_AArch64_SME_ABI_Support_Routines_PreserveMost_From_X2 == llvm::CallingConv::AArch64_SME_ABI_Support_Routines_PreserveMost_From_X2, "");
+static_assert((CallingConv::ID)ZigLLVM_AMDGPU_CS_Chain == llvm::CallingConv::AMDGPU_CS_Chain, "");
+static_assert((CallingConv::ID)ZigLLVM_AMDGPU_CS_ChainPreserve == llvm::CallingConv::AMDGPU_CS_ChainPreserve, "");
+static_assert((CallingConv::ID)ZigLLVM_M68k_RTD == llvm::CallingConv::M68k_RTD, "");
+static_assert((CallingConv::ID)ZigLLVM_GRAAL == llvm::CallingConv::GRAAL, "");
+static_assert((CallingConv::ID)ZigLLVM_ARM64EC_Thunk_X64 == llvm::CallingConv::ARM64EC_Thunk_X64, "");
+static_assert((CallingConv::ID)ZigLLVM_ARM64EC_Thunk_Native == llvm::CallingConv::ARM64EC_Thunk_Native, "");
static_assert((CallingConv::ID)ZigLLVM_MaxID == llvm::CallingConv::MaxID, "");
src/zig_llvm.h
@@ -60,12 +60,14 @@ enum ZigLLVM_CallingConv {
ZigLLVM_Cold = 9,
ZigLLVM_GHC = 10,
ZigLLVM_HiPE = 11,
- ZigLLVM_WebKit_JS = 12,
ZigLLVM_AnyReg = 13,
ZigLLVM_PreserveMost = 14,
ZigLLVM_PreserveAll = 15,
ZigLLVM_Swift = 16,
ZigLLVM_CXX_FAST_TLS = 17,
+ ZigLLVM_Tail = 18,
+ ZigLLVM_CFGuard_Check = 19,
+ ZigLLVM_SwiftTail = 20,
ZigLLVM_FirstTargetCC = 64,
ZigLLVM_X86_StdCall = 64,
ZigLLVM_X86_FastCall = 65,
@@ -99,6 +101,18 @@ enum ZigLLVM_CallingConv {
ZigLLVM_AMDGPU_LS = 95,
ZigLLVM_AMDGPU_ES = 96,
ZigLLVM_AArch64_VectorCall = 97,
+ ZigLLVM_AArch64_SVE_VectorCall = 98,
+ ZigLLVM_WASM_EmscriptenInvoke = 99,
+ ZigLLVM_AMDGPU_Gfx = 100,
+ ZigLLVM_M68k_INTR = 101,
+ ZigLLVM_AArch64_SME_ABI_Support_Routines_PreserveMost_From_X0 = 102,
+ ZigLLVM_AArch64_SME_ABI_Support_Routines_PreserveMost_From_X2 = 103,
+ ZigLLVM_AMDGPU_CS_Chain = 104,
+ ZigLLVM_AMDGPU_CS_ChainPreserve = 105,
+ ZigLLVM_M68k_RTD = 106,
+ ZigLLVM_GRAAL = 107,
+ ZigLLVM_ARM64EC_Thunk_X64 = 108,
+ ZigLLVM_ARM64EC_Thunk_Native = 109,
ZigLLVM_MaxID = 1023,
};
@@ -164,6 +178,7 @@ enum ZigLLVM_ArchType {
ZigLLVM_hsail64, // AMD HSAIL with 64-bit pointers
ZigLLVM_spir, // SPIR: standard portable IR for OpenCL 32-bit version
ZigLLVM_spir64, // SPIR: standard portable IR for OpenCL 64-bit version
+ ZigLLVM_spirv, // SPIR-V with logical memory layout.
ZigLLVM_spirv32, // SPIR-V with 32-bit pointers
ZigLLVM_spirv64, // SPIR-V with 64-bit pointers
ZigLLVM_kalimba, // Kalimba: generic kalimba
@@ -189,7 +204,6 @@ enum ZigLLVM_VendorType {
ZigLLVM_MipsTechnologies,
ZigLLVM_NVIDIA,
ZigLLVM_CSR,
- ZigLLVM_Myriad,
ZigLLVM_AMD,
ZigLLVM_Mesa,
ZigLLVM_SUSE,
@@ -204,8 +218,6 @@ enum ZigLLVM_VendorType {
enum ZigLLVM_OSType {
ZigLLVM_UnknownOS,
- ZigLLVM_Ananas,
- ZigLLVM_CloudABI,
ZigLLVM_Darwin,
ZigLLVM_DragonFly,
ZigLLVM_FreeBSD,
@@ -222,7 +234,6 @@ enum ZigLLVM_OSType {
ZigLLVM_Win32,
ZigLLVM_ZOS,
ZigLLVM_Haiku,
- ZigLLVM_Minix,
ZigLLVM_RTEMS,
ZigLLVM_NaCl, // Native Client
ZigLLVM_AIX,
@@ -235,8 +246,8 @@ enum ZigLLVM_OSType {
ZigLLVM_TvOS, // Apple tvOS
ZigLLVM_WatchOS, // Apple watchOS
ZigLLVM_DriverKit, // Apple DriverKit
+ ZigLLVM_XROS, // Apple XROS
ZigLLVM_Mesa3D,
- ZigLLVM_Contiki,
ZigLLVM_AMDPAL, // AMD PAL Runtime
ZigLLVM_HermitCore, // HermitCore Unikernel/Multikernel
ZigLLVM_Hurd, // GNU/Hurd
@@ -244,7 +255,9 @@ enum ZigLLVM_OSType {
ZigLLVM_Emscripten,
ZigLLVM_ShaderModel, // DirectX ShaderModel
ZigLLVM_LiteOS,
- ZigLLVM_LastOSType = ZigLLVM_LiteOS
+ ZigLLVM_Serenity,
+ ZigLLVM_Vulkan, // Vulkan SPIR-V
+ ZigLLVM_LastOSType = ZigLLVM_Vulkan
};
// Synchronize with target.cpp::abi_list