基于堆栈的机器的LLVM后端

14

有人知道基于堆栈的机器的开源LLVM后端的示例吗? 我需要这个来进行教育目的。


3
http://www-verimag.imag.fr/~async/slides/03-09-pietrek.pdf - SK-logic
LLVM具有x86-32和64位后端。 - JohnTortugo
3
我有一个,但它不完整。主要问题是将堆栈插槽分配适配到 codegen 中。https://github.com/Bigcheese/llvm/tree/aiobj/lib/Target/AIObj我不会把这作为真正的答案,因为对于多个基本块,codegen 不正确,并且目标接近神秘。如果您改为问如何完成此操作,我可以说出我学到的和其他开发人员推荐的方法。 - Michael Spencer
1个回答

2
JVM是一种基于堆栈的虚拟机。VMKit是LLVM的一个开源项目,实现了带有LLVM后端的JVM。 VMKit的想法是创建一个工具包,用于构建虚拟机(或托管运行时环境),例如JVM、CLI/CLR、R的运行时等。要了解更多信息,请参见Nicolas Geoffray的博士论文。尽管该项目已经停止,但源代码仍然可用
此外,微软发布了llilc,这是一个针对IL/MSIL/CIL的LLVM JIT编译器(可以认为是堆栈机)。JIT代码可以在此处找到

1
VMKit和llilc是LLVM的前端,但OP询问的是后端。它应该将LLVM IR编译为MSIL(例如),而不是将MSIL编译为LLVM IR。 - KolesnichenkoDS
那不是我理解问题的方式。也许我们应该等待原帖作者更新。 - Steven Shaw
实际上,他非常具体。 “后端”和问题倾向于使用LLVM IR并用其表达堆栈机器代码。 - Svartalf
我明白你的意思。 - Steven Shaw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接