diff options
| author | Baitinq <[email protected]> | 2025-07-15 17:34:39 +0200 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-07-15 18:00:31 +0200 |
| commit | cc56ed42486c2636af50bae451825ad90cfd4b6c (patch) | |
| tree | 2307d6ced51f427405e4152b4ff1493e245a6b30 /src/llvm.pry | |
| parent | Boostrap: Support generating LLVM IR file (diff) | |
| download | pry-lang-cc56ed42486c2636af50bae451825ad90cfd4b6c.tar.gz pry-lang-cc56ed42486c2636af50bae451825ad90cfd4b6c.tar.bz2 pry-lang-cc56ed42486c2636af50bae451825ad90cfd4b6c.zip | |
Finish bootstrapping :^)
Diffstat (limited to 'src/llvm.pry')
| -rw-r--r-- | src/llvm.pry | 353 |
1 files changed, 353 insertions, 0 deletions
diff --git a/src/llvm.pry b/src/llvm.pry new file mode 100644 index 0000000..2feb815 --- /dev/null +++ b/src/llvm.pry @@ -0,0 +1,353 @@ +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 LLVMInitializeSystemZTargetInfo = () => void; +extern LLVMInitializeVETargetInfo = () => void; +extern LLVMInitializeWebAssemblyTargetInfo = () => void; +extern LLVMInitializeX86TargetInfo = () => void; +extern LLVMInitializeXCoreTargetInfo = () => void; + +let LLVMInitializeAllTargetInfos = () => void { + LLVMInitializeAArch64TargetInfo(); + LLVMInitializeAMDGPUTargetInfo(); + LLVMInitializeARMTargetInfo(); + LLVMInitializeAVRTargetInfo(); + LLVMInitializeBPFTargetInfo(); + LLVMInitializeHexagonTargetInfo(); + LLVMInitializeLanaiTargetInfo(); + LLVMInitializeLoongArchTargetInfo(); + LLVMInitializeMipsTargetInfo(); + LLVMInitializeMSP430TargetInfo(); + LLVMInitializeNVPTXTargetInfo(); + LLVMInitializePowerPCTargetInfo(); + LLVMInitializeRISCVTargetInfo(); + LLVMInitializeSparcTargetInfo(); + 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 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(); + 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 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(); + 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 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(); + 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; +}; + +let LLVMBuilderRef = newtype *void; +let LLVMModuleRef = newtype *void; +let LLVMTargetDataRef = newtype *void; +let LLVMTargetMachineRef = newtype *void; +let LLVMContextRef = newtype *void; +let LLVMTargetRef = newtype *void; +let LLVMIntPredicate = newtype i64; + +let LLVMValueRef = newtype *void; +let LLVMValueKind = newtype i64; +let LLVMTypeRef = newtype *void; +let LLVMBasicBlockRef = newtype *void; + +extern LLVMGetModuleDataLayout = (LLVMModuleRef) => LLVMTargetDataRef; +extern LLVMConstInt = (LLVMTypeRef, i64, i64) => LLVMValueRef; +extern LLVMConstNull = (LLVMTypeRef) => LLVMValueRef; +extern LLVMInt64Type = () => LLVMTypeRef; +extern LLVMInt32Type = () => LLVMTypeRef; +extern LLVMInt1Type = () => LLVMTypeRef; +extern LLVMInt8Type = () => LLVMTypeRef; +extern LLVMVoidType = () => LLVMTypeRef; + +extern LLVMModuleCreateWithName = (*i8) => LLVMModuleRef; +extern LLVMGetGlobalContext = () => LLVMContextRef; +extern LLVMCreateBuilder = () => LLVMBuilderRef; +extern LLVMDisposeModule = (LLVMModuleRef) => void; +extern LLVMShutdown = () => void; +extern LLVMDisposeBuilder = (LLVMBuilderRef) => void; + +extern LLVMGetInsertBlock = (LLVMBuilderRef) => LLVMBasicBlockRef; + +extern LLVMDumpModule = (LLVMModuleRef) => void; +extern LLVMPrintModuleToFile = (LLVMModuleRef, *i8, **i8) => i64; +extern LLVMGetDefaultTargetTriple = () => *i8; +extern LLVMGetTargetFromTriple = (*i8, *LLVMTargetRef, **i8) => i64; +extern LLVMDisposeMessage = (*i8) => void; +extern LLVMCreateTargetMachine = (LLVMTargetRef, *i8, *i8, *i8, i64, i64, i64) => LLVMTargetMachineRef; +extern LLVMDisposeTargetMachine = (LLVMTargetMachineRef) => void; + +let LLVMCodeGenLevelDefault = 2; +let LLVMRelocDefault = 0; +let LLVMCodeModelDefault = 0; + +extern LLVMVerifyModule = (LLVMModuleRef, i64, **i8) => i64; + +let LLVMAbortProcessAction = 0; + +extern LLVMTargetMachineEmitToFile = (LLVMTargetMachineRef, LLVMModuleRef, *i8, i64, **i8) => i64; + +let LLVMObjectFile = 1; + +extern LLVMFunctionType = (LLVMTypeRef, *LLVMTypeRef, i64, i64) => LLVMTypeRef; +extern LLVMAddFunction = (LLVMModuleRef, *i8, LLVMTypeRef) => LLVMValueRef; +extern LLVMAppendBasicBlock = (LLVMValueRef, *i8) => LLVMBasicBlockRef; +extern LLVMPositionBuilderAtEnd = (LLVMBuilderRef, LLVMBasicBlockRef) => void; + +extern LLVMGetParams = (LLVMValueRef, *LLVMValueRef) => void; + +extern LLVMBuildRetVoid = (LLVMBuilderRef) => void; +extern LLVMBuildRet = (LLVMBuilderRef, LLVMValueRef) => void; +extern LLVMPointerType = (LLVMTypeRef, i64) => LLVMTypeRef; + +extern LLVMBuildCall2 = (LLVMBuilderRef, LLVMTypeRef, LLVMValueRef, *LLVMValueRef, i64, *i8) => LLVMValueRef; +extern LLVMBuildGlobalStringPtr = (LLVMBuilderRef, *i8, *i8) => LLVMValueRef; +extern LLVMBuildAlloca = (LLVMBuilderRef, LLVMTypeRef, *i8) => LLVMValueRef; +extern LLVMBuildStore = (LLVMBuilderRef, LLVMValueRef, LLVMValueRef) => LLVMValueRef; +extern LLVMBuildLoad2 = (LLVMBuilderRef, LLVMTypeRef, LLVMValueRef, *i8) => LLVMValueRef; +extern LLVMGetLastInstruction = (LLVMBasicBlockRef) => LLVMValueRef; + +extern LLVMBuildBr = (LLVMBuilderRef, LLVMBasicBlockRef) => LLVMValueRef; +extern LLVMIsATerminatorInst = (LLVMValueRef) => LLVMValueRef; +extern LLVMBuildCondBr = (LLVMBuilderRef, LLVMValueRef, LLVMBasicBlockRef, LLVMBasicBlockRef) => LLVMValueRef; +extern LLVMBuildICmp = (LLVMBuilderRef, LLVMIntPredicate, LLVMValueRef, LLVMValueRef, *i8) => LLVMValueRef; +extern LLVMBuildNeg = (LLVMBuilderRef, LLVMValueRef, *i8) => LLVMValueRef; +extern LLVMBuildSub = (LLVMBuilderRef, LLVMValueRef, LLVMValueRef, *i8) => LLVMValueRef; +extern LLVMBuildAdd = (LLVMBuilderRef, LLVMValueRef, LLVMValueRef, *i8) => LLVMValueRef; +extern LLVMBuildMul = (LLVMBuilderRef, LLVMValueRef, LLVMValueRef, *i8) => LLVMValueRef; +extern LLVMBuildSDiv = (LLVMBuilderRef, LLVMValueRef, LLVMValueRef, *i8) => LLVMValueRef; +extern LLVMBuildSRem = (LLVMBuilderRef, LLVMValueRef, LLVMValueRef, *i8) => LLVMValueRef; + +extern LLVMBuildGEP2 = (LLVMBuilderRef, LLVMTypeRef, LLVMValueRef, *LLVMValueRef, i64, *i8) => LLVMValueRef; +extern LLVMAddGlobal = (LLVMModuleRef, LLVMTypeRef, *i8) => LLVMValueRef; +extern LLVMSetInitializer = (LLVMValueRef, LLVMValueRef) => void; +extern LLVMGetValueKind = (LLVMValueRef) => LLVMValueKind; +let LLVMFunctionValueKind = cast(LLVMValueKind, 5); + +let LLVMIntEQ = 32; +let LLVMIntNE = 33; +let LLVMIntUGT = 34; +let LLVMIntUGE = 35; +let LLVMIntULT = 36; +let LLVMIntULE = 37; +let LLVMIntSGT = 38; +let LLVMIntSGE = 39; +let LLVMIntSLT = 40; +let LLVMIntSLE = 41; + +extern LLVMStoreSizeOfType = (LLVMTargetDataRef, LLVMTypeRef) => i64; +extern LLVMStructCreateNamed = (LLVMContextRef, *i8) => LLVMTypeRef; +extern LLVMStructSetBody = (LLVMTypeRef, *LLVMTypeRef, i64, i64) => void; + |