项目结构
llvm/cmake
生成系统构建文件
llvm/examples
一些例子
llvm/include
llvm项目使用的头文件
- llvm/include/llvm:llvm特有的头文件
- llvm/include/llvm/Surpport:一些不是llvm特有的头文件
- llvm/include/llvm.Config:cmake配置的头文件
llvm/lib
- llvm/lib/IR:核心的llvm文件,包括一些核心的类比如指令(Instruction)和基本块(Basicblock)
- AsmParser:asm代码处理库
- Bitcode:bitcode处理库
- Analysis:分析类,比如调用图、诱导变量(什么东东?),循环识别等
- Transforms:IR-2-IR级别的转换,是编译优化的主攻方向
- Target:描述代码生成目标架构
- Codegen:代码生成核心类,包括指令选取、指令调度和寄存器选取
- MC:在机器码层面操作的库
- ExecutionEngine:直接执行字节码的库
- Surpport:不是llvm特有的支持库
llvm/binding
- 为不是c/c++编写的程序提供使用llvm的便利(LLVM官方提供了针对OCaml和Python的)
llvm/projects
- 随llvm一起发布的项目
llvm/test
- 项目测试
llvm/tools
- 由上述库构建的可执行文件,是用户接口的主要组成
llvm/utils
- 针对llvm源代码的实用程序
-5 -5 -4 0 0 3 3 4 5