NFY NotFinishedYet:还没有写完。。。
本篇英文名叫 From LLVM To Clang: Cook Spend Money Buy A Big Kitchen
,翻译过来的意思是从 LLVM 研究到 Clang 的一个简单了解和介绍,苹果在这个上面花了很多精力和时间的投入
,所以值得我们好好研究。
隶属于我的第二个大系列:CookingWithCook
,翻译过来的中文意思就是 作为一个长期热爱苹果的苹果开发者,跟随苹果公司一起积累和成长。
从 LLVM 到 clang
1.1 简介:开发故事
英文全称:Low Level Virtual Machine
LLVM
计划启动于2000年,最初由美国UIUC大学的 Chris Lattner
博士主持开展。
2006年Chris Lattner加盟Apple Inc
. 并致力于 LLVM 在 Apple 开发体系中的应用。Apple 也是 LLVM 计划的主要资助者。
目前 LLVM 已经被Apple、Microsoft、Google、Facebook等各大公司采用。
Apple已经将它用在OpenCL的流水线优化,Xcode已经能使用llvm-gcc编译代码。
2011-12-02 LLVM3.0发布,LLVM包括了一系列子项目,它们也同步发布了新版本,如C/C++/Objective-C前端Clang 3.0改进了C++程序编译支持;改进C++ 2011标准支持;实现支持即将发布的C1x标准的某些特性;更快的生成代码,更快的编译,等等。
对于普通的开发人员来说,LLVM计划提供了越来越多的可以使用、编译器以外的其他工具。例如代码静态检查工具LLVM/Clang Static Analyzer,是一个 Clang 的子项目,能够使用同样的 Makefile 生成 HTML 格式的分析报告。
1.2 功能简介
LLVM 核心库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用。能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。
LLVM是伊利诺伊大学的一个研究项目,提供一个现代化的,基于SSA的编译策略能够同时支持静态和动态的任意编程语言的编译目标。
LLVM 用 C++ 编写,用于优化任意编程语言编写的程序的编译过程,包括:
- 编译时间
- 链接时间
- 运行时间
- 空闲时间
LLVM的项目是一个模块化和可重复使用的编译器和工具技术的集合
我们常接触的LLVM,比如经常使用如下的命令去编译 main.c
1 | clang -rewrite-objc main.m -o main.cpp |
References
LLVM 入门篇
作者说国内有关LLVM的东西太缺乏了
https://www.oschina.net/p/llvm
系列会
http://llvm-hpc2-workshop.github.io
https://llvm.comptechs.cn/docs/
如果您是仅对使用基于LLVM的编译器感兴趣的用户,则应该查看Clang文档:
https://clang.llvm.org
https://clang.llvm.org/docs/UsersManual.html
短博客
https://my.oschina.net/u/4360182/blog/3279626
- Post link: http://yangzai360.top/2020/11/21/From_LLVM_to_clang/
- Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.