如何使用llvm生成本机代码?
如果可能,可以使用Haskell绑定吗?
upd:我的意思是生成不在内存中的代码,我的意思是如何生成代码,例如将其保存到文件中。
答案 0 :(得分:10)
LLVM是一种编译器基础结构,它通过将编译器生成的internal language作为文本源或内存表示形式处理来生成本机代码,然后通过各种优化和转换将其转换并链接到最终本机代码。所以,是的,LLVM可以生成本机代码;事实上,这是它的主要目的。
Haskell有一个binding to the LLVM library。您可以使用writeBitcodeToFile
生成LLVM bitcode文件;然后llvm-ld
可以将这些链接到本机代码。