-g29f244e Copyright (c) 2000-2013 the FFmpeg developers built on Sep 21 2013 16:41:16 with llvm-gcc...-g29f244e Copyright (c) 2000-2013 the FFmpeg developers built on Sep 21 2013 16:41:16 with llvm-gcc
C->Clang C/C++/ObjC前端、Fortran->llvm-gcc前端、Haskell->GHC前端 LLVM IR-> LLVM 优化器 ->LLVM IR LLVM X86后端->X86
,但是随着时间的推移,Apple 为 OC 增加了很多特性,想要 GCC 给与实现,但是 GCC 却并没有支持,并且 GCC 本身代码耦合度较高,模块独立性比较差,并且《GCC运行环境豁免条款》限制了LLVM-GCC
这个时候LLVM就出现了,是Chris Lattner在硕士和博士时提出和形成的编译器,不过其是采用GCC的前端进行语义分析,然后LLVM做优化和生成目标代码,可以叫做LLVM-GCC。
甚至最近,《GCC 运行环境豁免条款 (英文版)》从根本上限制了 LLVM-GCC 的开发。...同时,LLVM 的链接优化被直接加入到 Apple 的代码链接器上,而 LLVM-GCC 也被同步到使用 GCC 4 代码。 ...Apple 的 Mac OS X 以及 iOS 也成了 Clang 和 LLVM 的主要试验场——10.6 时代,很多需要高效运行的程序比如 OpenSSL 和 Hotspot 就由 LLVM-GCC...到了 Mac OS X 10.7,整个系统的的代码都由 Clang 或 LLVM-GCC 编译【注:http://llvm.org/Users.html 】。...LLVM 周边工具 由于受到 Clang 项目的威胁,GCC 也不得不软下来,让自己变得稍微模块化一些,推出插件的支持,而 LLVM 项目则顺水推舟,索性废掉了出道时就一直作为看家本领的 LLVM-GCC
GCC 的代码耦合度太高,不好独立,而且越是后期的版本,代码质量越差,但 Apple 想做的很多功能(比如更好的 IDE 支持)需要模块化的方式来调用 GCC,但 GCC 一直没有实现,从根本上限制了 LLVM-GCC
领取专属 10元无门槛券
手把手带您无忧上云