LLVM编译器的结构

 

     上世纪中叶计算机问世后,很快一种比汇编语言更抽象的语言在编程方面就异军突起了。早在1957年,Fortran作为第一种可用的高级程序设计语言问世。从那时起,成千上万种编程语言被开发出来。事实证明,所有的编译器都必须解决相同的任务,编译器的实现应该根据这些任务进行架构和设计。

      抽象的来看,llvm编译器由三部分部分组成:前端、优化器和后端。前端负责特定于语言的任务,读取源文件并计算语义分析表示,通常是带注释的抽象语法树(AST)。优化器可以选择一系列Pass,就是能够选择执行哪些优化Pass,完成不同代码的优化任务。后端从前端的结果创建优化的机器码。

区分前端、优化器和后端的动机是可重用性。假设前端和后端之间的接口定义得很好,就可以将一个C和一个Modula-2前端连接到同一个后端。或者,当有一个x86后端和一个Sparc后端,那么可以将原有的C++前端与二者相连。

 

1. 前端介绍

      前端通常执行以下任务:

你可能感兴趣的:(LLVM,LLVM,编译器,底层机器码,算法)