手动发射LLVM IR而不是使用LLVM API /绑定是否可行?很少有语言具有LLVM绑定,并且通常它们已经过时或缺乏良好的文档,我真的想避免使用C ++,因此直接发出LLVM IR将允许我使用我选择的语言(F#)。
为了清楚起见,我希望编写一个针对LLVM的自己的小编译器,因此我可以使用LLVM ARM后端为ARM Cortex M微控制器生成代码。
答案 0 :(得分:2)
对于某些可行的定义,是的。格拉斯哥Haskell编译器emits LLVM bitcode(see also - 实际上可能对该链接的整个教程感兴趣)
在走这条路之前,您可能希望考虑一些现有的解决方案:
答案 1 :(得分:0)
如果您要连接到f#,我建议您为所需的部件制作c ++ / CLI程序集。写出文本并对其进行重新分析的速度较慢,具体取决于用例的大小,生成正确的文本和检查标识符名称都有其自身的问题。