【发布时间】:2017-01-25 14:44:43
【问题描述】:
似乎Apple LLVM 8.0 - Code Generation 部分下的Unroll Loops 优化设置在最新的XCode 8.2.1 中默认关闭,即使对于Release 配置也是如此。有什么好的理由吗?我认为循环展开是最基本的优化之一。
【问题讨论】:
标签: c++ xcode optimization clang loop-unrolling
似乎Apple LLVM 8.0 - Code Generation 部分下的Unroll Loops 优化设置在最新的XCode 8.2.1 中默认关闭,即使对于Release 配置也是如此。有什么好的理由吗?我认为循环展开是最基本的优化之一。
【问题讨论】:
标签: c++ xcode optimization clang loop-unrolling
为了避免增加生成代码的大小,它似乎被禁用了。
Tuning for Performance and Responsiveness
表 6-1 编译器优化选项
更快
编译器执行几乎所有支持的优化,不需要时空权衡。 编译器不会使用此选项执行循环展开或函数内联。此选项会增加编译时间和生成代码的性能。
最快
编译器执行所有优化以尝试提高生成代码的速度。当编译器执行积极的函数内联时,此选项会增加生成代码的大小。 一般不推荐使用此选项。
【讨论】:
-O2),根据实际的 clang 标志,确实包括循环展开,请参阅 stackoverflow.com/questions/15548023/clang-optimization-levels/…