mirror of
https://github.com/ziglang/zig.git
synced 2025-02-01 06:41:19 +00:00
update to llvm9 trunk
This commit is contained in:
parent
c0b4121ff2
commit
8f92a49dfd
10
README.md
10
README.md
@ -26,14 +26,14 @@ Note that you can
|
||||
|
||||
* cmake >= 2.8.5
|
||||
* gcc >= 5.0.0 or clang >= 3.6.0
|
||||
* LLVM, Clang, LLD development libraries == 8.x, compiled with the same gcc or clang version above
|
||||
* LLVM, Clang, LLD development libraries == 9.x, compiled with the same gcc or clang version above
|
||||
- Use the system package manager, or [build from source](https://github.com/ziglang/zig/wiki/How-to-build-LLVM,-libclang,-and-liblld-from-source#posix).
|
||||
|
||||
##### Windows
|
||||
|
||||
* cmake >= 2.8.5
|
||||
* Microsoft Visual Studio 2017 (version 15.8)
|
||||
* LLVM, Clang, LLD development libraries == 8.x, compiled with the same MSVC version above
|
||||
* LLVM, Clang, LLD development libraries == 9.x, compiled with the same MSVC version above
|
||||
- Use the [pre-built binaries](https://github.com/ziglang/zig/wiki/How-to-build-LLVM,-libclang,-and-liblld-from-source#pre-built-binaries) or [build from source](https://github.com/ziglang/zig/wiki/How-to-build-LLVM,-libclang,-and-liblld-from-source#windows).
|
||||
|
||||
#### Instructions
|
||||
@ -50,11 +50,11 @@ make install
|
||||
##### MacOS
|
||||
|
||||
```
|
||||
brew install cmake llvm@8
|
||||
brew outdated llvm@8 || brew upgrade llvm@8
|
||||
brew install cmake llvm@9
|
||||
brew outdated llvm@9 || brew upgrade llvm@9
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -DCMAKE_PREFIX_PATH=/usr/local/Cellar/llvm/8.0.0_1
|
||||
cmake .. -DCMAKE_PREFIX_PATH=/usr/local/Cellar/llvm/9.0.0
|
||||
make install
|
||||
```
|
||||
|
||||
|
@ -38,10 +38,10 @@ if(MSVC)
|
||||
else()
|
||||
find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
|
||||
PATHS
|
||||
/usr/lib/llvm/8/include
|
||||
/usr/lib/llvm-8/include
|
||||
/usr/lib/llvm-8.0/include
|
||||
/usr/local/llvm80/include
|
||||
/usr/lib/llvm/9/include
|
||||
/usr/lib/llvm-9/include
|
||||
/usr/lib/llvm-9.0/include
|
||||
/usr/local/llvm90/include
|
||||
/mingw64/include)
|
||||
|
||||
macro(FIND_AND_ADD_CLANG_LIB _libname_)
|
||||
@ -49,10 +49,10 @@ else()
|
||||
find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_}
|
||||
PATHS
|
||||
${CLANG_LIBDIRS}
|
||||
/usr/lib/llvm/8/lib
|
||||
/usr/lib/llvm-8/lib
|
||||
/usr/lib/llvm-8.0/lib
|
||||
/usr/local/llvm80/lib
|
||||
/usr/lib/llvm/9/lib
|
||||
/usr/lib/llvm-9/lib
|
||||
/usr/lib/llvm-9.0/lib
|
||||
/usr/local/llvm90/lib
|
||||
/mingw64/lib
|
||||
/c/msys64/mingw64/lib
|
||||
c:\\msys64\\mingw64\\lib)
|
||||
|
@ -8,14 +8,14 @@
|
||||
|
||||
find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h
|
||||
PATHS
|
||||
/usr/lib/llvm-8.0/include
|
||||
/usr/local/llvm80/include
|
||||
/usr/lib/llvm-9.0/include
|
||||
/usr/local/llvm90/include
|
||||
/mingw64/include)
|
||||
|
||||
find_library(LLD_LIBRARY NAMES lld-8.0 lld80 lld
|
||||
find_library(LLD_LIBRARY NAMES lld-9.0 lld90 lld
|
||||
PATHS
|
||||
/usr/lib/llvm-8.0/lib
|
||||
/usr/local/llvm80/lib
|
||||
/usr/lib/llvm-9.0/lib
|
||||
/usr/local/llvm90/lib
|
||||
)
|
||||
if(EXISTS ${LLD_LIBRARY})
|
||||
set(LLD_LIBRARIES ${LLD_LIBRARY})
|
||||
@ -24,8 +24,8 @@ else()
|
||||
string(TOUPPER ${_libname_} _prettylibname_)
|
||||
find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_}
|
||||
PATHS
|
||||
/usr/lib/llvm-8.0/lib
|
||||
/usr/local/llvm80/lib
|
||||
/usr/lib/llvm-9.0/lib
|
||||
/usr/local/llvm90/lib
|
||||
/mingw64/lib
|
||||
/c/msys64/mingw64/lib
|
||||
c:/msys64/mingw64/lib)
|
||||
|
@ -8,12 +8,12 @@
|
||||
# LLVM_LIBDIRS
|
||||
|
||||
find_program(LLVM_CONFIG_EXE
|
||||
NAMES llvm-config-8 llvm-config-8.0 llvm-config80 llvm-config
|
||||
NAMES llvm-config-9 llvm-config-9.0 llvm-config90 llvm-config
|
||||
PATHS
|
||||
"/mingw64/bin"
|
||||
"/c/msys64/mingw64/bin"
|
||||
"c:/msys64/mingw64/bin"
|
||||
"C:/Libraries/llvm-8.0.0/bin")
|
||||
"C:/Libraries/llvm-9.0.0/bin")
|
||||
|
||||
if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
|
||||
message(FATAL_ERROR "unable to find llvm-config")
|
||||
@ -28,14 +28,14 @@ execute_process(
|
||||
OUTPUT_VARIABLE LLVM_CONFIG_VERSION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if("${LLVM_CONFIG_VERSION}" VERSION_LESS 8)
|
||||
message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}")
|
||||
if("${LLVM_CONFIG_VERSION}" VERSION_LESS 9)
|
||||
message(FATAL_ERROR "expected LLVM 9.x but found ${LLVM_CONFIG_VERSION}")
|
||||
endif()
|
||||
if("${LLVM_CONFIG_VERSION}" VERSION_EQUAL 9)
|
||||
message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}")
|
||||
if("${LLVM_CONFIG_VERSION}" VERSION_EQUAL 10)
|
||||
message(FATAL_ERROR "expected LLVM 9.x but found ${LLVM_CONFIG_VERSION}")
|
||||
endif()
|
||||
if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 9)
|
||||
message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}")
|
||||
if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 10)
|
||||
message(FATAL_ERROR "expected LLVM 9.x but found ${LLVM_CONFIG_VERSION}")
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
@ -112,7 +112,7 @@ execute_process(
|
||||
set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
|
||||
|
||||
if(NOT LLVM_LIBRARIES)
|
||||
find_library(LLVM_LIBRARIES NAMES LLVM LLVM-8 LLVM-8.0)
|
||||
find_library(LLVM_LIBRARIES NAMES LLVM LLVM-9 LLVM-9.0)
|
||||
endif()
|
||||
|
||||
link_directories("${CMAKE_PREFIX_PATH}/lib")
|
||||
|
@ -33,6 +33,7 @@ static const ZigLLVM_SubArchType subarch_list_arm32[] = {
|
||||
ZigLLVM_ARMSubArch_v8r,
|
||||
ZigLLVM_ARMSubArch_v8m_baseline,
|
||||
ZigLLVM_ARMSubArch_v8m_mainline,
|
||||
ZigLLVM_ARMSubArch_v8_1m_mainline,
|
||||
ZigLLVM_ARMSubArch_v7,
|
||||
ZigLLVM_ARMSubArch_v7em,
|
||||
ZigLLVM_ARMSubArch_v7m,
|
||||
@ -76,6 +77,7 @@ static const ZigLLVM_ArchType arch_list[] = {
|
||||
ZigLLVM_armeb, // ARM (big endian): armeb
|
||||
ZigLLVM_aarch64, // AArch64 (little endian): aarch64
|
||||
ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be
|
||||
ZigLLVM_aarch64_32, // AArch64 (little endian) ILP32: aarch64_32
|
||||
ZigLLVM_arc, // ARC: Synopsys ARC
|
||||
ZigLLVM_avr, // AVR: Atmel AVR microcontroller
|
||||
ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
|
||||
@ -176,6 +178,7 @@ static const Os os_list[] = {
|
||||
OsHermitCore,
|
||||
OsHurd,
|
||||
OsWASI,
|
||||
OsEmscripten,
|
||||
OsZen,
|
||||
OsUefi,
|
||||
};
|
||||
@ -193,15 +196,19 @@ static const ZigLLVM_EnvironmentType abi_list[] = {
|
||||
ZigLLVM_CODE16,
|
||||
ZigLLVM_EABI,
|
||||
ZigLLVM_EABIHF,
|
||||
ZigLLVM_ELFv1,
|
||||
ZigLLVM_ELFv2,
|
||||
ZigLLVM_Android,
|
||||
ZigLLVM_Musl,
|
||||
ZigLLVM_MuslEABI,
|
||||
ZigLLVM_MuslEABIHF,
|
||||
|
||||
ZigLLVM_MSVC,
|
||||
ZigLLVM_Itanium,
|
||||
ZigLLVM_Cygnus,
|
||||
ZigLLVM_CoreCLR,
|
||||
ZigLLVM_Simulator,
|
||||
ZigLLVM_MacABI,
|
||||
};
|
||||
|
||||
static const ZigLLVM_ObjectFormatType oformat_list[] = {
|
||||
|
@ -48,6 +48,7 @@ enum Os {
|
||||
OsHermitCore,
|
||||
OsHurd,
|
||||
OsWASI,
|
||||
OsEmscripten,
|
||||
OsZen,
|
||||
OsUefi,
|
||||
};
|
||||
|
@ -176,7 +176,6 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM
|
||||
PMBuilder->SizeLevel = is_small ? 2 : 0;
|
||||
|
||||
PMBuilder->DisableTailCalls = is_debug;
|
||||
PMBuilder->DisableUnitAtATime = is_debug;
|
||||
PMBuilder->DisableUnrollLoops = is_debug;
|
||||
PMBuilder->SLPVectorize = !is_debug;
|
||||
PMBuilder->LoopVectorize = !is_debug;
|
||||
@ -805,6 +804,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) {
|
||||
return "v8m_baseline";
|
||||
case ZigLLVM_ARMSubArch_v8m_mainline:
|
||||
return "v8m_mainline";
|
||||
case ZigLLVM_ARMSubArch_v8_1m_mainline:
|
||||
return "v8_1m_mainline";
|
||||
case ZigLLVM_ARMSubArch_v7:
|
||||
return "v7";
|
||||
case ZigLLVM_ARMSubArch_v7em:
|
||||
@ -964,6 +965,7 @@ bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_
|
||||
|
||||
switch (oformat) {
|
||||
case ZigLLVM_UnknownObjectFormat:
|
||||
case ZigLLVM_XCOFF:
|
||||
assert(false); // unreachable
|
||||
|
||||
case ZigLLVM_COFF:
|
||||
@ -1043,6 +1045,7 @@ static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8 == Triple::ARMSubArch_v
|
||||
static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8r == Triple::ARMSubArch_v8r, "");
|
||||
static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8m_baseline == Triple::ARMSubArch_v8m_baseline, "");
|
||||
static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8m_mainline == Triple::ARMSubArch_v8m_mainline, "");
|
||||
static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8_1m_mainline == Triple::ARMSubArch_v8_1m_mainline, "");
|
||||
static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v7 == Triple::ARMSubArch_v7, "");
|
||||
static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v7em == Triple::ARMSubArch_v7em, "");
|
||||
static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v7m == Triple::ARMSubArch_v7m, "");
|
||||
@ -1115,6 +1118,10 @@ static_assert((Triple::OSType)ZigLLVM_WatchOS == Triple::WatchOS, "");
|
||||
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, "");
|
||||
static_assert((Triple::OSType)ZigLLVM_WASI == Triple::WASI, "");
|
||||
static_assert((Triple::OSType)ZigLLVM_Emscripten == Triple::Emscripten, "");
|
||||
static_assert((Triple::OSType)ZigLLVM_LastOSType == Triple::LastOSType, "");
|
||||
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_UnknownEnvironment == Triple::UnknownEnvironment, "");
|
||||
@ -1127,6 +1134,8 @@ static_assert((Triple::EnvironmentType)ZigLLVM_GNUX32 == Triple::GNUX32, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_CODE16 == Triple::CODE16, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_EABI == Triple::EABI, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_EABIHF == Triple::EABIHF, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_ELFv1 == Triple::ELFv1, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_ELFv2 == Triple::ELFv2, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_Android == Triple::Android, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_Musl == Triple::Musl, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABI == Triple::MuslEABI, "");
|
||||
@ -1143,3 +1152,4 @@ static_assert((Triple::ObjectFormatType)ZigLLVM_COFF == Triple::COFF, "");
|
||||
static_assert((Triple::ObjectFormatType)ZigLLVM_ELF == Triple::ELF, "");
|
||||
static_assert((Triple::ObjectFormatType)ZigLLVM_MachO == Triple::MachO, "");
|
||||
static_assert((Triple::ObjectFormatType)ZigLLVM_Wasm == Triple::Wasm, "");
|
||||
static_assert((Triple::ObjectFormatType)ZigLLVM_XCOFF == Triple::XCOFF, "");
|
||||
|
@ -227,6 +227,7 @@ enum ZigLLVM_ArchType {
|
||||
ZigLLVM_armeb, // ARM (big endian): armeb
|
||||
ZigLLVM_aarch64, // AArch64 (little endian): aarch64
|
||||
ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be
|
||||
ZigLLVM_aarch64_32, // AArch64 (little endian) ILP32: aarch64_32
|
||||
ZigLLVM_arc, // ARC: Synopsys ARC
|
||||
ZigLLVM_avr, // AVR: Atmel AVR microcontroller
|
||||
ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
|
||||
@ -289,6 +290,7 @@ enum ZigLLVM_SubArchType {
|
||||
ZigLLVM_ARMSubArch_v8r,
|
||||
ZigLLVM_ARMSubArch_v8m_baseline,
|
||||
ZigLLVM_ARMSubArch_v8m_mainline,
|
||||
ZigLLVM_ARMSubArch_v8_1m_mainline,
|
||||
ZigLLVM_ARMSubArch_v7,
|
||||
ZigLLVM_ARMSubArch_v7em,
|
||||
ZigLLVM_ARMSubArch_v7m,
|
||||
@ -370,11 +372,12 @@ enum ZigLLVM_OSType {
|
||||
ZigLLVM_HermitCore, // HermitCore Unikernel/Multikernel
|
||||
ZigLLVM_Hurd, // GNU/Hurd
|
||||
ZigLLVM_WASI, // Experimental WebAssembly OS
|
||||
ZigLLVM_Emscripten,
|
||||
|
||||
ZigLLVM_LastOSType = ZigLLVM_WASI
|
||||
ZigLLVM_LastOSType = ZigLLVM_Emscripten
|
||||
};
|
||||
|
||||
// Synchronize with target.cpp::environ_list
|
||||
// Synchronize with target.cpp::abi_list
|
||||
enum ZigLLVM_EnvironmentType {
|
||||
ZigLLVM_UnknownEnvironment,
|
||||
|
||||
@ -387,6 +390,8 @@ enum ZigLLVM_EnvironmentType {
|
||||
ZigLLVM_CODE16,
|
||||
ZigLLVM_EABI,
|
||||
ZigLLVM_EABIHF,
|
||||
ZigLLVM_ELFv1,
|
||||
ZigLLVM_ELFv2,
|
||||
ZigLLVM_Android,
|
||||
ZigLLVM_Musl,
|
||||
ZigLLVM_MuslEABI,
|
||||
@ -396,9 +401,10 @@ enum ZigLLVM_EnvironmentType {
|
||||
ZigLLVM_Itanium,
|
||||
ZigLLVM_Cygnus,
|
||||
ZigLLVM_CoreCLR,
|
||||
ZigLLVM_Simulator,
|
||||
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_Simulator
|
||||
ZigLLVM_LastEnvironmentType = ZigLLVM_MacABI
|
||||
};
|
||||
|
||||
enum ZigLLVM_ObjectFormatType {
|
||||
@ -408,6 +414,7 @@ enum ZigLLVM_ObjectFormatType {
|
||||
ZigLLVM_ELF,
|
||||
ZigLLVM_MachO,
|
||||
ZigLLVM_Wasm,
|
||||
ZigLLVM_XCOFF,
|
||||
};
|
||||
|
||||
#define ZigLLVM_DIFlags_Zero 0U
|
||||
|
Loading…
Reference in New Issue
Block a user