feat: refine

This commit is contained in:
LiuBinPeng
2022-05-30 15:03:36 +08:00
parent 6cd0cf5144
commit 55d66cc4c5
15 changed files with 149 additions and 149 deletions

View File

@@ -6,7 +6,7 @@
## 结构
![](./../assets/LLVM-segment.png)
![](https://github.com/FantasticLBP/knowledge-kit/raw/master/assets/LLVM-segment.png)
LLVM 由三部分构成:
@@ -16,7 +16,7 @@ LLVM 由三部分构成:
- Backend后端生成目标程序机器码
![](./../assets/LLVM-Structure.png)
![](https://github.com/FantasticLBP/knowledge-kit/raw/master/assets/LLVM-Structure.png)
正是由于这样的设计,使得 LLVM 具备很多有点:
@@ -51,7 +51,7 @@ Clang 相较于 GCC具备下面优点
- 设计清晰简单,容易理解,易于扩展增强
![](./../assets/LLVM-phase.png)
![](https://github.com/FantasticLBP/knowledge-kit/raw/master/assets/LLVM-phase.png)
### 查看编译过程
@@ -61,7 +61,7 @@ clang -ccc-print-phases main.m
对 main.m 文件
![](./../assets/clang-phase.png)
![](https://github.com/FantasticLBP/knowledge-kit/raw/master/assets/clang-phase.png)
可以看到经历了输入、预处理、编译、LLVM Backend、汇编、链接、绑定架构7个阶段。
@@ -79,10 +79,10 @@ int main(int argc, const char * argv[]) {
}
```
![](./../assets/clang-analysize.png)
![](https://github.com/FantasticLBP/knowledge-kit/raw/master/assets/clang-analysize.png)
语法分析生成语法树ASTAbstract Syntax Tree`clang -fmodules -fsyntax-only -Xclang -ast-dump main.m`
![](./../assets/clang-ast.png)
![](https://github.com/FantasticLBP/knowledge-kit/raw/master/assets/clang-ast.png)
### LLVM IR