Swift 编译过程

极客时间——Swift学习笔记

LLVM

百度百科LLVM
深入理解LLVM
LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本,作为多种语言的后端。
C/OC通过Clang编译器前端,Swift会先编译成Swift AST然后通过swiftc命令行参数编译成Swift IL(Swift的中间语言),最后编译成LLVM IR(LLVM的中间层表示),最终通过LLVM编译器在具体机器(x86 ARM等)上执行可执行文件。
极客时间——Swift学习笔记
Swift源码解析–> Swift抽象语法树–> 通过工具转化为Swift中间语言SIL–>通过分析工具转化为LLVM中间表示层–>通过LLVM的后端生成.o的可执行文件。

swiftc命令行工具

极客时间——Swift学习笔记

相关文章: