我目前正在尝试使用 ANTLR3 生成 LLVM IR。但问题是,我需要 C 目标(C++ 会更好,但还没有工作,或者是吗?)但是从 C 中我不能调用 LLVM C++ API 来构建 IR。
Terence Parr 的教程使用 Java 和 StringTemplate 库。但据我所知,StringTemplate 库不适用于 C。
有没有人有一些好主意如何做到这一点?:)
谢谢
LLVM faq 中有一个很好的条目,讨论你想要做什么:http: //llvm.org/docs/FAQ.html#langirgen 它指向 llvm-c,这是一个 C 绑定到 llvm,允许直接从 C 生成 IR,并从至少 llvm-2.6 开始集成到 llvm
Terence 在其 antlr-java 和 stringtemplates 示例中采用的方法是将 llvm 程序集生成为文本(生成文本实际上是 stringtemplates 的内容)。