让编译器直接/手动发出LLVM IR是否可行?

时间:2015-04-27 12:31:40

标签: compiler-construction llvm llvm-ir

手动发射LLVM IR而不是使用LLVM API /绑定是否可行?很少有语言具有LLVM绑定,并且通常它们已经过时或缺乏良好的文档,我真的想避免使用C ++,因此直接发出LLVM IR将允许我使用我选择的语言(F#)。

为了清楚起见,我希望编写一个针对LLVM的自己的小编译器,因此我可以使用LLVM ARM后端为ARM Cortex M微控制器生成代码。

2 个答案:

答案 0 :(得分:2)

对于某些可行的定义,是的。格拉斯哥Haskell编译器emits LLVM bitcodesee also - 实际上可能对该链接的整个教程感兴趣)

在走这条路之前,您可能希望考虑一些现有的解决方案:

答案 1 :(得分:0)

如果您要连接到f#,我建议您为所需的部件制作c ++ / CLI程序集。写出文本并对其进行重新分析的速度较慢,具体取决于用例的大小,生成正确的文本和检查标识符名称都有其自身的问题。