如何使用 ANTLR 和 C 目标生成 LLVM IR
我目前正在尝试使用 ANTLR3 生成 LLVM IR。 但问题是,我需要 C 目标(C++ 会更好,但还不能工作,或者是吗?),但从 C 中我无法调用 LLVM C++ API 来构建 IR。
Terence Parr 的教程使用 Java 和 StringTemplate 库。但据我所知,StringTemplate 库不适用于 C。
有没有人有一些好主意如何做到这一点? :)
谢谢
im currently trying to generate LLVM IR with ANTLR3.
But the problem ist, that i need the C target (C++ would be better but is not working yet, or is it?) but from C i can't call the LLVM C++ API for Building the IR.
The Tutorial from Terence Parr uses Java and the StringTemplate lib. But as i know the StringTemplate lib ist not available for C.
Does anyone have some good ideas how this can be done? :)
Thx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
LLVM 常见问题解答中有一个非常好的条目,讨论了您想要做什么:
http://llvm.org/docs/FAQ.html#langirgen
它指向 llvm-c,它是到 llvm 的 C 绑定,允许直接从 C 生成 IR,并且从至少 llvm-2.6 开始集成到 llvm。
Terence 在其示例中使用 antlr-java 和 stringtemplates 所采用的方法是生成llvm 程序集作为文本(生成文本实际上是 stringtemplates 的作用)。
there is a very good entry in the LLVM faq, discussing what you want to do:
http://llvm.org/docs/FAQ.html#langirgen
It points to llvm-c, which is a C binding to llvm, allowing to generate IR directly from C, and is integrated to llvm since at lease llvm-2.6
The approach Terence takes in its example with antlr-java and stringtemplates is to generate llvm assembly as text (and generating text is really what stringtemplates is about).