编译器设计中图形和线性中间表示的优缺点?

时间:2018-05-15 04:59:36

标签: compiler-construction clang llvm llvm-ir intermediate-language

编译器设计中有两种中间表示(IR),简要介绍here:图形(例如抽象语法树)和线性(例如LLVM IR)。两者的利弊是什么?

我注意到Clang实现了两者,但似乎只在LLVM后端使用了线性表示(LLVM IR)。

1 个答案:

答案 0 :(得分:0)

这是编译器开发人员非常主观的决定。在我的语言中,我实现了一个AST图,然后走向生成LLVM-IR。我可以很容易地从语义检查转到IR,但我做了一些重构/优化,在IR生成之前,AST很好地适应了。