authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-22 18:43:30-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-22 18:43:30-05:00
logfb8e681ea8413b233ebc83cc649ab9a166b6d979
tree40c1aad5b69b53094ecbc71ecdd0b67a4945caaf
parent211e1b1ced84ac0408e66b13366259fb232f54f7
signature Commit is signed but in an unrecognized format.

update zig_llvm.h and zig_llvm.cpp to llvm 10


4 files changed, 48 insertions(+), 17 deletions(-)

lib/std/target.zig+4-2
......@@ -100,6 +100,7 @@ pub const Target = union(enum) {
100100 wasm64,
101101 renderscript32,
102102 renderscript64,
103 ve,
103104
104105 pub const Arm32 = enum {
105106 v8_5a,
......@@ -155,6 +156,9 @@ pub const Target = union(enum) {
155156 pub const Mips = enum {
156157 r6,
157158 };
159 pub const PPC = enum {
160 spe,
161 };
158162
159163 pub fn isARM(arch: Arch) bool {
160164 return switch (arch) {
......@@ -309,8 +313,6 @@ pub const Target = union(enum) {
309313 code16,
310314 eabi,
311315 eabihf,
312 elfv1,
313 elfv2,
314316 android,
315317 musl,
316318 musleabi,
src/target.cpp+16
......@@ -21,6 +21,7 @@ static const SubArchList subarch_list_list[] = {
2121 SubArchListArm64,
2222 SubArchListKalimba,
2323 SubArchListMips,
24 SubArchListPPC,
2425};
2526
2627static const ZigLLVM_SubArchType subarch_list_arm32[] = {
......@@ -72,6 +73,10 @@ static const ZigLLVM_SubArchType subarch_list_mips[] = {
7273 ZigLLVM_MipsSubArch_r6,
7374};
7475
76static const ZigLLVM_SubArchType subarch_list_ppc[] = {
77 ZigLLVM_PPCSubArch_spe,
78};
79
7580static const ZigLLVM_ArchType arch_list[] = {
7681 ZigLLVM_arm, // ARM (little endian): arm, armv.*, xscale
7782 ZigLLVM_armeb, // ARM (big endian): armeb
......@@ -123,6 +128,7 @@ static const ZigLLVM_ArchType arch_list[] = {
123128 ZigLLVM_wasm64, // WebAssembly with 64-bit pointers
124129 ZigLLVM_renderscript32, // 32-bit RenderScript
125130 ZigLLVM_renderscript64, // 64-bit RenderScript
131 ZigLLVM_ve, // NEC SX-Aurora Vector Engine
126132};
127133
128134static const ZigLLVM_VendorType vendor_list[] = {
......@@ -627,6 +633,7 @@ SubArchList target_subarch_list(ZigLLVM_ArchType arch) {
627633 case ZigLLVM_wasm64:
628634 case ZigLLVM_renderscript32:
629635 case ZigLLVM_renderscript64:
636 case ZigLLVM_ve:
630637 return SubArchListNone;
631638 }
632639 zig_unreachable();
......@@ -644,6 +651,8 @@ size_t target_subarch_count(SubArchList sub_arch_list) {
644651 return array_length(subarch_list_kalimba);
645652 case SubArchListMips:
646653 return array_length(subarch_list_mips);
654 case SubArchListPPC:
655 return array_length(subarch_list_ppc);
647656 }
648657 zig_unreachable();
649658}
......@@ -664,6 +673,9 @@ ZigLLVM_SubArchType target_subarch_enum(SubArchList sub_arch_list, size_t i) {
664673 case SubArchListMips:
665674 assert(i < array_length(subarch_list_mips));
666675 return subarch_list_mips[i];
676 case SubArchListPPC:
677 assert(i < array_length(subarch_list_ppc));
678 return subarch_list_ppc[i];
667679 }
668680 zig_unreachable();
669681}
......@@ -726,6 +738,8 @@ const char *target_subarch_name(ZigLLVM_SubArchType subarch) {
726738 return "v5";
727739 case ZigLLVM_MipsSubArch_r6:
728740 return "r6";
741 case ZigLLVM_PPCSubArch_spe:
742 return "spe";
729743 }
730744 zig_unreachable();
731745}
......@@ -935,6 +949,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
935949 case ZigLLVM_spir64:
936950 case ZigLLVM_wasm64:
937951 case ZigLLVM_renderscript64:
952 case ZigLLVM_ve:
938953 return 64;
939954 }
940955 zig_unreachable();
......@@ -998,6 +1013,7 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {
9981013 case ZigLLVM_spir64:
9991014 case ZigLLVM_wasm64:
10001015 case ZigLLVM_renderscript64:
1016 case ZigLLVM_ve:
10011017 return 64;
10021018
10031019 case ZigLLVM_x86_64:
src/zig_llvm.cpp+21-11
......@@ -38,6 +38,7 @@
3838#include <llvm/Object/COFFImportFile.h>
3939#include <llvm/Object/COFFModuleDefinition.h>
4040#include <llvm/PassRegistry.h>
41#include <llvm/Support/CommandLine.h>
4142#include <llvm/Support/FileSystem.h>
4243#include <llvm/Support/TargetParser.h>
4344#include <llvm/Support/Timer.h>
......@@ -299,14 +300,16 @@ LLVMValueRef ZigLLVMBuildCall(LLVMBuilderRef B, LLVMValueRef Fn, LLVMValueRef *A
299300LLVMValueRef ZigLLVMBuildMemCpy(LLVMBuilderRef B, LLVMValueRef Dst, unsigned DstAlign,
300301 LLVMValueRef Src, unsigned SrcAlign, LLVMValueRef Size, bool isVolatile)
301302{
302 CallInst *call_inst = unwrap(B)->CreateMemCpy(unwrap(Dst), DstAlign, unwrap(Src), SrcAlign, unwrap(Size), isVolatile);
303 CallInst *call_inst = unwrap(B)->CreateMemCpy(unwrap(Dst),
304 MaybeAlign(DstAlign), unwrap(Src), MaybeAlign(SrcAlign), unwrap(Size), isVolatile);
303305 return wrap(call_inst);
304306}
305307
306308LLVMValueRef ZigLLVMBuildMemSet(LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Val, LLVMValueRef Size,
307309 unsigned Align, bool isVolatile)
308310{
309 CallInst *call_inst = unwrap(B)->CreateMemSet(unwrap(Ptr), unwrap(Val), unwrap(Size), Align, isVolatile);
311 CallInst *call_inst = unwrap(B)->CreateMemSet(unwrap(Ptr), unwrap(Val), unwrap(Size),
312 MaybeAlign(Align), isVolatile);
310313 return wrap(call_inst);
311314}
312315
......@@ -770,7 +773,7 @@ void ZigLLVMAddFunctionAttrCold(LLVMValueRef fn_ref) {
770773}
771774
772775void ZigLLVMParseCommandLineOptions(size_t argc, const char *const *argv) {
773 llvm::cl::ParseCommandLineOptions(argc, argv);
776 cl::ParseCommandLineOptions(argc, argv);
774777}
775778
776779const char *ZigLLVMGetArchTypeName(ZigLLVM_ArchType arch) {
......@@ -864,6 +867,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) {
864867 return "v5";
865868 case ZigLLVM_MipsSubArch_r6:
866869 return "r6";
870 case ZigLLVM_PPCSubArch_spe:
871 return "spe";
867872 }
868873 abort();
869874}
......@@ -1072,11 +1077,14 @@ bool ZigLLVMWriteArchive(const char *archive_name, const char **file_names, size
10721077
10731078
10741079bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_count,
1075 void (*append_diagnostic)(void *, const char *, size_t), void *context)
1080 void (*append_diagnostic_stdout)(void *, const char *, size_t),
1081 void (*append_diagnostic_stderr)(void *, const char *, size_t),
1082 void *context)
10761083{
10771084 ArrayRef<const char *> array_ref_args(args, arg_count);
10781085
1079 MyOStream diag(append_diagnostic, context);
1086 MyOStream diag_stdout(append_diagnostic_stdout, context);
1087 MyOStream diag_stderr(append_diagnostic_stderr, context);
10801088
10811089 switch (oformat) {
10821090 case ZigLLVM_UnknownObjectFormat:
......@@ -1084,16 +1092,16 @@ bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_
10841092 assert(false); // unreachable
10851093
10861094 case ZigLLVM_COFF:
1087 return lld::coff::link(array_ref_args, false, diag);
1095 return lld::coff::link(array_ref_args, false, diag_stdout, diag_stderr);
10881096
10891097 case ZigLLVM_ELF:
1090 return lld::elf::link(array_ref_args, false, diag);
1098 return lld::elf::link(array_ref_args, false, diag_stdout, diag_stderr);
10911099
10921100 case ZigLLVM_MachO:
1093 return lld::mach_o::link(array_ref_args, false, diag);
1101 return lld::mach_o::link(array_ref_args, false, diag_stdout, diag_stderr);
10941102
10951103 case ZigLLVM_Wasm:
1096 return lld::wasm::link(array_ref_args, false, diag);
1104 return lld::wasm::link(array_ref_args, false, diag_stdout, diag_stderr);
10971105 }
10981106 assert(false); // unreachable
10991107 abort();
......@@ -1154,6 +1162,7 @@ static_assert((Triple::ArchType)ZigLLVM_arm == Triple::arm, "");
11541162static_assert((Triple::ArchType)ZigLLVM_armeb == Triple::armeb, "");
11551163static_assert((Triple::ArchType)ZigLLVM_aarch64 == Triple::aarch64, "");
11561164static_assert((Triple::ArchType)ZigLLVM_aarch64_be == Triple::aarch64_be, "");
1165static_assert((Triple::ArchType)ZigLLVM_aarch64_32 == Triple::aarch64_32, "");
11571166static_assert((Triple::ArchType)ZigLLVM_arc == Triple::arc, "");
11581167static_assert((Triple::ArchType)ZigLLVM_avr == Triple::avr, "");
11591168static_assert((Triple::ArchType)ZigLLVM_bpfel == Triple::bpfel, "");
......@@ -1199,6 +1208,7 @@ static_assert((Triple::ArchType)ZigLLVM_wasm32 == Triple::wasm32, "");
11991208static_assert((Triple::ArchType)ZigLLVM_wasm64 == Triple::wasm64, "");
12001209static_assert((Triple::ArchType)ZigLLVM_renderscript32 == Triple::renderscript32, "");
12011210static_assert((Triple::ArchType)ZigLLVM_renderscript64 == Triple::renderscript64, "");
1211static_assert((Triple::ArchType)ZigLLVM_ve == Triple::ve, "");
12021212static_assert((Triple::ArchType)ZigLLVM_LastArchType == Triple::LastArchType, "");
12031213
12041214static_assert((Triple::SubArchType)ZigLLVM_NoSubArch == Triple::NoSubArch, "");
......@@ -1229,6 +1239,7 @@ static_assert((Triple::SubArchType)ZigLLVM_KalimbaSubArch_v4 == Triple::KalimbaS
12291239static_assert((Triple::SubArchType)ZigLLVM_KalimbaSubArch_v5 == Triple::KalimbaSubArch_v5, "");
12301240static_assert((Triple::SubArchType)ZigLLVM_KalimbaSubArch_v5 == Triple::KalimbaSubArch_v5, "");
12311241static_assert((Triple::SubArchType)ZigLLVM_MipsSubArch_r6 == Triple::MipsSubArch_r6, "");
1242static_assert((Triple::SubArchType)ZigLLVM_PPCSubArch_spe == Triple::PPCSubArch_spe, "");
12321243
12331244static_assert((Triple::VendorType)ZigLLVM_UnknownVendor == Triple::UnknownVendor, "");
12341245static_assert((Triple::VendorType)ZigLLVM_Apple == Triple::Apple, "");
......@@ -1299,8 +1310,6 @@ static_assert((Triple::EnvironmentType)ZigLLVM_GNUX32 == Triple::GNUX32, "");
12991310static_assert((Triple::EnvironmentType)ZigLLVM_CODE16 == Triple::CODE16, "");
13001311static_assert((Triple::EnvironmentType)ZigLLVM_EABI == Triple::EABI, "");
13011312static_assert((Triple::EnvironmentType)ZigLLVM_EABIHF == Triple::EABIHF, "");
1302static_assert((Triple::EnvironmentType)ZigLLVM_ELFv1 == Triple::ELFv1, "");
1303static_assert((Triple::EnvironmentType)ZigLLVM_ELFv2 == Triple::ELFv2, "");
13041313static_assert((Triple::EnvironmentType)ZigLLVM_Android == Triple::Android, "");
13051314static_assert((Triple::EnvironmentType)ZigLLVM_Musl == Triple::Musl, "");
13061315static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABI == Triple::MuslEABI, "");
......@@ -1310,6 +1319,7 @@ static_assert((Triple::EnvironmentType)ZigLLVM_Itanium == Triple::Itanium, "");
13101319static_assert((Triple::EnvironmentType)ZigLLVM_Cygnus == Triple::Cygnus, "");
13111320static_assert((Triple::EnvironmentType)ZigLLVM_CoreCLR == Triple::CoreCLR, "");
13121321static_assert((Triple::EnvironmentType)ZigLLVM_Simulator == Triple::Simulator, "");
1322static_assert((Triple::EnvironmentType)ZigLLVM_MacABI == Triple::MacABI, "");
13131323static_assert((Triple::EnvironmentType)ZigLLVM_LastEnvironmentType == Triple::LastEnvironmentType, "");
13141324
13151325static_assert((Triple::ObjectFormatType)ZigLLVM_UnknownObjectFormat == Triple::UnknownObjectFormat, "");
src/zig_llvm.h+7-4
......@@ -327,8 +327,9 @@ enum ZigLLVM_ArchType {
327327 ZigLLVM_wasm64, // WebAssembly with 64-bit pointers
328328 ZigLLVM_renderscript32, // 32-bit RenderScript
329329 ZigLLVM_renderscript64, // 64-bit RenderScript
330 ZigLLVM_ve, // NEC SX-Aurora Vector Engine
330331
331 ZigLLVM_LastArchType = ZigLLVM_renderscript64
332 ZigLLVM_LastArchType = ZigLLVM_ve
332333};
333334
334335// synchronize with lists in target.cpp
......@@ -364,6 +365,8 @@ enum ZigLLVM_SubArchType {
364365 ZigLLVM_KalimbaSubArch_v5,
365366
366367 ZigLLVM_MipsSubArch_r6,
368
369 ZigLLVM_PPCSubArch_spe,
367370};
368371
369372enum ZigLLVM_VendorType {
......@@ -444,8 +447,6 @@ enum ZigLLVM_EnvironmentType {
444447 ZigLLVM_CODE16,
445448 ZigLLVM_EABI,
446449 ZigLLVM_EABIHF,
447 ZigLLVM_ELFv1,
448 ZigLLVM_ELFv2,
449450 ZigLLVM_Android,
450451 ZigLLVM_Musl,
451452 ZigLLVM_MuslEABI,
......@@ -531,7 +532,9 @@ ZIG_EXTERN_C const char *ZigLLVMGetOSTypeName(enum ZigLLVM_OSType os);
531532ZIG_EXTERN_C const char *ZigLLVMGetEnvironmentTypeName(enum ZigLLVM_EnvironmentType abi);
532533
533534ZIG_EXTERN_C bool ZigLLDLink(enum ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_count,
534 void (*append_diagnostic)(void *, const char *, size_t), void *context);
535 void (*append_diagnostic_stdout)(void *, const char *, size_t),
536 void (*append_diagnostic_stderr)(void *, const char *, size_t),
537 void *context);
535538
536539ZIG_EXTERN_C bool ZigLLVMWriteArchive(const char *archive_name, const char **file_names, size_t file_name_count,
537540 enum ZigLLVM_OSType os_type);