【发布时间】:2014-08-30 09:08:09
【问题描述】:
我知道解析器生成的AST是用来在前端生成IR的。
我想知道如何解析 AST,然后将其转换为 IR(prob 程序集或位码),
AST 是一棵树,从 AST 到 IR 的转换涉及哪些步骤。
【问题讨论】:
标签: llvm llvm-clang llvm-gcc llvm-ir
我知道解析器生成的AST是用来在前端生成IR的。
我想知道如何解析 AST,然后将其转换为 IR(prob 程序集或位码),
AST 是一棵树,从 AST 到 IR 的转换涉及哪些步骤。
【问题讨论】:
标签: llvm llvm-clang llvm-gcc llvm-ir
发射LLVM IR from Clang ASTs 发生在Clang 的code gen 阶段。此阶段的代码位于lib/CodeGen/(相对于 Clang 的源代码根目录)。由于 Clang 在内存数据结构中拥有 AST,因此无需解析 AST。代码生成本质上是 AST 的递归遍历,它将 IR 发送到 Module。如果您对其中的任何特定步骤感兴趣,最好的检查方法是查看代码。
【讨论】: