- Hands-on LLVM essentials
- 入门材料
- 学习路线图
- LLVM Essentials - 2015
- LLVM IR Tutorial - 2019
- Building LLVM IR - scalar add
- LLVM IR Introduction
- llvm::IRBuilder
- Creating an LLVM module
- Emitting a function in a module
- Adding a block to a function
- Create an instruction
- Emitting a global variable
- Emitting a return statement
- Emitting if-else condition IR
- TODO - Emitting LLVM IR for loop
- Advanced LLVM IR
- LLVM’s type system
- Memory address and Load/Store
- Alloca instruction cheat SSA CFG
- TODO - Inserting & Extracting Scalars from a Vector
- Basic IR Transformations
- opt & Pass Infra
- 自定义 Pass - HelloWorld
- basic block pass
- TODO - Using other Pass info
- TODO - instruction simplification
- TODO - instruction combination
- Advanced IR Block Transformations
- Loop processing
- TODO - Scalar evolution
- TODO - LLVM intrinsics
- TODO - Vectorization
Hands-on LLVM essentials
Hands-on LLVM essentials
1月15日修改
2024年3月17日创建
583
751
入门材料
学习路线图
新手入门,主要是 2 个材料:
1.
LLVM Essentials-2015.pdf
2.
2019 EuroLLVM Developers’ Meeting - LLVM IR Tutorial
预置条件:
要点提纲
1.
掌握 LLVM common Tools
2.
掌握 LLVM IR 的 API。看的懂手册、会用 llvm::IRBuilder。
3.
Pass Infra
4.
Codegen
不覆盖的内容:
1.
intrinsic
2.
exception
3.
metadata & attribute
4.
vector instruction
5.
debug information & DWARF
LLVM Essentials - 2015
非常适合入门 LLVM,只是 2015 年的书,API 有点老了。
我用 chatGPT 重新写了一下 tutorial code,并用 Clang19 跑通了。
快的话,一个周末就可以刷完。