上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.5 本章小结
本章简单介绍了LLVM的设计思路、发展现状,以及在macOS平台如何构建、调试LLVM,最后演示了如何通过在线工具Compiler Explorer学习LLVM。
[1] 通常静态编译器仅包含可执行代码,和操作系统的可执行文件格式兼容,但是一些特殊应用使用胖二进制(fat binary)文件,可同时包含多种输出。
[2] 程序优化可以在线执行也可以离线执行,在线执行需要消耗额外的运行时资源,在一些动态语言(如JavaScript、Java等)虚拟机中会使用在线编译优化,而静态语言则更多使用离线优化。
[3] LLVM 2.7中将malloc、free指令移除,堆内存管理会调用库函数malloc、free。
[4] 这里的test.ll可以参考代码清单9-3。