/ llvm.scm
llvm.scm
1 (define-module (llvm) 2 #:use-module (llvm raw) 3 #:export (init-llvm!)) 4 5 (define* (init-llvm! #:optional (target %host-type)) 6 (cond ((string-prefix? "x86" target) 7 (begin (LLVMInitializeX86Target) 8 (LLVMInitializeX86TargetInfo) 9 (LLVMInitializeX86TargetMC) 10 (LLVMInitializeX86Disassembler) 11 (LLVMInitializeX86AsmPrinter) 12 (LLVMInitializeX86AsmParser))) 13 ((string-prefix? "riscv" target) 14 (begin (LLVMInitializeRISCVTarget) 15 (LLVMInitializeRISCVTargetInfo) 16 (LLVMInitializeRISCVTargetMC) 17 (LLVMInitializeRISCVDisassembler) 18 (LLVMInitializeRISCVAsmPrinter) 19 (LLVMInitializeRISCVAsmParser))) 20 ((string-prefix? "arm" target) 21 (begin (LLVMInitializeARMTarget) 22 (LLVMInitializeARMTargetInfo) 23 (LLVMInitializeARMTargetMC) 24 (LLVMInitializeARMDisassembler) 25 (LLVMInitializeARMAsmPrinter) 26 (LLVMInitializeARMAsmParser)))))