authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-07-16 22:23:48-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-07-16 22:23:48-04:00
log8f92a49dfde5e8690525da028844cb7c1188d397
tree6974ac66da2a301b8a845bb9008de02ecc4ed39e
parentc0b4121ff2d31b2ef37e480eec18f0bd063d7a2d
signaturelock-open Commit is signed but in an unrecognized format.

update to llvm9 trunk


8 files changed, 59 insertions(+), 34 deletions(-)

README.md+5-5
......@@ -26,14 +26,14 @@ Note that you can
2626
2727 * cmake >= 2.8.5
2828 * gcc >= 5.0.0 or clang >= 3.6.0
29 * LLVM, Clang, LLD development libraries == 8.x, compiled with the same gcc or clang version above
29 * LLVM, Clang, LLD development libraries == 9.x, compiled with the same gcc or clang version above
3030 - 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).
3131
3232##### Windows
3333
3434 * cmake >= 2.8.5
3535 * Microsoft Visual Studio 2017 (version 15.8)
36 * LLVM, Clang, LLD development libraries == 8.x, compiled with the same MSVC version above
36 * LLVM, Clang, LLD development libraries == 9.x, compiled with the same MSVC version above
3737 - 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).
3838
3939#### Instructions
......@@ -50,11 +50,11 @@ make install
5050##### MacOS
5151
5252```
53brew install cmake llvm@8
54brew outdated llvm@8 || brew upgrade llvm@8
53brew install cmake llvm@9
54brew outdated llvm@9 || brew upgrade llvm@9
5555mkdir build
5656cd build
57cmake .. -DCMAKE_PREFIX_PATH=/usr/local/Cellar/llvm/8.0.0_1
57cmake .. -DCMAKE_PREFIX_PATH=/usr/local/Cellar/llvm/9.0.0
5858make install
5959```
6060
cmake/Findclang.cmake+8-8
......@@ -38,10 +38,10 @@ if(MSVC)
3838else()
3939 find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
4040 PATHS
41 /usr/lib/llvm/8/include
42 /usr/lib/llvm-8/include
43 /usr/lib/llvm-8.0/include
44 /usr/local/llvm80/include
41 /usr/lib/llvm/9/include
42 /usr/lib/llvm-9/include
43 /usr/lib/llvm-9.0/include
44 /usr/local/llvm90/include
4545 /mingw64/include)
4646
4747 macro(FIND_AND_ADD_CLANG_LIB _libname_)
......@@ -49,10 +49,10 @@ else()
4949 find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_}
5050 PATHS
5151 ${CLANG_LIBDIRS}
52 /usr/lib/llvm/8/lib
53 /usr/lib/llvm-8/lib
54 /usr/lib/llvm-8.0/lib
55 /usr/local/llvm80/lib
52 /usr/lib/llvm/9/lib
53 /usr/lib/llvm-9/lib
54 /usr/lib/llvm-9.0/lib
55 /usr/local/llvm90/lib
5656 /mingw64/lib
5757 /c/msys64/mingw64/lib
5858 c:\\msys64\\mingw64\\lib)
cmake/Findlld.cmake+7-7
......@@ -8,14 +8,14 @@
88
99find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h
1010 PATHS
11 /usr/lib/llvm-8.0/include
12 /usr/local/llvm80/include
11 /usr/lib/llvm-9.0/include
12 /usr/local/llvm90/include
1313 /mingw64/include)
1414
15find_library(LLD_LIBRARY NAMES lld-8.0 lld80 lld
15find_library(LLD_LIBRARY NAMES lld-9.0 lld90 lld
1616 PATHS
17 /usr/lib/llvm-8.0/lib
18 /usr/local/llvm80/lib
17 /usr/lib/llvm-9.0/lib
18 /usr/local/llvm90/lib
1919)
2020if(EXISTS ${LLD_LIBRARY})
2121 set(LLD_LIBRARIES ${LLD_LIBRARY})
......@@ -24,8 +24,8 @@ else()
2424 string(TOUPPER ${_libname_} _prettylibname_)
2525 find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_}
2626 PATHS
27 /usr/lib/llvm-8.0/lib
28 /usr/local/llvm80/lib
27 /usr/lib/llvm-9.0/lib
28 /usr/local/llvm90/lib
2929 /mingw64/lib
3030 /c/msys64/mingw64/lib
3131 c:/msys64/mingw64/lib)
cmake/Findllvm.cmake+9-9
......@@ -8,12 +8,12 @@
88# LLVM_LIBDIRS
99
1010find_program(LLVM_CONFIG_EXE
11 NAMES llvm-config-8 llvm-config-8.0 llvm-config80 llvm-config
11 NAMES llvm-config-9 llvm-config-9.0 llvm-config90 llvm-config
1212 PATHS
1313 "/mingw64/bin"
1414 "/c/msys64/mingw64/bin"
1515 "c:/msys64/mingw64/bin"
16 "C:/Libraries/llvm-8.0.0/bin")
16 "C:/Libraries/llvm-9.0.0/bin")
1717
1818if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
1919 message(FATAL_ERROR "unable to find llvm-config")
......@@ -28,14 +28,14 @@ execute_process(
2828 OUTPUT_VARIABLE LLVM_CONFIG_VERSION
2929 OUTPUT_STRIP_TRAILING_WHITESPACE)
3030
31if("${LLVM_CONFIG_VERSION}" VERSION_LESS 8)
32 message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}")
31if("${LLVM_CONFIG_VERSION}" VERSION_LESS 9)
32 message(FATAL_ERROR "expected LLVM 9.x but found ${LLVM_CONFIG_VERSION}")
3333endif()
34if("${LLVM_CONFIG_VERSION}" VERSION_EQUAL 9)
35 message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}")
34if("${LLVM_CONFIG_VERSION}" VERSION_EQUAL 10)
35 message(FATAL_ERROR "expected LLVM 9.x but found ${LLVM_CONFIG_VERSION}")
3636endif()
37if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 9)
38 message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}")
37if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 10)
38 message(FATAL_ERROR "expected LLVM 9.x but found ${LLVM_CONFIG_VERSION}")
3939endif()
4040
4141execute_process(
......@@ -112,7 +112,7 @@ execute_process(
112112set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
113113
114114if(NOT LLVM_LIBRARIES)
115 find_library(LLVM_LIBRARIES NAMES LLVM LLVM-8 LLVM-8.0)
115 find_library(LLVM_LIBRARIES NAMES LLVM LLVM-9 LLVM-9.0)
116116endif()
117117
118118link_directories("${CMAKE_PREFIX_PATH}/lib")
src/target.cpp+7
......@@ -33,6 +33,7 @@ static const ZigLLVM_SubArchType subarch_list_arm32[] = {
3333 ZigLLVM_ARMSubArch_v8r,
3434 ZigLLVM_ARMSubArch_v8m_baseline,
3535 ZigLLVM_ARMSubArch_v8m_mainline,
36 ZigLLVM_ARMSubArch_v8_1m_mainline,
3637 ZigLLVM_ARMSubArch_v7,
3738 ZigLLVM_ARMSubArch_v7em,
3839 ZigLLVM_ARMSubArch_v7m,
......@@ -76,6 +77,7 @@ static const ZigLLVM_ArchType arch_list[] = {
7677 ZigLLVM_armeb, // ARM (big endian): armeb
7778 ZigLLVM_aarch64, // AArch64 (little endian): aarch64
7879 ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be
80 ZigLLVM_aarch64_32, // AArch64 (little endian) ILP32: aarch64_32
7981 ZigLLVM_arc, // ARC: Synopsys ARC
8082 ZigLLVM_avr, // AVR: Atmel AVR microcontroller
8183 ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
......@@ -176,6 +178,7 @@ static const Os os_list[] = {
176178 OsHermitCore,
177179 OsHurd,
178180 OsWASI,
181 OsEmscripten,
179182 OsZen,
180183 OsUefi,
181184};
......@@ -193,15 +196,19 @@ static const ZigLLVM_EnvironmentType abi_list[] = {
193196 ZigLLVM_CODE16,
194197 ZigLLVM_EABI,
195198 ZigLLVM_EABIHF,
199 ZigLLVM_ELFv1,
200 ZigLLVM_ELFv2,
196201 ZigLLVM_Android,
197202 ZigLLVM_Musl,
198203 ZigLLVM_MuslEABI,
199204 ZigLLVM_MuslEABIHF,
205
200206 ZigLLVM_MSVC,
201207 ZigLLVM_Itanium,
202208 ZigLLVM_Cygnus,
203209 ZigLLVM_CoreCLR,
204210 ZigLLVM_Simulator,
211 ZigLLVM_MacABI,
205212};
206213
207214static const ZigLLVM_ObjectFormatType oformat_list[] = {
src/target.hpp+1
......@@ -48,6 +48,7 @@ enum Os {
4848 OsHermitCore,
4949 OsHurd,
5050 OsWASI,
51 OsEmscripten,
5152 OsZen,
5253 OsUefi,
5354};
src/zig_llvm.cpp+11-1
......@@ -176,7 +176,6 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM
176176 PMBuilder->SizeLevel = is_small ? 2 : 0;
177177
178178 PMBuilder->DisableTailCalls = is_debug;
179 PMBuilder->DisableUnitAtATime = is_debug;
180179 PMBuilder->DisableUnrollLoops = is_debug;
181180 PMBuilder->SLPVectorize = !is_debug;
182181 PMBuilder->LoopVectorize = !is_debug;
......@@ -805,6 +804,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) {
805804 return "v8m_baseline";
806805 case ZigLLVM_ARMSubArch_v8m_mainline:
807806 return "v8m_mainline";
807 case ZigLLVM_ARMSubArch_v8_1m_mainline:
808 return "v8_1m_mainline";
808809 case ZigLLVM_ARMSubArch_v7:
809810 return "v7";
810811 case ZigLLVM_ARMSubArch_v7em:
......@@ -964,6 +965,7 @@ bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_
964965
965966 switch (oformat) {
966967 case ZigLLVM_UnknownObjectFormat:
968 case ZigLLVM_XCOFF:
967969 assert(false); // unreachable
968970
969971 case ZigLLVM_COFF:
......@@ -1043,6 +1045,7 @@ static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8 == Triple::ARMSubArch_v
10431045static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8r == Triple::ARMSubArch_v8r, "");
10441046static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8m_baseline == Triple::ARMSubArch_v8m_baseline, "");
10451047static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8m_mainline == Triple::ARMSubArch_v8m_mainline, "");
1048static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8_1m_mainline == Triple::ARMSubArch_v8_1m_mainline, "");
10461049static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v7 == Triple::ARMSubArch_v7, "");
10471050static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v7em == Triple::ARMSubArch_v7em, "");
10481051static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v7m == Triple::ARMSubArch_v7m, "");
......@@ -1115,6 +1118,10 @@ static_assert((Triple::OSType)ZigLLVM_WatchOS == Triple::WatchOS, "");
11151118static_assert((Triple::OSType)ZigLLVM_Mesa3D == Triple::Mesa3D, "");
11161119static_assert((Triple::OSType)ZigLLVM_Contiki == Triple::Contiki, "");
11171120static_assert((Triple::OSType)ZigLLVM_AMDPAL == Triple::AMDPAL, "");
1121static_assert((Triple::OSType)ZigLLVM_HermitCore == Triple::HermitCore, "");
1122static_assert((Triple::OSType)ZigLLVM_Hurd == Triple::Hurd, "");
1123static_assert((Triple::OSType)ZigLLVM_WASI == Triple::WASI, "");
1124static_assert((Triple::OSType)ZigLLVM_Emscripten == Triple::Emscripten, "");
11181125static_assert((Triple::OSType)ZigLLVM_LastOSType == Triple::LastOSType, "");
11191126
11201127static_assert((Triple::EnvironmentType)ZigLLVM_UnknownEnvironment == Triple::UnknownEnvironment, "");
......@@ -1127,6 +1134,8 @@ static_assert((Triple::EnvironmentType)ZigLLVM_GNUX32 == Triple::GNUX32, "");
11271134static_assert((Triple::EnvironmentType)ZigLLVM_CODE16 == Triple::CODE16, "");
11281135static_assert((Triple::EnvironmentType)ZigLLVM_EABI == Triple::EABI, "");
11291136static_assert((Triple::EnvironmentType)ZigLLVM_EABIHF == Triple::EABIHF, "");
1137static_assert((Triple::EnvironmentType)ZigLLVM_ELFv1 == Triple::ELFv1, "");
1138static_assert((Triple::EnvironmentType)ZigLLVM_ELFv2 == Triple::ELFv2, "");
11301139static_assert((Triple::EnvironmentType)ZigLLVM_Android == Triple::Android, "");
11311140static_assert((Triple::EnvironmentType)ZigLLVM_Musl == Triple::Musl, "");
11321141static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABI == Triple::MuslEABI, "");
......@@ -1143,3 +1152,4 @@ static_assert((Triple::ObjectFormatType)ZigLLVM_COFF == Triple::COFF, "");
11431152static_assert((Triple::ObjectFormatType)ZigLLVM_ELF == Triple::ELF, "");
11441153static_assert((Triple::ObjectFormatType)ZigLLVM_MachO == Triple::MachO, "");
11451154static_assert((Triple::ObjectFormatType)ZigLLVM_Wasm == Triple::Wasm, "");
1155static_assert((Triple::ObjectFormatType)ZigLLVM_XCOFF == Triple::XCOFF, "");
src/zig_llvm.h+11-4
......@@ -227,6 +227,7 @@ enum ZigLLVM_ArchType {
227227 ZigLLVM_armeb, // ARM (big endian): armeb
228228 ZigLLVM_aarch64, // AArch64 (little endian): aarch64
229229 ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be
230 ZigLLVM_aarch64_32, // AArch64 (little endian) ILP32: aarch64_32
230231 ZigLLVM_arc, // ARC: Synopsys ARC
231232 ZigLLVM_avr, // AVR: Atmel AVR microcontroller
232233 ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
......@@ -289,6 +290,7 @@ enum ZigLLVM_SubArchType {
289290 ZigLLVM_ARMSubArch_v8r,
290291 ZigLLVM_ARMSubArch_v8m_baseline,
291292 ZigLLVM_ARMSubArch_v8m_mainline,
293 ZigLLVM_ARMSubArch_v8_1m_mainline,
292294 ZigLLVM_ARMSubArch_v7,
293295 ZigLLVM_ARMSubArch_v7em,
294296 ZigLLVM_ARMSubArch_v7m,
......@@ -370,11 +372,12 @@ enum ZigLLVM_OSType {
370372 ZigLLVM_HermitCore, // HermitCore Unikernel/Multikernel
371373 ZigLLVM_Hurd, // GNU/Hurd
372374 ZigLLVM_WASI, // Experimental WebAssembly OS
375 ZigLLVM_Emscripten,
373376
374 ZigLLVM_LastOSType = ZigLLVM_WASI
377 ZigLLVM_LastOSType = ZigLLVM_Emscripten
375378};
376379
377// Synchronize with target.cpp::environ_list
380// Synchronize with target.cpp::abi_list
378381enum ZigLLVM_EnvironmentType {
379382 ZigLLVM_UnknownEnvironment,
380383
......@@ -387,6 +390,8 @@ enum ZigLLVM_EnvironmentType {
387390 ZigLLVM_CODE16,
388391 ZigLLVM_EABI,
389392 ZigLLVM_EABIHF,
393 ZigLLVM_ELFv1,
394 ZigLLVM_ELFv2,
390395 ZigLLVM_Android,
391396 ZigLLVM_Musl,
392397 ZigLLVM_MuslEABI,
......@@ -396,9 +401,10 @@ enum ZigLLVM_EnvironmentType {
396401 ZigLLVM_Itanium,
397402 ZigLLVM_Cygnus,
398403 ZigLLVM_CoreCLR,
399 ZigLLVM_Simulator,
404 ZigLLVM_Simulator, // Simulator variants of other systems, e.g., Apple's iOS
405 ZigLLVM_MacABI, // Mac Catalyst variant of Apple's iOS deployment target.
400406
401 ZigLLVM_LastEnvironmentType = ZigLLVM_Simulator
407 ZigLLVM_LastEnvironmentType = ZigLLVM_MacABI
402408};
403409
404410enum ZigLLVM_ObjectFormatType {
......@@ -408,6 +414,7 @@ enum ZigLLVM_ObjectFormatType {
408414 ZigLLVM_ELF,
409415 ZigLLVM_MachO,
410416 ZigLLVM_Wasm,
417 ZigLLVM_XCOFF,
411418};
412419
413420#define ZigLLVM_DIFlags_Zero 0U