LLVM框架(1): 开篇
引言
LLVM
(Low Level Virtual machine)项目是由一系列现代编译工具组成的编译器框架,主要子项目包括:
- LLVM Core: 提供LLVM IR
- Clang:一个现代C、C++等语言编译器前端
- LLDB: 调试器
- libc++:支持C++11、C++14的C++标准库
- compiler-rt: 运行时库
- polly: 公共库
- OpenMP:让Clang支持OpenMP
- libclc: 实现OpenCL
- LLD: 链接器
- ......
按照理解,通过LLVM可以快速建立一个新的编程语言,只要建立了AST后,遍历AST生成LLVM IR形式,这样就可以利用起LLVM自带的大量优化和后端代码生成,从而支持更多的后端硬件平台。