让编译器 directly/manually 发出 LLVM IR 可行吗?
Would it be feasible to have a compiler directly/manually emit LLVM IR?
手动发出 LLVM IR 而不是使用 LLVM API/bindings 是否可行?很少有语言有 LLVM 绑定,而且它们通常已经过时或缺乏良好的文档,我真的很想避免使用 C++,因此直接发出 LLVM IR 将允许我使用我选择的语言 (F#)。
需要说明的是,我希望编写自己的针对 LLVM 的小型编译器,这样我就可以使用 LLVM ARM 后端为 ARM Cortex M 微控制器生成代码。
如果您要连接到 f#,我建议为您需要的部分制作一个 c++/CLI 程序集。写出文本并重新解析它的速度较慢,具体取决于用例的大小,生成正确的文本和检查标识符名称有其自身的 class 问题。
对于可行的一些定义,是的。 Glasgow Haskell 编译器 emits LLVM bitcode (see also -- link 上的整个教程实际上可能很有趣)
在走这条路之前,您不妨考虑一些现有的解决方案:
手动发出 LLVM IR 而不是使用 LLVM API/bindings 是否可行?很少有语言有 LLVM 绑定,而且它们通常已经过时或缺乏良好的文档,我真的很想避免使用 C++,因此直接发出 LLVM IR 将允许我使用我选择的语言 (F#)。
需要说明的是,我希望编写自己的针对 LLVM 的小型编译器,这样我就可以使用 LLVM ARM 后端为 ARM Cortex M 微控制器生成代码。
如果您要连接到 f#,我建议为您需要的部分制作一个 c++/CLI 程序集。写出文本并重新解析它的速度较慢,具体取决于用例的大小,生成正确的文本和检查标识符名称有其自身的 class 问题。
对于可行的一些定义,是的。 Glasgow Haskell 编译器 emits LLVM bitcode (see also -- link 上的整个教程实际上可能很有趣)
在走这条路之前,您不妨考虑一些现有的解决方案: