项目结构

  • 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