为什么在XCode中默认情况下循环展开?

时间:2017-01-25 14:44:44

标签: c++ xcode optimization clang loop-unrolling

默认情况下,Unroll Loops部分下的Apple LLVM 8.0 - Code Generation优化设置似乎在最新的XCode,8.2.1中关闭,即使对于Release配置也是如此。有什么好理由吗?我认为循环展开是最基本的优化之一。

1 个答案:

答案 0 :(得分:1)

似乎已禁用它以避免增加生成代码的大小。

Tuning for Performance and Responsiveness

  

表6-1编译器优化选项

     

<强>更快

     

编译器几乎执行所有支持的优化,不需要空时权衡。 编译器不使用此选项执行循环展开或函数内联。此选项会增加编译时间和生成代码的性能。

     

<强>最快

     

编译器执行所有优化以尝试提高生成代码的速度。当编译器执行积极的函数内联时,此选项可以增加生成代码的大小。   通常不建议使用此选项。