Commit cd8234c3ba
Changed files (4)
lib
std
src
lib/std/target.zig
@@ -28,6 +28,7 @@ pub const Target = struct {
netbsd,
openbsd,
solaris,
+ uefi,
windows,
zos,
haiku,
@@ -52,7 +53,7 @@ pub const Target = struct {
wasi,
emscripten,
shadermodel,
- uefi,
+ liteos,
opencl,
glsl450,
vulkan,
src/codegen/llvm/bindings.zig
@@ -1167,6 +1167,7 @@ pub const OSType = enum(c_int) {
NetBSD,
OpenBSD,
Solaris,
+ UEFI,
Win32,
ZOS,
Haiku,
@@ -1191,6 +1192,7 @@ pub const OSType = enum(c_int) {
WASI,
Emscripten,
ShaderModel,
+ LiteOS,
};
pub const ArchType = enum(c_int) {
src/zig_llvm.cpp
@@ -35,7 +35,6 @@
#include <llvm/IR/PassManager.h>
#include <llvm/IR/Verifier.h>
#include <llvm/InitializePasses.h>
-#include <llvm/MC/SubtargetFeature.h>
#include <llvm/MC/TargetRegistry.h>
#include <llvm/Passes/OptimizationLevel.h>
#include <llvm/Passes/PassBuilder.h>
@@ -47,10 +46,8 @@
#include <llvm/Object/COFFModuleDefinition.h>
#include <llvm/PassRegistry.h>
#include <llvm/Support/CommandLine.h>
-#include <llvm/Support/Host.h>
#include <llvm/Support/FileSystem.h>
#include <llvm/Support/Process.h>
-#include <llvm/Support/TargetParser.h>
#include <llvm/Support/TimeProfiler.h>
#include <llvm/Support/Timer.h>
#include <llvm/Support/raw_ostream.h>
@@ -58,7 +55,6 @@
#include <llvm/Target/CodeGenCWrappers.h>
#include <llvm/Transforms/IPO.h>
#include <llvm/Transforms/IPO/AlwaysInliner.h>
-#include <llvm/Transforms/IPO/PassManagerBuilder.h>
#include <llvm/Transforms/Instrumentation/ThreadSanitizer.h>
#include <llvm/Transforms/Scalar.h>
#include <llvm/Transforms/Utils.h>
@@ -1103,6 +1099,24 @@ bool ZigLLVMWriteArchive(const char *archive_name, const char **file_names, size
return false;
}
+// The header file in LLD 16 exposed these functions. As of 17 they are only
+// exposed via a macro ("LLD_HAS_DRIVER") which I have copied and pasted the
+// body of here so that you don't have to wonder what it is doing.
+namespace lld {
+ namespace coff {
+ bool link(llvm::ArrayRef<const char *> args, llvm::raw_ostream &stdoutOS,
+ llvm::raw_ostream &stderrOS, bool exitEarly, bool disableOutput);
+ }
+ namespace elf {
+ bool link(llvm::ArrayRef<const char *> args, llvm::raw_ostream &stdoutOS,
+ llvm::raw_ostream &stderrOS, bool exitEarly, bool disableOutput);
+ }
+ namespace wasm {
+ bool link(llvm::ArrayRef<const char *> args, llvm::raw_ostream &stdoutOS,
+ llvm::raw_ostream &stderrOS, bool exitEarly, bool disableOutput);
+ }
+}
+
bool ZigLLDLinkCOFF(int argc, const char **argv, bool can_exit_early, bool disable_output) {
std::vector<const char *> args(argv, argv + argc);
return lld::coff::link(args, llvm::outs(), llvm::errs(), can_exit_early, disable_output);
@@ -1249,6 +1263,7 @@ static_assert((Triple::OSType)ZigLLVM_MacOSX == Triple::MacOSX, "");
static_assert((Triple::OSType)ZigLLVM_NetBSD == Triple::NetBSD, "");
static_assert((Triple::OSType)ZigLLVM_OpenBSD == Triple::OpenBSD, "");
static_assert((Triple::OSType)ZigLLVM_Solaris == Triple::Solaris, "");
+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, "");
@@ -1270,6 +1285,8 @@ static_assert((Triple::OSType)ZigLLVM_HermitCore == Triple::HermitCore, "");
static_assert((Triple::OSType)ZigLLVM_Hurd == Triple::Hurd, "");
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_LastOSType == Triple::LastOSType, "");
static_assert((Triple::EnvironmentType)ZigLLVM_UnknownEnvironment == Triple::UnknownEnvironment, "");
@@ -1297,6 +1314,22 @@ static_assert((Triple::EnvironmentType)ZigLLVM_Cygnus == Triple::Cygnus, "");
static_assert((Triple::EnvironmentType)ZigLLVM_CoreCLR == Triple::CoreCLR, "");
static_assert((Triple::EnvironmentType)ZigLLVM_Simulator == Triple::Simulator, "");
static_assert((Triple::EnvironmentType)ZigLLVM_MacABI == Triple::MacABI, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Pixel == Triple::Pixel, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Vertex == Triple::Vertex, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Geometry == Triple::Geometry, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Hull == Triple::Hull, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Domain == Triple::Domain, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Compute == Triple::Compute, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Library == Triple::Library, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_RayGeneration == Triple::RayGeneration, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Intersection == Triple::Intersection, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_AnyHit == Triple::AnyHit, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_ClosestHit == Triple::ClosestHit, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Miss == Triple::Miss, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Callable == Triple::Callable, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Mesh == Triple::Mesh, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_Amplification == Triple::Amplification, "");
+static_assert((Triple::EnvironmentType)ZigLLVM_OpenHOS == Triple::OpenHOS, "");
static_assert((Triple::EnvironmentType)ZigLLVM_LastEnvironmentType == Triple::LastEnvironmentType, "");
static_assert((Triple::ObjectFormatType)ZigLLVM_UnknownObjectFormat == Triple::UnknownObjectFormat, "");
@@ -1334,8 +1367,8 @@ static_assert((CallingConv::ID)ZigLLVM_Intel_OCL_BI == llvm::CallingConv::Intel_
static_assert((CallingConv::ID)ZigLLVM_X86_64_SysV == llvm::CallingConv::X86_64_SysV, "");
static_assert((CallingConv::ID)ZigLLVM_Win64 == llvm::CallingConv::Win64, "");
static_assert((CallingConv::ID)ZigLLVM_X86_VectorCall == llvm::CallingConv::X86_VectorCall, "");
-static_assert((CallingConv::ID)ZigLLVM_HHVM == llvm::CallingConv::HHVM, "");
-static_assert((CallingConv::ID)ZigLLVM_HHVM_C == llvm::CallingConv::HHVM_C, "");
+static_assert((CallingConv::ID)ZigLLVM_DUMMY_HHVM == llvm::CallingConv::DUMMY_HHVM, "");
+static_assert((CallingConv::ID)ZigLLVM_DUMMY_HHVM_C == llvm::CallingConv::DUMMY_HHVM_C, "");
static_assert((CallingConv::ID)ZigLLVM_X86_INTR == llvm::CallingConv::X86_INTR, "");
static_assert((CallingConv::ID)ZigLLVM_AVR_INTR == llvm::CallingConv::AVR_INTR, "");
static_assert((CallingConv::ID)ZigLLVM_AVR_SIGNAL == llvm::CallingConv::AVR_SIGNAL, "");
src/zig_llvm.h
@@ -13,7 +13,6 @@
#include <llvm-c/Core.h>
#include <llvm-c/Analysis.h>
#include <llvm-c/Target.h>
-#include <llvm-c/Initialization.h>
#include <llvm-c/TargetMachine.h>
#ifdef __cplusplus
@@ -102,8 +101,8 @@ enum ZigLLVM_CallingConv {
ZigLLVM_X86_64_SysV = 78,
ZigLLVM_Win64 = 79,
ZigLLVM_X86_VectorCall = 80,
- ZigLLVM_HHVM = 81,
- ZigLLVM_HHVM_C = 82,
+ ZigLLVM_DUMMY_HHVM = 81,
+ ZigLLVM_DUMMY_HHVM_C = 82,
ZigLLVM_X86_INTR = 83,
ZigLLVM_AVR_INTR = 84,
ZigLLVM_AVR_SIGNAL = 85,
@@ -402,6 +401,7 @@ enum ZigLLVM_OSType {
ZigLLVM_NetBSD,
ZigLLVM_OpenBSD,
ZigLLVM_Solaris,
+ ZigLLVM_UEFI,
ZigLLVM_Win32,
ZigLLVM_ZOS,
ZigLLVM_Haiku,
@@ -426,7 +426,8 @@ enum ZigLLVM_OSType {
ZigLLVM_WASI, // Experimental WebAssembly OS
ZigLLVM_Emscripten,
ZigLLVM_ShaderModel, // DirectX ShaderModel
- ZigLLVM_LastOSType = ZigLLVM_ShaderModel
+ ZigLLVM_LiteOS,
+ ZigLLVM_LastOSType = ZigLLVM_LiteOS
};
// Synchronize with target.cpp::abi_list
@@ -474,8 +475,9 @@ enum ZigLLVM_EnvironmentType {
ZigLLVM_Callable,
ZigLLVM_Mesh,
ZigLLVM_Amplification,
+ ZigLLVM_OpenHOS,
- ZigLLVM_LastEnvironmentType = ZigLLVM_Amplification
+ ZigLLVM_LastEnvironmentType = ZigLLVM_OpenHOS
};
enum ZigLLVM_ObjectFormatType {