默认情况下,Unroll Loops
部分下的Apple LLVM 8.0 - Code Generation
优化设置似乎在最新的XCode,8.2.1中关闭,即使对于Release
配置也是如此。有什么好理由吗?我认为循环展开是最基本的优化之一。
答案 0 :(得分:1)
似乎已禁用它以避免增加生成代码的大小。
Tuning for Performance and Responsiveness
表6-1编译器优化选项
<强>更快强>
编译器几乎执行所有支持的优化,不需要空时权衡。 编译器不使用此选项执行循环展开或函数内联。此选项会增加编译时间和生成代码的性能。
<强>最快强>
编译器执行所有优化以尝试提高生成代码的速度。当编译器执行积极的函数内联时,此选项可以增加生成代码的大小。 通常不建议使用此选项。