LLVM GCC 4.2和Apple LLVM编译器3.1之间的主要区别是什么?
我对编译器来说相当新鲜,所以任何帮助都不胜感激.另外我特别感兴趣的是两个编译器如何影响游戏性能.
解决方法
区别是技术和速度的问题.
当Apple开始从GCC的编译器和工具链过渡时,CLANG仍然很年轻,越来越多,所以LLVM被建立为海湾合作委员会的后端,以促进其最终的更换.所以,代码进入并由GCC编译成一些中间形式,但是被发送到LLVM以提供最终的机器代码和封装.
最终,LLVM,特别是CLANG成熟到足以取代GCC,这提供了惊人的速度提升了编译和机器代码输出质量的一个突破(尽管许多人认为GCC仍然以牺牲速度生产更好的质量代码) .
但是要解决您对游戏性能的关注:CLANG可能会提供“更好”的编译体验,而不是编译器的性能.虽然优化和简化是编译过程的一部分,但人们仍然写入滞后游戏或产生浪费在堆栈中的无限循环的事实表明,性能是您的工作.编译器只能做很多,其余的取决于你.编译器的类型或供应商也不会造成或破坏您的游戏或影响帧速率或可用性.您应该阅读有关ARM体系结构的低级优化.关于NEON和instruments的几篇文章将比学习“优化编译器”更好.