Clang - Animenzzzz/Study GitHub Wiki
Clang是Xcode的编译器
写完的.m文件 —> clang分析检查 —>clang将其转化成LLVM IR代码
bogon:Desktop animenzzzzzz$ clang -ccc-print-phases aaa.m
- input, "aaa.m", objective-c
- preprocessor, {0}, objective-c-cpp-output
- compiler, {1}, ir
- backend, {2}, assembler
- assembler, {3}, object
- linker, {4}, image
- bind-arch, "x86_64", {5}, image
预处理:将代码中的 #import 用对应的具体内容替换
语法解析标记
解析:之前生成的标记流将会被解析成一棵抽象语法树
静态分析
类型检查
代码生成。生成LLVM
参考: