diff options
| author | Baitinq <[email protected]> | 2025-06-04 22:40:18 +0200 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-06-04 22:40:18 +0200 |
| commit | 518be1df039a4ff44d048929ee1322aebf806ad8 (patch) | |
| tree | 0cac5ca2df6ff844dfb9a4ca555d2d716dd1e377 /src | |
| parent | Bootstrap: Codegen: Fix memory leaks (diff) | |
| download | interpreter-518be1df039a4ff44d048929ee1322aebf806ad8.tar.gz interpreter-518be1df039a4ff44d048929ee1322aebf806ad8.tar.bz2 interpreter-518be1df039a4ff44d048929ee1322aebf806ad8.zip | |
Bootstrap: Codegen: Initialize all targets
Diffstat (limited to 'src')
| -rw-r--r-- | src/bootstrap/codegen.src | 10 | ||||
| -rw-r--r-- | src/bootstrap/llvm.src | 256 |
2 files changed, 260 insertions, 6 deletions
diff --git a/src/bootstrap/codegen.src b/src/bootstrap/codegen.src index db18380..3a76c16 100644 --- a/src/bootstrap/codegen.src +++ b/src/bootstrap/codegen.src @@ -8,11 +8,11 @@ let codegen = struct { }; let codegen_init = (alloc: *arena) => *codegen { - LLVMInitializeX86TargetInfo(); - LLVMInitializeX86TargetMC(); - LLVMInitializeX86Target(); - LLVMInitializeX86AsmPrinter(); - LLVMInitializeX86AsmParser(); + LLVMInitializeAllTargetInfos(); + LLVMInitializeAllTargetMCs(); + LLVMInitializeAllTargets(); + LLVMInitializeAllAsmPrinters(); + LLVMInitializeAllAsmParsers(); let module = LLVMModuleCreateWithName("module"); let context = LLVMGetGlobalContext(); diff --git a/src/bootstrap/llvm.src b/src/bootstrap/llvm.src index 4dead44..65c36c2 100644 --- a/src/bootstrap/llvm.src +++ b/src/bootstrap/llvm.src @@ -1,9 +1,263 @@ +extern LLVMInitializeAArch64TargetInfo = () => void; +extern LLVMInitializeAMDGPUTargetInfo = () => void; +extern LLVMInitializeARMTargetInfo = () => void; +extern LLVMInitializeAVRTargetInfo = () => void; +extern LLVMInitializeBPFTargetInfo = () => void; +extern LLVMInitializeHexagonTargetInfo = () => void; +extern LLVMInitializeLanaiTargetInfo = () => void; +extern LLVMInitializeLoongArchTargetInfo = () => void; +extern LLVMInitializeMipsTargetInfo = () => void; +extern LLVMInitializeMSP430TargetInfo = () => void; +extern LLVMInitializeNVPTXTargetInfo = () => void; +extern LLVMInitializePowerPCTargetInfo = () => void; +extern LLVMInitializeRISCVTargetInfo = () => void; +extern LLVMInitializeSparcTargetInfo = () => void; +extern LLVMInitializeSPIRVTargetInfo = () => void; +extern LLVMInitializeSystemZTargetInfo = () => void; +extern LLVMInitializeVETargetInfo = () => void; +extern LLVMInitializeWebAssemblyTargetInfo = () => void; extern LLVMInitializeX86TargetInfo = () => void; -extern LLVMInitializeX86TargetMC = () => void; +extern LLVMInitializeXCoreTargetInfo = () => void; + +let LLVMInitializeAllTargetInfos = () => void { + LLVMInitializeAArch64TargetInfo(); + LLVMInitializeAMDGPUTargetInfo(); + LLVMInitializeARMTargetInfo(); + LLVMInitializeAVRTargetInfo(); + LLVMInitializeBPFTargetInfo(); + LLVMInitializeHexagonTargetInfo(); + LLVMInitializeLanaiTargetInfo(); + LLVMInitializeLoongArchTargetInfo(); + LLVMInitializeMipsTargetInfo(); + LLVMInitializeMSP430TargetInfo(); + LLVMInitializeNVPTXTargetInfo(); + LLVMInitializePowerPCTargetInfo(); + LLVMInitializeRISCVTargetInfo(); + LLVMInitializeSparcTargetInfo(); + LLVMInitializeSPIRVTargetInfo(); + LLVMInitializeSystemZTargetInfo(); + LLVMInitializeVETargetInfo(); + LLVMInitializeWebAssemblyTargetInfo(); + LLVMInitializeX86TargetInfo(); + LLVMInitializeXCoreTargetInfo(); + return; +}; + +extern LLVMInitializeAArch64Target = () => void; +extern LLVMInitializeAMDGPUTarget = () => void; +extern LLVMInitializeARMTarget = () => void; +extern LLVMInitializeAVRTarget = () => void; +extern LLVMInitializeBPFTarget = () => void; +extern LLVMInitializeHexagonTarget = () => void; +extern LLVMInitializeLanaiTarget = () => void; +extern LLVMInitializeLoongArchTarget = () => void; +extern LLVMInitializeMipsTarget = () => void; +extern LLVMInitializeMSP430Target = () => void; +extern LLVMInitializeNVPTXTarget = () => void; +extern LLVMInitializePowerPCTarget = () => void; +extern LLVMInitializeRISCVTarget = () => void; +extern LLVMInitializeSparcTarget = () => void; +extern LLVMInitializeSPIRVTarget = () => void; +extern LLVMInitializeSystemZTarget = () => void; +extern LLVMInitializeVETarget = () => void; +extern LLVMInitializeWebAssemblyTarget = () => void; extern LLVMInitializeX86Target = () => void; +extern LLVMInitializeXCoreTarget = () => void; + +let LLVMInitializeAllTargets = () => void { + LLVMInitializeAArch64Target(); + LLVMInitializeAMDGPUTarget(); + LLVMInitializeARMTarget(); + LLVMInitializeAVRTarget(); + LLVMInitializeBPFTarget(); + LLVMInitializeHexagonTarget(); + LLVMInitializeLanaiTarget(); + LLVMInitializeLoongArchTarget(); + LLVMInitializeMipsTarget(); + LLVMInitializeMSP430Target(); + LLVMInitializeNVPTXTarget(); + LLVMInitializePowerPCTarget(); + LLVMInitializeRISCVTarget(); + LLVMInitializeSparcTarget(); + LLVMInitializeSPIRVTarget(); + LLVMInitializeSystemZTarget(); + LLVMInitializeVETarget(); + LLVMInitializeWebAssemblyTarget(); + LLVMInitializeX86Target(); + LLVMInitializeXCoreTarget(); + return; +}; + +extern LLVMInitializeAArch64TargetMC = () => void; +extern LLVMInitializeAMDGPUTargetMC = () => void; +extern LLVMInitializeARMTargetMC = () => void; +extern LLVMInitializeAVRTargetMC = () => void; +extern LLVMInitializeBPFTargetMC = () => void; +extern LLVMInitializeHexagonTargetMC = () => void; +extern LLVMInitializeLanaiTargetMC = () => void; +extern LLVMInitializeLoongArchTargetMC = () => void; +extern LLVMInitializeMipsTargetMC = () => void; +extern LLVMInitializeMSP430TargetMC = () => void; +extern LLVMInitializeNVPTXTargetMC = () => void; +extern LLVMInitializePowerPCTargetMC = () => void; +extern LLVMInitializeRISCVTargetMC = () => void; +extern LLVMInitializeSparcTargetMC = () => void; +extern LLVMInitializeSPIRVTargetMC = () => void; +extern LLVMInitializeSystemZTargetMC = () => void; +extern LLVMInitializeVETargetMC = () => void; +extern LLVMInitializeWebAssemblyTargetMC = () => void; +extern LLVMInitializeX86TargetMC = () => void; +extern LLVMInitializeXCoreTargetMC = () => void; + +let LLVMInitializeAllTargetMCs = () => void { + LLVMInitializeAArch64TargetMC(); + LLVMInitializeAMDGPUTargetMC(); + LLVMInitializeARMTargetMC(); + LLVMInitializeAVRTargetMC(); + LLVMInitializeBPFTargetMC(); + LLVMInitializeHexagonTargetMC(); + LLVMInitializeLanaiTargetMC(); + LLVMInitializeLoongArchTargetMC(); + LLVMInitializeMipsTargetMC(); + LLVMInitializeMSP430TargetMC(); + LLVMInitializeNVPTXTargetMC(); + LLVMInitializePowerPCTargetMC(); + LLVMInitializeRISCVTargetMC(); + LLVMInitializeSparcTargetMC(); + LLVMInitializeSPIRVTargetMC(); + LLVMInitializeSystemZTargetMC(); + LLVMInitializeVETargetMC(); + LLVMInitializeWebAssemblyTargetMC(); + LLVMInitializeX86TargetMC(); + LLVMInitializeXCoreTargetMC(); + return; +}; + +extern LLVMInitializeAArch64AsmPrinter = () => void; +extern LLVMInitializeAMDGPUAsmPrinter = () => void; +extern LLVMInitializeARMAsmPrinter = () => void; +extern LLVMInitializeAVRAsmPrinter = () => void; +extern LLVMInitializeBPFAsmPrinter = () => void; +extern LLVMInitializeHexagonAsmPrinter = () => void; +extern LLVMInitializeLanaiAsmPrinter = () => void; +extern LLVMInitializeLoongArchAsmPrinter = () => void; +extern LLVMInitializeMipsAsmPrinter = () => void; +extern LLVMInitializeMSP430AsmPrinter = () => void; +extern LLVMInitializeNVPTXAsmPrinter = () => void; +extern LLVMInitializePowerPCAsmPrinter = () => void; +extern LLVMInitializeRISCVAsmPrinter = () => void; +extern LLVMInitializeSparcAsmPrinter = () => void; +extern LLVMInitializeSPIRVAsmPrinter = () => void; +extern LLVMInitializeSystemZAsmPrinter = () => void; +extern LLVMInitializeVEAsmPrinter = () => void; +extern LLVMInitializeWebAssemblyAsmPrinter = () => void; extern LLVMInitializeX86AsmPrinter = () => void; +extern LLVMInitializeXCoreAsmPrinter = () => void; + +let LLVMInitializeAllAsmPrinters = () => void { + LLVMInitializeAArch64AsmPrinter(); + LLVMInitializeAMDGPUAsmPrinter(); + LLVMInitializeARMAsmPrinter(); + LLVMInitializeAVRAsmPrinter(); + LLVMInitializeBPFAsmPrinter(); + LLVMInitializeHexagonAsmPrinter(); + LLVMInitializeLanaiAsmPrinter(); + LLVMInitializeLoongArchAsmPrinter(); + LLVMInitializeMipsAsmPrinter(); + LLVMInitializeMSP430AsmPrinter(); + LLVMInitializeNVPTXAsmPrinter(); + LLVMInitializePowerPCAsmPrinter(); + LLVMInitializeRISCVAsmPrinter(); + LLVMInitializeSparcAsmPrinter(); + LLVMInitializeSPIRVAsmPrinter(); + LLVMInitializeSystemZAsmPrinter(); + LLVMInitializeVEAsmPrinter(); + LLVMInitializeWebAssemblyAsmPrinter(); + LLVMInitializeX86AsmPrinter(); + LLVMInitializeXCoreAsmPrinter(); + return; +}; + +extern LLVMInitializeAArch64AsmParser = () => void; +extern LLVMInitializeAMDGPUAsmParser = () => void; +extern LLVMInitializeARMAsmParser = () => void; +extern LLVMInitializeAVRAsmParser = () => void; +extern LLVMInitializeBPFAsmParser = () => void; +extern LLVMInitializeHexagonAsmParser = () => void; +extern LLVMInitializeLanaiAsmParser = () => void; +extern LLVMInitializeLoongArchAsmParser = () => void; +extern LLVMInitializeMipsAsmParser = () => void; +extern LLVMInitializeMSP430AsmParser = () => void; +extern LLVMInitializePowerPCAsmParser = () => void; +extern LLVMInitializeRISCVAsmParser = () => void; +extern LLVMInitializeSparcAsmParser = () => void; +extern LLVMInitializeSystemZAsmParser = () => void; +extern LLVMInitializeVEAsmParser = () => void; +extern LLVMInitializeWebAssemblyAsmParser = () => void; extern LLVMInitializeX86AsmParser = () => void; +let LLVMInitializeAllAsmParsers = () => void { + LLVMInitializeAArch64AsmParser(); + LLVMInitializeAMDGPUAsmParser(); + LLVMInitializeARMAsmParser(); + LLVMInitializeAVRAsmParser(); + LLVMInitializeBPFAsmParser(); + LLVMInitializeHexagonAsmParser(); + LLVMInitializeLanaiAsmParser(); + LLVMInitializeLoongArchAsmParser(); + LLVMInitializeMipsAsmParser(); + LLVMInitializeMSP430AsmParser(); + LLVMInitializePowerPCAsmParser(); + LLVMInitializeRISCVAsmParser(); + LLVMInitializeSparcAsmParser(); + LLVMInitializeSystemZAsmParser(); + LLVMInitializeVEAsmParser(); + LLVMInitializeWebAssemblyAsmParser(); + LLVMInitializeX86AsmParser(); + return; +}; + +extern LLVMInitializeAArch64Disassembler = () => void; +extern LLVMInitializeAMDGPUDisassembler = () => void; +extern LLVMInitializeARMDisassembler = () => void; +extern LLVMInitializeAVRDisassembler = () => void; +extern LLVMInitializeBPFDisassembler = () => void; +extern LLVMInitializeHexagonDisassembler = () => void; +extern LLVMInitializeLanaiDisassembler = () => void; +extern LLVMInitializeLoongArchDisassembler = () => void; +extern LLVMInitializeMipsDisassembler = () => void; +extern LLVMInitializeMSP430Disassembler = () => void; +extern LLVMInitializePowerPCDisassembler = () => void; +extern LLVMInitializeRISCVDisassembler = () => void; +extern LLVMInitializeSparcDisassembler = () => void; +extern LLVMInitializeSystemZDisassembler = () => void; +extern LLVMInitializeVEDisassembler = () => void; +extern LLVMInitializeWebAssemblyDisassembler = () => void; +extern LLVMInitializeX86Disassembler = () => void; +extern LLVMInitializeXCoreDisassembler = () => void; + +let LLVMInitializeAllDisassemblers = () => void { + LLVMInitializeAArch64Disassembler(); + LLVMInitializeAMDGPUDisassembler(); + LLVMInitializeARMDisassembler(); + LLVMInitializeAVRDisassembler(); + LLVMInitializeBPFDisassembler(); + LLVMInitializeHexagonDisassembler(); + LLVMInitializeLanaiDisassembler(); + LLVMInitializeLoongArchDisassembler(); + LLVMInitializeMipsDisassembler(); + LLVMInitializeMSP430Disassembler(); + LLVMInitializePowerPCDisassembler(); + LLVMInitializeRISCVDisassembler(); + LLVMInitializeSparcDisassembler(); + LLVMInitializeSystemZDisassembler(); + LLVMInitializeVEDisassembler(); + LLVMInitializeWebAssemblyDisassembler(); + LLVMInitializeX86Disassembler(); + LLVMInitializeXCoreDisassembler(); + return; +}; + extern LLVMModuleCreateWithName = (*i8) => *void; extern LLVMGetGlobalContext = () => *void; extern LLVMCreateBuilder = () => *void; /* TODO: Create types */ |