LLVM - 如何将AST转换为IR

时间:2014-07-09 11:06:10

标签: llvm llvm-clang llvm-gcc llvm-ir

我知道解析器生成的AST用于在前端生成IR。

我想知道如何解析AST然后转换为IR(概率汇编或bitcode),

AST是一棵树,从AST到IR的转换涉及哪些步骤。

1 个答案:

答案 0 :(得分:6)

在Clang的LLVM IR from Clang ASTs阶段发生code gen。此阶段的代码位于lib/CodeGen/(相对于Clang的源根)。因为Clang在内存数据结构中具有AST,所以不需要解析AST。代码生成本质上是AST的递归遍历,它将IR发送到Module。如果您感兴趣的任何特定步骤,检查它的最佳方法是查看代码。