authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-08-31 10:50:09-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2021-08-31 13:50:09-04:00
log50c6b6cc66e8e7501f7ebf5d3846a365d1d47eb8
tree8981768feb96cf8a90b1eb000690dd251c9976a5
parentd0f04824f1d1a34cbc6e4bdee36893482d5e866d
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

stage2: only initialize the llvm backend for the target we are building (#9659)


2 files changed, 229 insertions(+), 191 deletions(-)

src/codegen/llvm.zig+142-9
...@@ -167,7 +167,7 @@ pub const Object = struct {...@@ -167,7 +167,7 @@ pub const Object = struct {
167 const context = llvm.Context.create();167 const context = llvm.Context.create();
168 errdefer context.dispose();168 errdefer context.dispose();
169169
170 initializeLLVMTargets();170 initializeLLVMTarget(options.target.cpu.arch);
171171
172 const root_nameZ = try gpa.dupeZ(u8, options.root_name);172 const root_nameZ = try gpa.dupeZ(u8, options.root_name);
173 defer gpa.free(root_nameZ);173 defer gpa.free(root_nameZ);
...@@ -256,14 +256,6 @@ pub const Object = struct {...@@ -256,14 +256,6 @@ pub const Object = struct {
256 gpa.destroy(self);256 gpa.destroy(self);
257 }257 }
258258
259 fn initializeLLVMTargets() void {
260 llvm.initializeAllTargets();
261 llvm.initializeAllTargetInfos();
262 llvm.initializeAllTargetMCs();
263 llvm.initializeAllAsmPrinters();
264 llvm.initializeAllAsmParsers();
265 }
266
267 fn locPath(259 fn locPath(
268 arena: *Allocator,260 arena: *Allocator,
269 opt_loc: ?Compilation.EmitLoc,261 opt_loc: ?Compilation.EmitLoc,
...@@ -1957,3 +1949,144 @@ pub const FuncGen = struct {...@@ -1957,3 +1949,144 @@ pub const FuncGen = struct {
1957 return self.llvmModule().getIntrinsicDeclaration(id, null, 0);1949 return self.llvmModule().getIntrinsicDeclaration(id, null, 0);
1958 }1950 }
1959};1951};
1952
1953fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void {
1954 switch (arch) {
1955 .aarch64, .aarch64_be, .aarch64_32 => {
1956 llvm.LLVMInitializeAArch64Target();
1957 llvm.LLVMInitializeAArch64TargetInfo();
1958 llvm.LLVMInitializeAArch64TargetMC();
1959 llvm.LLVMInitializeAArch64AsmPrinter();
1960 llvm.LLVMInitializeAArch64AsmParser();
1961 },
1962 .amdgcn => {
1963 llvm.LLVMInitializeAMDGPUTarget();
1964 llvm.LLVMInitializeAMDGPUTargetInfo();
1965 llvm.LLVMInitializeAMDGPUTargetMC();
1966 llvm.LLVMInitializeAMDGPUAsmPrinter();
1967 llvm.LLVMInitializeAMDGPUAsmParser();
1968 },
1969 .arm, .armeb => {
1970 llvm.LLVMInitializeARMTarget();
1971 llvm.LLVMInitializeARMTargetInfo();
1972 llvm.LLVMInitializeARMTargetMC();
1973 llvm.LLVMInitializeARMAsmPrinter();
1974 llvm.LLVMInitializeARMAsmParser();
1975 },
1976 .avr => {
1977 llvm.LLVMInitializeAVRTarget();
1978 llvm.LLVMInitializeAVRTargetInfo();
1979 llvm.LLVMInitializeAVRTargetMC();
1980 llvm.LLVMInitializeAVRAsmPrinter();
1981 llvm.LLVMInitializeAVRAsmParser();
1982 },
1983 .bpfel, .bpfeb => {
1984 llvm.LLVMInitializeBPFTarget();
1985 llvm.LLVMInitializeBPFTargetInfo();
1986 llvm.LLVMInitializeBPFTargetMC();
1987 llvm.LLVMInitializeBPFAsmPrinter();
1988 llvm.LLVMInitializeBPFAsmParser();
1989 },
1990 .hexagon => {
1991 llvm.LLVMInitializeHexagonTarget();
1992 llvm.LLVMInitializeHexagonTargetInfo();
1993 llvm.LLVMInitializeHexagonTargetMC();
1994 llvm.LLVMInitializeHexagonAsmPrinter();
1995 llvm.LLVMInitializeHexagonAsmParser();
1996 },
1997 .lanai => {
1998 llvm.LLVMInitializeLanaiTarget();
1999 llvm.LLVMInitializeLanaiTargetInfo();
2000 llvm.LLVMInitializeLanaiTargetMC();
2001 llvm.LLVMInitializeLanaiAsmPrinter();
2002 llvm.LLVMInitializeLanaiAsmParser();
2003 },
2004 .mips, .mipsel, .mips64, .mips64el => {
2005 llvm.LLVMInitializeMipsTarget();
2006 llvm.LLVMInitializeMipsTargetInfo();
2007 llvm.LLVMInitializeMipsTargetMC();
2008 llvm.LLVMInitializeMipsAsmPrinter();
2009 llvm.LLVMInitializeMipsAsmParser();
2010 },
2011 .msp430 => {
2012 llvm.LLVMInitializeMSP430Target();
2013 llvm.LLVMInitializeMSP430TargetInfo();
2014 llvm.LLVMInitializeMSP430TargetMC();
2015 llvm.LLVMInitializeMSP430AsmPrinter();
2016 llvm.LLVMInitializeMSP430AsmParser();
2017 },
2018 .nvptx, .nvptx64 => {
2019 llvm.LLVMInitializeNVPTXTarget();
2020 llvm.LLVMInitializeNVPTXTargetInfo();
2021 llvm.LLVMInitializeNVPTXTargetMC();
2022 llvm.LLVMInitializeNVPTXAsmPrinter();
2023 // There is no LLVMInitializeNVPTXAsmParser function available.
2024 },
2025 .powerpc, .powerpcle, .powerpc64, .powerpc64le => {
2026 llvm.LLVMInitializePowerPCTarget();
2027 llvm.LLVMInitializePowerPCTargetInfo();
2028 llvm.LLVMInitializePowerPCTargetMC();
2029 llvm.LLVMInitializePowerPCAsmPrinter();
2030 llvm.LLVMInitializePowerPCAsmParser();
2031 },
2032 .riscv32, .riscv64 => {
2033 llvm.LLVMInitializeRISCVTarget();
2034 llvm.LLVMInitializeRISCVTargetInfo();
2035 llvm.LLVMInitializeRISCVTargetMC();
2036 llvm.LLVMInitializeRISCVAsmPrinter();
2037 llvm.LLVMInitializeRISCVAsmParser();
2038 },
2039 .sparc, .sparcv9, .sparcel => {
2040 llvm.LLVMInitializeSparcTarget();
2041 llvm.LLVMInitializeSparcTargetInfo();
2042 llvm.LLVMInitializeSparcTargetMC();
2043 llvm.LLVMInitializeSparcAsmPrinter();
2044 llvm.LLVMInitializeSparcAsmParser();
2045 },
2046 .s390x => {
2047 llvm.LLVMInitializeSystemZTarget();
2048 llvm.LLVMInitializeSystemZTargetInfo();
2049 llvm.LLVMInitializeSystemZTargetMC();
2050 llvm.LLVMInitializeSystemZAsmPrinter();
2051 llvm.LLVMInitializeSystemZAsmParser();
2052 },
2053 .wasm32, .wasm64 => {
2054 llvm.LLVMInitializeWebAssemblyTarget();
2055 llvm.LLVMInitializeWebAssemblyTargetInfo();
2056 llvm.LLVMInitializeWebAssemblyTargetMC();
2057 llvm.LLVMInitializeWebAssemblyAsmPrinter();
2058 llvm.LLVMInitializeWebAssemblyAsmParser();
2059 },
2060 .i386, .x86_64 => {
2061 llvm.LLVMInitializeX86Target();
2062 llvm.LLVMInitializeX86TargetInfo();
2063 llvm.LLVMInitializeX86TargetMC();
2064 llvm.LLVMInitializeX86AsmPrinter();
2065 llvm.LLVMInitializeX86AsmParser();
2066 },
2067 .xcore => {
2068 llvm.LLVMInitializeXCoreTarget();
2069 llvm.LLVMInitializeXCoreTargetInfo();
2070 llvm.LLVMInitializeXCoreTargetMC();
2071 llvm.LLVMInitializeXCoreAsmPrinter();
2072 // There is no LLVMInitializeXCoreAsmParser function available.
2073 },
2074 .arc => {},
2075 .csky => {},
2076 .r600 => {},
2077 .tce, .tcele => {},
2078 .thumb, .thumbeb => {},
2079 .le32, .le64 => {},
2080 .amdil, .amdil64 => {},
2081 .hsail, .hsail64 => {},
2082 .spir, .spir64 => {},
2083 .kalimba => {},
2084 .shave => {},
2085 .renderscript32 => {},
2086 .renderscript64 => {},
2087 .ve => {},
2088 .spu_2 => {},
2089 .spirv32 => {},
2090 .spirv64 => {},
2091 }
2092}
src/codegen/llvm/bindings.zig+87-182
...@@ -596,188 +596,93 @@ pub const Target = opaque {...@@ -596,188 +596,93 @@ pub const Target = opaque {
596 extern fn LLVMGetTargetFromTriple(Triple: [*:0]const u8, T: **const Target, ErrorMessage: *[*:0]const u8) Bool;596 extern fn LLVMGetTargetFromTriple(Triple: [*:0]const u8, T: **const Target, ErrorMessage: *[*:0]const u8) Bool;
597};597};
598598
599extern fn LLVMInitializeAArch64TargetInfo() void;599pub extern fn LLVMInitializeAArch64TargetInfo() void;
600extern fn LLVMInitializeAMDGPUTargetInfo() void;600pub extern fn LLVMInitializeAMDGPUTargetInfo() void;
601extern fn LLVMInitializeARMTargetInfo() void;601pub extern fn LLVMInitializeARMTargetInfo() void;
602extern fn LLVMInitializeAVRTargetInfo() void;602pub extern fn LLVMInitializeAVRTargetInfo() void;
603extern fn LLVMInitializeBPFTargetInfo() void;603pub extern fn LLVMInitializeBPFTargetInfo() void;
604extern fn LLVMInitializeHexagonTargetInfo() void;604pub extern fn LLVMInitializeHexagonTargetInfo() void;
605extern fn LLVMInitializeLanaiTargetInfo() void;605pub extern fn LLVMInitializeLanaiTargetInfo() void;
606extern fn LLVMInitializeMipsTargetInfo() void;606pub extern fn LLVMInitializeMipsTargetInfo() void;
607extern fn LLVMInitializeMSP430TargetInfo() void;607pub extern fn LLVMInitializeMSP430TargetInfo() void;
608extern fn LLVMInitializeNVPTXTargetInfo() void;608pub extern fn LLVMInitializeNVPTXTargetInfo() void;
609extern fn LLVMInitializePowerPCTargetInfo() void;609pub extern fn LLVMInitializePowerPCTargetInfo() void;
610extern fn LLVMInitializeRISCVTargetInfo() void;610pub extern fn LLVMInitializeRISCVTargetInfo() void;
611extern fn LLVMInitializeSparcTargetInfo() void;611pub extern fn LLVMInitializeSparcTargetInfo() void;
612extern fn LLVMInitializeSystemZTargetInfo() void;612pub extern fn LLVMInitializeSystemZTargetInfo() void;
613extern fn LLVMInitializeWebAssemblyTargetInfo() void;613pub extern fn LLVMInitializeWebAssemblyTargetInfo() void;
614extern fn LLVMInitializeX86TargetInfo() void;614pub extern fn LLVMInitializeX86TargetInfo() void;
615extern fn LLVMInitializeXCoreTargetInfo() void;615pub extern fn LLVMInitializeXCoreTargetInfo() void;
616extern fn LLVMInitializeAArch64Target() void;616
617extern fn LLVMInitializeAMDGPUTarget() void;617pub extern fn LLVMInitializeAArch64Target() void;
618extern fn LLVMInitializeARMTarget() void;618pub extern fn LLVMInitializeAMDGPUTarget() void;
619extern fn LLVMInitializeAVRTarget() void;619pub extern fn LLVMInitializeARMTarget() void;
620extern fn LLVMInitializeBPFTarget() void;620pub extern fn LLVMInitializeAVRTarget() void;
621extern fn LLVMInitializeHexagonTarget() void;621pub extern fn LLVMInitializeBPFTarget() void;
622extern fn LLVMInitializeLanaiTarget() void;622pub extern fn LLVMInitializeHexagonTarget() void;
623extern fn LLVMInitializeMipsTarget() void;623pub extern fn LLVMInitializeLanaiTarget() void;
624extern fn LLVMInitializeMSP430Target() void;624pub extern fn LLVMInitializeMipsTarget() void;
625extern fn LLVMInitializeNVPTXTarget() void;625pub extern fn LLVMInitializeMSP430Target() void;
626extern fn LLVMInitializePowerPCTarget() void;626pub extern fn LLVMInitializeNVPTXTarget() void;
627extern fn LLVMInitializeRISCVTarget() void;627pub extern fn LLVMInitializePowerPCTarget() void;
628extern fn LLVMInitializeSparcTarget() void;628pub extern fn LLVMInitializeRISCVTarget() void;
629extern fn LLVMInitializeSystemZTarget() void;629pub extern fn LLVMInitializeSparcTarget() void;
630extern fn LLVMInitializeWebAssemblyTarget() void;630pub extern fn LLVMInitializeSystemZTarget() void;
631extern fn LLVMInitializeX86Target() void;631pub extern fn LLVMInitializeWebAssemblyTarget() void;
632extern fn LLVMInitializeXCoreTarget() void;632pub extern fn LLVMInitializeX86Target() void;
633extern fn LLVMInitializeAArch64TargetMC() void;633pub extern fn LLVMInitializeXCoreTarget() void;
634extern fn LLVMInitializeAMDGPUTargetMC() void;634
635extern fn LLVMInitializeARMTargetMC() void;635pub extern fn LLVMInitializeAArch64TargetMC() void;
636extern fn LLVMInitializeAVRTargetMC() void;636pub extern fn LLVMInitializeAMDGPUTargetMC() void;
637extern fn LLVMInitializeBPFTargetMC() void;637pub extern fn LLVMInitializeARMTargetMC() void;
638extern fn LLVMInitializeHexagonTargetMC() void;638pub extern fn LLVMInitializeAVRTargetMC() void;
639extern fn LLVMInitializeLanaiTargetMC() void;639pub extern fn LLVMInitializeBPFTargetMC() void;
640extern fn LLVMInitializeMipsTargetMC() void;640pub extern fn LLVMInitializeHexagonTargetMC() void;
641extern fn LLVMInitializeMSP430TargetMC() void;641pub extern fn LLVMInitializeLanaiTargetMC() void;
642extern fn LLVMInitializeNVPTXTargetMC() void;642pub extern fn LLVMInitializeMipsTargetMC() void;
643extern fn LLVMInitializePowerPCTargetMC() void;643pub extern fn LLVMInitializeMSP430TargetMC() void;
644extern fn LLVMInitializeRISCVTargetMC() void;644pub extern fn LLVMInitializeNVPTXTargetMC() void;
645extern fn LLVMInitializeSparcTargetMC() void;645pub extern fn LLVMInitializePowerPCTargetMC() void;
646extern fn LLVMInitializeSystemZTargetMC() void;646pub extern fn LLVMInitializeRISCVTargetMC() void;
647extern fn LLVMInitializeWebAssemblyTargetMC() void;647pub extern fn LLVMInitializeSparcTargetMC() void;
648extern fn LLVMInitializeX86TargetMC() void;648pub extern fn LLVMInitializeSystemZTargetMC() void;
649extern fn LLVMInitializeXCoreTargetMC() void;649pub extern fn LLVMInitializeWebAssemblyTargetMC() void;
650extern fn LLVMInitializeAArch64AsmPrinter() void;650pub extern fn LLVMInitializeX86TargetMC() void;
651extern fn LLVMInitializeAMDGPUAsmPrinter() void;651pub extern fn LLVMInitializeXCoreTargetMC() void;
652extern fn LLVMInitializeARMAsmPrinter() void;652
653extern fn LLVMInitializeAVRAsmPrinter() void;653pub extern fn LLVMInitializeAArch64AsmPrinter() void;
654extern fn LLVMInitializeBPFAsmPrinter() void;654pub extern fn LLVMInitializeAMDGPUAsmPrinter() void;
655extern fn LLVMInitializeHexagonAsmPrinter() void;655pub extern fn LLVMInitializeARMAsmPrinter() void;
656extern fn LLVMInitializeLanaiAsmPrinter() void;656pub extern fn LLVMInitializeAVRAsmPrinter() void;
657extern fn LLVMInitializeMipsAsmPrinter() void;657pub extern fn LLVMInitializeBPFAsmPrinter() void;
658extern fn LLVMInitializeMSP430AsmPrinter() void;658pub extern fn LLVMInitializeHexagonAsmPrinter() void;
659extern fn LLVMInitializeNVPTXAsmPrinter() void;659pub extern fn LLVMInitializeLanaiAsmPrinter() void;
660extern fn LLVMInitializePowerPCAsmPrinter() void;660pub extern fn LLVMInitializeMipsAsmPrinter() void;
661extern fn LLVMInitializeRISCVAsmPrinter() void;661pub extern fn LLVMInitializeMSP430AsmPrinter() void;
662extern fn LLVMInitializeSparcAsmPrinter() void;662pub extern fn LLVMInitializeNVPTXAsmPrinter() void;
663extern fn LLVMInitializeSystemZAsmPrinter() void;663pub extern fn LLVMInitializePowerPCAsmPrinter() void;
664extern fn LLVMInitializeWebAssemblyAsmPrinter() void;664pub extern fn LLVMInitializeRISCVAsmPrinter() void;
665extern fn LLVMInitializeX86AsmPrinter() void;665pub extern fn LLVMInitializeSparcAsmPrinter() void;
666extern fn LLVMInitializeXCoreAsmPrinter() void;666pub extern fn LLVMInitializeSystemZAsmPrinter() void;
667extern fn LLVMInitializeAArch64AsmParser() void;667pub extern fn LLVMInitializeWebAssemblyAsmPrinter() void;
668extern fn LLVMInitializeAMDGPUAsmParser() void;668pub extern fn LLVMInitializeX86AsmPrinter() void;
669extern fn LLVMInitializeARMAsmParser() void;669pub extern fn LLVMInitializeXCoreAsmPrinter() void;
670extern fn LLVMInitializeAVRAsmParser() void;670
671extern fn LLVMInitializeBPFAsmParser() void;671pub extern fn LLVMInitializeAArch64AsmParser() void;
672extern fn LLVMInitializeHexagonAsmParser() void;672pub extern fn LLVMInitializeAMDGPUAsmParser() void;
673extern fn LLVMInitializeLanaiAsmParser() void;673pub extern fn LLVMInitializeARMAsmParser() void;
674extern fn LLVMInitializeMipsAsmParser() void;674pub extern fn LLVMInitializeAVRAsmParser() void;
675extern fn LLVMInitializeMSP430AsmParser() void;675pub extern fn LLVMInitializeBPFAsmParser() void;
676extern fn LLVMInitializePowerPCAsmParser() void;676pub extern fn LLVMInitializeHexagonAsmParser() void;
677extern fn LLVMInitializeRISCVAsmParser() void;677pub extern fn LLVMInitializeLanaiAsmParser() void;
678extern fn LLVMInitializeSparcAsmParser() void;678pub extern fn LLVMInitializeMipsAsmParser() void;
679extern fn LLVMInitializeSystemZAsmParser() void;679pub extern fn LLVMInitializeMSP430AsmParser() void;
680extern fn LLVMInitializeWebAssemblyAsmParser() void;680pub extern fn LLVMInitializePowerPCAsmParser() void;
681extern fn LLVMInitializeX86AsmParser() void;681pub extern fn LLVMInitializeRISCVAsmParser() void;
682682pub extern fn LLVMInitializeSparcAsmParser() void;
683pub const initializeAllTargetInfos = LLVMInitializeAllTargetInfos;683pub extern fn LLVMInitializeSystemZAsmParser() void;
684fn LLVMInitializeAllTargetInfos() callconv(.C) void {684pub extern fn LLVMInitializeWebAssemblyAsmParser() void;
685 LLVMInitializeAArch64TargetInfo();685pub extern fn LLVMInitializeX86AsmParser() void;
686 LLVMInitializeAMDGPUTargetInfo();
687 LLVMInitializeARMTargetInfo();
688 LLVMInitializeAVRTargetInfo();
689 LLVMInitializeBPFTargetInfo();
690 LLVMInitializeHexagonTargetInfo();
691 LLVMInitializeLanaiTargetInfo();
692 LLVMInitializeMipsTargetInfo();
693 LLVMInitializeMSP430TargetInfo();
694 LLVMInitializeNVPTXTargetInfo();
695 LLVMInitializePowerPCTargetInfo();
696 LLVMInitializeRISCVTargetInfo();
697 LLVMInitializeSparcTargetInfo();
698 LLVMInitializeSystemZTargetInfo();
699 LLVMInitializeWebAssemblyTargetInfo();
700 LLVMInitializeX86TargetInfo();
701 LLVMInitializeXCoreTargetInfo();
702}
703pub const initializeAllTargets = LLVMInitializeAllTargets;
704fn LLVMInitializeAllTargets() callconv(.C) void {
705 LLVMInitializeAArch64Target();
706 LLVMInitializeAMDGPUTarget();
707 LLVMInitializeARMTarget();
708 LLVMInitializeAVRTarget();
709 LLVMInitializeBPFTarget();
710 LLVMInitializeHexagonTarget();
711 LLVMInitializeLanaiTarget();
712 LLVMInitializeMipsTarget();
713 LLVMInitializeMSP430Target();
714 LLVMInitializeNVPTXTarget();
715 LLVMInitializePowerPCTarget();
716 LLVMInitializeRISCVTarget();
717 LLVMInitializeSparcTarget();
718 LLVMInitializeSystemZTarget();
719 LLVMInitializeWebAssemblyTarget();
720 LLVMInitializeX86Target();
721 LLVMInitializeXCoreTarget();
722}
723pub const initializeAllTargetMCs = LLVMInitializeAllTargetMCs;
724fn LLVMInitializeAllTargetMCs() callconv(.C) void {
725 LLVMInitializeAArch64TargetMC();
726 LLVMInitializeAMDGPUTargetMC();
727 LLVMInitializeARMTargetMC();
728 LLVMInitializeAVRTargetMC();
729 LLVMInitializeBPFTargetMC();
730 LLVMInitializeHexagonTargetMC();
731 LLVMInitializeLanaiTargetMC();
732 LLVMInitializeMipsTargetMC();
733 LLVMInitializeMSP430TargetMC();
734 LLVMInitializeNVPTXTargetMC();
735 LLVMInitializePowerPCTargetMC();
736 LLVMInitializeRISCVTargetMC();
737 LLVMInitializeSparcTargetMC();
738 LLVMInitializeSystemZTargetMC();
739 LLVMInitializeWebAssemblyTargetMC();
740 LLVMInitializeX86TargetMC();
741 LLVMInitializeXCoreTargetMC();
742}
743pub const initializeAllAsmPrinters = LLVMInitializeAllAsmPrinters;
744fn LLVMInitializeAllAsmPrinters() callconv(.C) void {
745 LLVMInitializeAArch64AsmPrinter();
746 LLVMInitializeAMDGPUAsmPrinter();
747 LLVMInitializeARMAsmPrinter();
748 LLVMInitializeAVRAsmPrinter();
749 LLVMInitializeBPFAsmPrinter();
750 LLVMInitializeHexagonAsmPrinter();
751 LLVMInitializeLanaiAsmPrinter();
752 LLVMInitializeMipsAsmPrinter();
753 LLVMInitializeMSP430AsmPrinter();
754 LLVMInitializeNVPTXAsmPrinter();
755 LLVMInitializePowerPCAsmPrinter();
756 LLVMInitializeRISCVAsmPrinter();
757 LLVMInitializeSparcAsmPrinter();
758 LLVMInitializeSystemZAsmPrinter();
759 LLVMInitializeWebAssemblyAsmPrinter();
760 LLVMInitializeX86AsmPrinter();
761 LLVMInitializeXCoreAsmPrinter();
762}
763pub const initializeAllAsmParsers = LLVMInitializeAllAsmParsers;
764fn LLVMInitializeAllAsmParsers() callconv(.C) void {
765 LLVMInitializeAArch64AsmParser();
766 LLVMInitializeAMDGPUAsmParser();
767 LLVMInitializeARMAsmParser();
768 LLVMInitializeAVRAsmParser();
769 LLVMInitializeBPFAsmParser();
770 LLVMInitializeHexagonAsmParser();
771 LLVMInitializeLanaiAsmParser();
772 LLVMInitializeMipsAsmParser();
773 LLVMInitializeMSP430AsmParser();
774 LLVMInitializePowerPCAsmParser();
775 LLVMInitializeRISCVAsmParser();
776 LLVMInitializeSparcAsmParser();
777 LLVMInitializeSystemZAsmParser();
778 LLVMInitializeWebAssemblyAsmParser();
779 LLVMInitializeX86AsmParser();
780}
781686
782extern fn ZigLLDLinkCOFF(argc: c_int, argv: [*:null]const ?[*:0]const u8, can_exit_early: bool) c_int;687extern fn ZigLLDLinkCOFF(argc: c_int, argv: [*:null]const ?[*:0]const u8, can_exit_early: bool) c_int;
783extern fn ZigLLDLinkELF(argc: c_int, argv: [*:null]const ?[*:0]const u8, can_exit_early: bool) c_int;688extern fn ZigLLDLinkELF(argc: c_int, argv: [*:null]const ?[*:0]const u8, can_exit_early: bool) c_int;