【问题标题】:How to generating LLVM bitcode without the llvm generator tools?如何在没有 llvm 生成器工具的情况下生成 LLVM 位码?
【发布时间】:2018-03-03 18:57:12
【问题描述】:

我已经阅读了 llvm Kaleidoscope 教程,但它是关于如何使用他们的工具的。我正在寻找一种方法来编写我自己的代码,允许我采用抽象语法树并生成 llvm IR。

不幸的是,我对如何去做这件事有点迷茫。我目前的想法是让我的 AST 的每个节点都填充空白样式字符串生成。然而,这似乎不优雅,并且可能有更好的方法来做到这一点。

我读了this 的问题,这与我的类似,但根据我对 llvm IR 的理解,它可能完全关闭,它的行为类似于比传统汇编语言更高级的语言,它具有功能,和变量(无限寄存器)。所以我认为不同的技术可能适用。

【问题讨论】:

  • 另外,作为旁注,如果有人知道学习 llvm IR 语言的好资源,请告诉我。

标签: code-generation llvm-ir


【解决方案1】:

一点也不优雅。一般来说:此时大多数编译器可能会生成某种形式的 IR 或 VM 指令集,这些指令集可能会根据有据可查的方法进行优化。最后,编译器将该结果/结果转换为目标机器代码。

将 LLVM-IR 视为您要生成的内部 IR,并让工具链负责优化和创建机器代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    相关资源
    最近更新 更多