如何在没有 llvm 生成器工具的情况下生成 LLVM 位码?

用户1762507

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

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

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

弗兰克 C.

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

链接后如何获取位码llvm?

来自分类Dev

CMakeList 文件从 C 源文件生成 LLVM 位码文件

来自分类Dev

如何告诉Xcode为Swift发出IR(LLVM位码)?

来自分类Dev

如何将修改后的 llvm 位码保存到给定的文件名?

来自分类Dev

为什么收到错误“ llvm-dis:无效的位码签名”

来自分类Dev

Clang可以通过管道接受LLVM IR或位码吗?

来自分类Dev

从Numba检索生成的LLVM

来自分类Dev

如何拦截LLVM lli工具输入?

来自分类Dev

如何将llvm :: Module的生成的LLVM-IR代码存储到字符串中?

来自分类Dev

如何卸载LLVM?

来自分类Dev

如何安装LLVM 3.9

来自分类Dev

如何使用llvm库

来自分类Dev

如何创建 llvm 类型

来自分类Dev

Clang-将C标头编译为LLVM IR /位码

来自分类Dev

使用clang生成LLVM IR

来自分类Dev

如何使Rust编译器转储生成的LLVM?

来自分类Dev

如何使用llvm-ar生成的存档文件?

来自分类Dev

LLVM的llvm.stackprotect

来自分类Dev

LLVM环境变量在哪里或如何配置LLVM环境?

来自分类Dev

如何使用llvm内部函数@ llvm.read_register?

来自分类Dev

如何下载llvm的特定版本?

来自分类Dev

如何识别内部llvm功能?

来自分类Dev

如何取消分配llvm :: module

来自分类Dev

LLVM如何执行活力分析?

来自分类Dev

如何修复我的llvm安装?

来自分类Dev

如何识别内部llvm功能?

来自分类Dev

如何调试llvm源代码?

来自分类Dev

LLVM InstVisitor如何遍历IR?

来自分类Dev

AFNetworking 是在没有完整位码的情况下构建的