LLVM,GCC 4.2和Apple LLVM编译器的区别3.1

LLVM GCC 4.2和Apple LLVM编译器3.1之间的主要区别是什么?

我相当新的编译器,所以任何帮助表示赞赏。 另外我特别感兴趣的是两个编译器如何影响游戏性能。

差别是技术和速度的问题。

当苹果公司开始从海湾合作委员会的编译器和工具链开始转型的时候,CLANG仍然是年轻而又怪异的,所以LLVM被build立为GCC的后端,以便最终更换。 于是,代码进入并由GCC编译成一些中间格式,但被发送到LLVM以提供最终的机器代码和打包。

最终,LLVM,特别是CLANG已经足够成熟,可以完全取代GCC,这为编译和机器码输出的质量提供了惊人的速度提升(尽pipe许多人认为GCC仍然以牺牲速度为代价生成更好的质量代码) 。

但是为了解决您对游戏性能的担忧:虽然CLANG可以提供“更好的”编译体验,但性能并不是编译器的工作。 虽然优化和简化是编译过程的一部分,但是人们仍然编写laggy游戏或者产生无限循环的事实堆积如山,表明性能是您的工作。 编译器只能做这么多,其余的由你自己决定。 编译器的types或供应商也不会造成或破坏您的游戏或影响帧率或可用性。 您应该阅读关于ARM架构的较低级别的优化。 关于NEON和仪器的一些文章会比学习“优化编译器”更有帮助。

另一个区别:Clang支持大多数C ++ 11 。 GCC 4.2-Apple不支持C ++ 11。