LLVM - 如何将AST转换为IR

Sam*_*Sam 4 llvm llvm-gcc llvm-clang llvm-ir

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

我想知道如何解析AST然后转换为IR(prob assembly或bitcode),

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

Eli*_*sky 6

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