首页  

LLVM简介     所属分类 CS 浏览量 636
LLVM Low Level Virtual Machine

LLVM是构架编译器(compiler)的框架系统,基于C++实现,
用于优化 任意程序语言编写的程序的
编译时间(compile-time) 链接时间(link-time) 运行时间(run-time) 
对开发者保持开放,并兼容已有脚本

LLVM最早的时候是Illinois的一个研究项目
主要负责人是Chris Lattner,就职于Apple
Apple 目前是llvm项目的主要赞助者之一

狭义的LLVM 和 广义的LLVM
      
广义的LLVM 是指整个LLVM编译器架构,包括前端、后端、优化器、众多的库函数以及很多的模块
狭义的LLVM 聚焦于编译器后端功能(代码生成、代码优化、JIT等)的一系列模块和库


传统编译器分三个阶段

前端(Frontend)优化器(Optimizer)后端(Backend)

前端负责分析源代码,检查语法级错误,并构建针对语言的抽象语法树(AST)
抽象语法树可以进一步转换优化,最终转为新的表示方式,然后再交给让优化器和后端处理
最终由后端生成可执行的机器码

source Code > Frontend > Optimizer > Backend > machine code


llvm也分三个阶段
LLVM不同的就是对于不同的语言提供了同一种中间表示

前端可以使用不同的编译工具对代码文件做词法分析形成抽象语法树AST
然后转换成LLVM的中间表示IR(intermediate representation)
优化器只对 IR 操作
后端负责将优化好的IR解释成对应平台的机器码

不同的前端语言最终都转换成同一种IR

LLVM Pass   遍历一遍IR,可以同时对它做一些操作

N种语言(C C++ java go ...)前端
M种架构(模拟器 arm64 x86...)的target

上一篇     下一篇
eclipse 使用空格缩进

数据结构二元组

编程语言发展史

数据结构中的各种树

树的定义和术语

算法基础知识