从LLVM官网了解了下,这是llvm的官方网址(http://llvm.org/ ):
LLVM项目是模块化的、可重用编译器的、工具链技术的集合。LLVM的目标是提供一个现代的、基于SSA的编译策略,能够支持任意编程语言的静态、动态编译。LLVM可以包括下面几种子项目:
1.LLVM核心库(The LLVM Core libraries ),是独立于源代码和目标优化器的,这些库围绕llvm的中间表示(llvm IR)指定的代码表示构建的。
2.clang 是一个面向C/C++/Objective-C的编译器,目的是编译的速度特别快。
3. LLDB project 在LLVM和Clang提供的库的基础上,以提供一个优秀的本机调试器,比GDB速度要快。
4.The libc++ and libc++ ABI projects 提供了C++标准库的标准一致性和高性能实现。
5. compiler-rt project 提供了高级代码生成器支持例程(如“\uu fixunsdfdi”)的高度优化实现,以及在目标没有短的本机指令序列来实现核心IR操作时生成的其他调用。
6.MLIR子项目是构建可重用和可扩展的编译器基础结构的一种新方法。MLIR旨在解决软件碎片化问题,改进异构硬件的编译,显著降低构建特定领域编译器的成本,并帮助将现有编译器连接在一起。
7.The OpenMP 子项目提供了一个OpenMP运行时,可用于Clang中的OpenMP实现。
8.The polly project 使用多面体模型实现了一系列缓存局部性优化以及自动并行和向量化。
9.The libclc project 旨在实现OpenCL标准库。
10.The klee project 实现了一个“符号虚拟机”,它使用一个定理证明器来尝试评估通过一个程序的所有动态路径,以发现错误并证明函数的属性。
11.The LLD project 是一个新的链接器。这是系统链接器的替代品,运行速度更快。