LLVM & Clang
LLVM & Clang
LLVM

LLVM(Low Level Virtual Machine)
是一个底层虚拟机,但是现在是一系列编译器和工具链的合集,而且是模块化和可重用的。
LLVM 的结构
传统的编译器分为三个阶段:前端,优化,后端

LLVM 也是三段式结构。
如果要支持一个新的硬件设备,只需要实现一个新的后端。要支持一个新的语言,只需要实现一个新的前端。
优化阶段 针对了统一的 LLVM IR,LLVM IR 主要有三种格式(完全等价)
- 在内存中的编译中间语言
- 硬盘上存储的二进制中间语言(.bc)
- 可读的中间格式(.ll)
Demo- hello.c1
生成一个二进制的 .bc 文件
生成一个 .ll 文件