LLVM专栏目录页
文章目录
功能:在更改以前的文章后, 其顺序会被打乱, 不能按照时间顺序依次访问, 这需要花时间理清文章之间的联系才行, 所以我整理了LLVM使用顺序(从安装->调式). 这里只简单陈列所需文章的内容, 来保持索引简洁, 文章之间结构清晰, 详细的要点击蓝色字体,跳转对应的文章, 然后根据文章目录跳转对应的部分
纯LLVM流, 点击详见此文
简介:讲了Gnu/Linux下如何安装和使用LLVM
| 阶段 | 工具名称 | 分类与描述 | 所属生态 | 示例命令 |
|---|---|---|---|---|
| 前端 | clang++ | 编译器驱动程序 (Compiler Driver) / 前端 (Frontend)。负责预处理、编译,将源代码转换为LLVM IR | LLVM | clang++ -S -emit-llvm -fPIC main.cpp -o ir.ll |
| 中端 | opt | 优化器 (Optimizer)。对LLVM IR进行机器无关的优化 | LLVM | opt -O2 -S ir.ll -o opt.ll |
| 后端 | llc | 静态编译器 (Static Compiler) / 后端 (Backend)。将LLVM IR编译到特定架构的汇编代码 | LLVM | llc -O2 -relocation-model=pic opt.ll -o llc.s |
| 汇编1 | llvm-mc | 机器码工具 (Machine Code Toolkit)。作为汇编器 (Assembler)。将汇编代码转换为目标文件 | LLVM | llvm-mc -filetype=obj -triple=x86_64-pc-linux-gnu llc.s -o mc.o |
| 汇编2(推荐) | (or)clang | 编译器驱动程序 (Compiler Driver)。此处利用其集成汇编器功能,将汇编代码转换为目标文件,实现纯LLVM流。 | LLVM | clang -c -fPIC llc.s -o mc.o |
| 链接(可执行文件) | clang++ | 编译器驱动程序(调用链接器)。协调链接过程 | LLVM | clang++ -fuse-ld=lld mc.o -o a.out |
| lld | 链接器(Linker)。将目标文件和库链接为可执行文件 | LLVM | (通过clang调用,见此链接(可执行文件)) | |
| 运行 | ./a.out | |||
| 链接(可调试文件) | clang++ | 编译器驱动程序(调用链接器)。协调链接过程 | LLVM | clang++ -g -fuse-ld=lld mc.o -o program |
| 调试 | lldb | 调试器(Debugger)。用于调试可执行程序 | LLVM | lldb ./program |
LeakSanitizer
简介:LeakSanitizer是一个轻量内存检测工具, 可以配合LLVM使用
lldb命令使用
简介: 使用LLVM下常用的lldb调试命令
