2.1.87. -Onum

此选项指定要在编译源文件时使用的优化级别。

语法


-Onum

其中 num 是下列值之一:

0

最低优化。 关闭大多数优化。 它提供可能的最佳调试视图和最低优化级别。

1

受限优化。 删除未使用的内联函数和未使用的静态函数 关闭严重影响调试视图的优化。 如果与 --debug 一起使用,则此选项将提供具有良好代码密度且令人满意的调试视图。

2

高度优化。 如果与 --debug 一起使用,则调试视图可能不会令人满意,因为对象代码到源代码的映射有时会不清晰。

这是缺省设置。

3

最大优化。 -O3 执行与 -O2 相同的优化,但与 -O2 相比,前者生成的代码中空间与时间优化之间的平衡更侧重于空间或时间。 也就是说:

  • -O3 -Otime 旨在比 -O2 -Otime 更快速地生成代码,但这是以增加映像大小作为代价的

  • -O3 -Ospace 旨在比 -O2 -Ospace 生成更少的代码,但可能会降低性能。

此外,-O3 还会执行更积极的额外优化,如:

  • 高级标量优化,其中包括 -O3-Otime 的循环展开。 这以很小的代码大小开销就会获得显著的性能,但编译时间会较长。

  • -O3 -Otime 的更积极的内联和自动内联。

  • 缺省情况下的多文件编译。

Note

如果使用 --fpmode 选项选择适当的数值模型,则可能会影响浮点代码的性能。

Note

不要依赖这些优化的实现细节,因为在将来的版本中它们可能会发生变化。

缺省选项

如果未指定 -Onum,则编译器将采用 -O2

另请参阅

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential