update to llvm9 trunk

This commit is contained in:
Andrew Kelley 2019-07-16 22:23:48 -04:00
parent c0b4121ff2
commit 8f92a49dfd
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9
8 changed files with 59 additions and 34 deletions

View File

@ -26,14 +26,14 @@ Note that you can
* cmake >= 2.8.5 * cmake >= 2.8.5
* gcc >= 5.0.0 or clang >= 3.6.0 * 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). - 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 ##### Windows
* cmake >= 2.8.5 * cmake >= 2.8.5
* Microsoft Visual Studio 2017 (version 15.8) * 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). - 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 #### Instructions
@ -50,11 +50,11 @@ make install
##### MacOS ##### MacOS
``` ```
brew install cmake llvm@8 brew install cmake llvm@9
brew outdated llvm@8 || brew upgrade llvm@8 brew outdated llvm@9 || brew upgrade llvm@9
mkdir build mkdir build
cd 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 make install
``` ```

View File

@ -38,10 +38,10 @@ if(MSVC)
else() else()
find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
PATHS PATHS
/usr/lib/llvm/8/include /usr/lib/llvm/9/include
/usr/lib/llvm-8/include /usr/lib/llvm-9/include
/usr/lib/llvm-8.0/include /usr/lib/llvm-9.0/include
/usr/local/llvm80/include /usr/local/llvm90/include
/mingw64/include) /mingw64/include)
macro(FIND_AND_ADD_CLANG_LIB _libname_) macro(FIND_AND_ADD_CLANG_LIB _libname_)
@ -49,10 +49,10 @@ else()
find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_}
PATHS PATHS
${CLANG_LIBDIRS} ${CLANG_LIBDIRS}
/usr/lib/llvm/8/lib /usr/lib/llvm/9/lib
/usr/lib/llvm-8/lib /usr/lib/llvm-9/lib
/usr/lib/llvm-8.0/lib /usr/lib/llvm-9.0/lib
/usr/local/llvm80/lib /usr/local/llvm90/lib
/mingw64/lib /mingw64/lib
/c/msys64/mingw64/lib /c/msys64/mingw64/lib
c:\\msys64\\mingw64\\lib) c:\\msys64\\mingw64\\lib)

View File

@ -8,14 +8,14 @@
find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h
PATHS PATHS
/usr/lib/llvm-8.0/include /usr/lib/llvm-9.0/include
/usr/local/llvm80/include /usr/local/llvm90/include
/mingw64/include) /mingw64/include)
find_library(LLD_LIBRARY NAMES lld-8.0 lld80 lld find_library(LLD_LIBRARY NAMES lld-9.0 lld90 lld
PATHS PATHS
/usr/lib/llvm-8.0/lib /usr/lib/llvm-9.0/lib
/usr/local/llvm80/lib /usr/local/llvm90/lib
) )
if(EXISTS ${LLD_LIBRARY}) if(EXISTS ${LLD_LIBRARY})
set(LLD_LIBRARIES ${LLD_LIBRARY}) set(LLD_LIBRARIES ${LLD_LIBRARY})
@ -24,8 +24,8 @@ else()
string(TOUPPER ${_libname_} _prettylibname_) string(TOUPPER ${_libname_} _prettylibname_)
find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_} find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_}
PATHS PATHS
/usr/lib/llvm-8.0/lib /usr/lib/llvm-9.0/lib
/usr/local/llvm80/lib /usr/local/llvm90/lib
/mingw64/lib /mingw64/lib
/c/msys64/mingw64/lib /c/msys64/mingw64/lib
c:/msys64/mingw64/lib) c:/msys64/mingw64/lib)

View File

@ -8,12 +8,12 @@
# LLVM_LIBDIRS # LLVM_LIBDIRS
find_program(LLVM_CONFIG_EXE 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 PATHS
"/mingw64/bin" "/mingw64/bin"
"/c/msys64/mingw64/bin" "/c/msys64/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") if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
message(FATAL_ERROR "unable to find llvm-config") message(FATAL_ERROR "unable to find llvm-config")
@ -28,14 +28,14 @@ execute_process(
OUTPUT_VARIABLE LLVM_CONFIG_VERSION OUTPUT_VARIABLE LLVM_CONFIG_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
if("${LLVM_CONFIG_VERSION}" VERSION_LESS 8) if("${LLVM_CONFIG_VERSION}" VERSION_LESS 9)
message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}") message(FATAL_ERROR "expected LLVM 9.x but found ${LLVM_CONFIG_VERSION}")
endif() endif()
if("${LLVM_CONFIG_VERSION}" VERSION_EQUAL 9) if("${LLVM_CONFIG_VERSION}" VERSION_EQUAL 10)
message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}") message(FATAL_ERROR "expected LLVM 9.x but found ${LLVM_CONFIG_VERSION}")
endif() endif()
if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 9) if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 10)
message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}") message(FATAL_ERROR "expected LLVM 9.x but found ${LLVM_CONFIG_VERSION}")
endif() endif()
execute_process( execute_process(
@ -112,7 +112,7 @@ execute_process(
set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS}) set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
if(NOT LLVM_LIBRARIES) 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() endif()
link_directories("${CMAKE_PREFIX_PATH}/lib") link_directories("${CMAKE_PREFIX_PATH}/lib")

View File

@ -33,6 +33,7 @@ static const ZigLLVM_SubArchType subarch_list_arm32[] = {
ZigLLVM_ARMSubArch_v8r, ZigLLVM_ARMSubArch_v8r,
ZigLLVM_ARMSubArch_v8m_baseline, ZigLLVM_ARMSubArch_v8m_baseline,
ZigLLVM_ARMSubArch_v8m_mainline, ZigLLVM_ARMSubArch_v8m_mainline,
ZigLLVM_ARMSubArch_v8_1m_mainline,
ZigLLVM_ARMSubArch_v7, ZigLLVM_ARMSubArch_v7,
ZigLLVM_ARMSubArch_v7em, ZigLLVM_ARMSubArch_v7em,
ZigLLVM_ARMSubArch_v7m, ZigLLVM_ARMSubArch_v7m,
@ -76,6 +77,7 @@ static const ZigLLVM_ArchType arch_list[] = {
ZigLLVM_armeb, // ARM (big endian): armeb ZigLLVM_armeb, // ARM (big endian): armeb
ZigLLVM_aarch64, // AArch64 (little endian): aarch64 ZigLLVM_aarch64, // AArch64 (little endian): aarch64
ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be
ZigLLVM_aarch64_32, // AArch64 (little endian) ILP32: aarch64_32
ZigLLVM_arc, // ARC: Synopsys ARC ZigLLVM_arc, // ARC: Synopsys ARC
ZigLLVM_avr, // AVR: Atmel AVR microcontroller ZigLLVM_avr, // AVR: Atmel AVR microcontroller
ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian) ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
@ -176,6 +178,7 @@ static const Os os_list[] = {
OsHermitCore, OsHermitCore,
OsHurd, OsHurd,
OsWASI, OsWASI,
OsEmscripten,
OsZen, OsZen,
OsUefi, OsUefi,
}; };
@ -193,15 +196,19 @@ static const ZigLLVM_EnvironmentType abi_list[] = {
ZigLLVM_CODE16, ZigLLVM_CODE16,
ZigLLVM_EABI, ZigLLVM_EABI,
ZigLLVM_EABIHF, ZigLLVM_EABIHF,
ZigLLVM_ELFv1,
ZigLLVM_ELFv2,
ZigLLVM_Android, ZigLLVM_Android,
ZigLLVM_Musl, ZigLLVM_Musl,
ZigLLVM_MuslEABI, ZigLLVM_MuslEABI,
ZigLLVM_MuslEABIHF, ZigLLVM_MuslEABIHF,
ZigLLVM_MSVC, ZigLLVM_MSVC,
ZigLLVM_Itanium, ZigLLVM_Itanium,
ZigLLVM_Cygnus, ZigLLVM_Cygnus,
ZigLLVM_CoreCLR, ZigLLVM_CoreCLR,
ZigLLVM_Simulator, ZigLLVM_Simulator,
ZigLLVM_MacABI,
}; };
static const ZigLLVM_ObjectFormatType oformat_list[] = { static const ZigLLVM_ObjectFormatType oformat_list[] = {

View File

@ -48,6 +48,7 @@ enum Os {
OsHermitCore, OsHermitCore,
OsHurd, OsHurd,
OsWASI, OsWASI,
OsEmscripten,
OsZen, OsZen,
OsUefi, OsUefi,
}; };

View File

@ -176,7 +176,6 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM
PMBuilder->SizeLevel = is_small ? 2 : 0; PMBuilder->SizeLevel = is_small ? 2 : 0;
PMBuilder->DisableTailCalls = is_debug; PMBuilder->DisableTailCalls = is_debug;
PMBuilder->DisableUnitAtATime = is_debug;
PMBuilder->DisableUnrollLoops = is_debug; PMBuilder->DisableUnrollLoops = is_debug;
PMBuilder->SLPVectorize = !is_debug; PMBuilder->SLPVectorize = !is_debug;
PMBuilder->LoopVectorize = !is_debug; PMBuilder->LoopVectorize = !is_debug;
@ -805,6 +804,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) {
return "v8m_baseline"; return "v8m_baseline";
case ZigLLVM_ARMSubArch_v8m_mainline: case ZigLLVM_ARMSubArch_v8m_mainline:
return "v8m_mainline"; return "v8m_mainline";
case ZigLLVM_ARMSubArch_v8_1m_mainline:
return "v8_1m_mainline";
case ZigLLVM_ARMSubArch_v7: case ZigLLVM_ARMSubArch_v7:
return "v7"; return "v7";
case ZigLLVM_ARMSubArch_v7em: case ZigLLVM_ARMSubArch_v7em:
@ -964,6 +965,7 @@ bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_
switch (oformat) { switch (oformat) {
case ZigLLVM_UnknownObjectFormat: case ZigLLVM_UnknownObjectFormat:
case ZigLLVM_XCOFF:
assert(false); // unreachable assert(false); // unreachable
case ZigLLVM_COFF: 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_v8r == Triple::ARMSubArch_v8r, "");
static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v8m_baseline == Triple::ARMSubArch_v8m_baseline, ""); 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_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_v7 == Triple::ARMSubArch_v7, "");
static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v7em == Triple::ARMSubArch_v7em, ""); static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v7em == Triple::ARMSubArch_v7em, "");
static_assert((Triple::SubArchType)ZigLLVM_ARMSubArch_v7m == Triple::ARMSubArch_v7m, ""); 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_Mesa3D == Triple::Mesa3D, "");
static_assert((Triple::OSType)ZigLLVM_Contiki == Triple::Contiki, ""); static_assert((Triple::OSType)ZigLLVM_Contiki == Triple::Contiki, "");
static_assert((Triple::OSType)ZigLLVM_AMDPAL == Triple::AMDPAL, ""); 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::OSType)ZigLLVM_LastOSType == Triple::LastOSType, "");
static_assert((Triple::EnvironmentType)ZigLLVM_UnknownEnvironment == Triple::UnknownEnvironment, ""); 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_CODE16 == Triple::CODE16, "");
static_assert((Triple::EnvironmentType)ZigLLVM_EABI == Triple::EABI, ""); static_assert((Triple::EnvironmentType)ZigLLVM_EABI == Triple::EABI, "");
static_assert((Triple::EnvironmentType)ZigLLVM_EABIHF == Triple::EABIHF, ""); 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_Android == Triple::Android, "");
static_assert((Triple::EnvironmentType)ZigLLVM_Musl == Triple::Musl, ""); static_assert((Triple::EnvironmentType)ZigLLVM_Musl == Triple::Musl, "");
static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABI == Triple::MuslEABI, ""); 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_ELF == Triple::ELF, "");
static_assert((Triple::ObjectFormatType)ZigLLVM_MachO == Triple::MachO, ""); static_assert((Triple::ObjectFormatType)ZigLLVM_MachO == Triple::MachO, "");
static_assert((Triple::ObjectFormatType)ZigLLVM_Wasm == Triple::Wasm, ""); static_assert((Triple::ObjectFormatType)ZigLLVM_Wasm == Triple::Wasm, "");
static_assert((Triple::ObjectFormatType)ZigLLVM_XCOFF == Triple::XCOFF, "");

View File

@ -227,6 +227,7 @@ enum ZigLLVM_ArchType {
ZigLLVM_armeb, // ARM (big endian): armeb ZigLLVM_armeb, // ARM (big endian): armeb
ZigLLVM_aarch64, // AArch64 (little endian): aarch64 ZigLLVM_aarch64, // AArch64 (little endian): aarch64
ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be
ZigLLVM_aarch64_32, // AArch64 (little endian) ILP32: aarch64_32
ZigLLVM_arc, // ARC: Synopsys ARC ZigLLVM_arc, // ARC: Synopsys ARC
ZigLLVM_avr, // AVR: Atmel AVR microcontroller ZigLLVM_avr, // AVR: Atmel AVR microcontroller
ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian) ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
@ -289,6 +290,7 @@ enum ZigLLVM_SubArchType {
ZigLLVM_ARMSubArch_v8r, ZigLLVM_ARMSubArch_v8r,
ZigLLVM_ARMSubArch_v8m_baseline, ZigLLVM_ARMSubArch_v8m_baseline,
ZigLLVM_ARMSubArch_v8m_mainline, ZigLLVM_ARMSubArch_v8m_mainline,
ZigLLVM_ARMSubArch_v8_1m_mainline,
ZigLLVM_ARMSubArch_v7, ZigLLVM_ARMSubArch_v7,
ZigLLVM_ARMSubArch_v7em, ZigLLVM_ARMSubArch_v7em,
ZigLLVM_ARMSubArch_v7m, ZigLLVM_ARMSubArch_v7m,
@ -370,11 +372,12 @@ enum ZigLLVM_OSType {
ZigLLVM_HermitCore, // HermitCore Unikernel/Multikernel ZigLLVM_HermitCore, // HermitCore Unikernel/Multikernel
ZigLLVM_Hurd, // GNU/Hurd ZigLLVM_Hurd, // GNU/Hurd
ZigLLVM_WASI, // Experimental WebAssembly OS 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 { enum ZigLLVM_EnvironmentType {
ZigLLVM_UnknownEnvironment, ZigLLVM_UnknownEnvironment,
@ -387,6 +390,8 @@ enum ZigLLVM_EnvironmentType {
ZigLLVM_CODE16, ZigLLVM_CODE16,
ZigLLVM_EABI, ZigLLVM_EABI,
ZigLLVM_EABIHF, ZigLLVM_EABIHF,
ZigLLVM_ELFv1,
ZigLLVM_ELFv2,
ZigLLVM_Android, ZigLLVM_Android,
ZigLLVM_Musl, ZigLLVM_Musl,
ZigLLVM_MuslEABI, ZigLLVM_MuslEABI,
@ -396,9 +401,10 @@ enum ZigLLVM_EnvironmentType {
ZigLLVM_Itanium, ZigLLVM_Itanium,
ZigLLVM_Cygnus, ZigLLVM_Cygnus,
ZigLLVM_CoreCLR, 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 { enum ZigLLVM_ObjectFormatType {
@ -408,6 +414,7 @@ enum ZigLLVM_ObjectFormatType {
ZigLLVM_ELF, ZigLLVM_ELF,
ZigLLVM_MachO, ZigLLVM_MachO,
ZigLLVM_Wasm, ZigLLVM_Wasm,
ZigLLVM_XCOFF,
}; };
#define ZigLLVM_DIFlags_Zero 0U #define ZigLLVM_DIFlags_Zero 0U