llvm-project/llvm/include/
从LLVM库导出的公共头文件。 三个主要子目录:
llvm/include/llvm/,所有LLVM特定的头文件,以及LLVM的不同部分的子目录:Analysis,CodeGen,Target,Transforms等。
llvm/include/llvm/Support/,LLVM附带的通用支持库,但不一定特定于LLVM。 例如,某些C ++ STL实用程序和命令行选项处理库在此处存储头文件。
llvm/include/llvm/Config/,由cmake配置的头文件。 它们包装“标准” UNIX和C头文件。 源代码可以包括这些头文件,这些头文件会自动处理cmake生成的条件#include。
llvm-project/llvm/lib/
大多数源文件在这里。 通过将代码放入库中,LLVM使得在工具之间共享代码变得容易。
llvm/lib/IR/,实现诸如Instruction和BasicBlock之类的核心类的核心LLVM源文件。
llvm/lib/AsmParser/,LLVM汇编语言解析器库的源代码
llvm/lib/Bitcode/,用于读取和写入LLVM bitcode的代码。
llvm/lib/Analysis/,各种程序分析,例如调用图,归纳变量,自然循环标识等。
llvm/lib/Transforms/,IR到IR程序的转换,例如积极的死代码消除,稀疏条件常量传播,内联,循环不变代码运动,死全局消除等。
llvm/lib/Target/,描述用于代码生成的目标体系架构(ISA)的文件。 例如,llvm/lib/Target/X86保存X86计算机的描述。
llvm/lib/CodeGen/,代码生成器的主要部分:指令选择器,指令调度和寄存器分配。
llvm/lib/MC/,该目录的代码主要是处理机器码(Machine Code),以及处理生成ELF格式的obj文件的代码。
llvm/lib/ExecutionEngine/,用于在运行时直接执行LLVM bitcode的库。
llvm/lib/Support/,该目录存放与llvm/include/ADT/和llvm/include/Support/中的头文件相对应的源代码。



