如何查看 gcc 优化选项?
Posted
技术标签:
【中文标题】如何查看 gcc 优化选项?【英文标题】:How to check out gcc optimization options? 【发布时间】:2018-09-22 21:56:27 【问题描述】:我正在尝试找出关键的优化选项。首先,用
编译一个程序gcc source.c -o test -O3 -Q -v
-Q -v 列出启用的标志(-faggressive-loop-optimizations -falign-labels -fasynchronous-unwind-tables 等)。那么如果直接将这些标志提供给 gcc 而不是 -O3,则生成的程序的性能是如果禁用了优化。
gcc 文档指出
并非所有优化都直接由标志控制
这可能是问题还是我错过了什么?
【问题讨论】:
【参考方案1】:不,很可能您没有错过任何内容。这在这篇文章中有解释
How to get gcc -O1 optimization without specifying -O1
有些内部标志无法由用户控制,但可以由全局优化标志(如 -O1、-O2、-O3、-Os 或 -Ofast)激活。
您可以尝试通过首先指定 -O1 然后添加您的标志来“作弊”。但是仍然不能保证您会得到与首先执行 -O3 相同的效果。
短版 - 只是不要这样做。使用全局开关并根据需要打开/关闭单个标志。
【讨论】:
谢谢,这很有帮助。我在 Linux 和 Windows 上对矩阵乘法进行基准测试,并意识到在某些情况下 Linux 快了大约 5 倍。这在某种程度上与数组结构配置有关,也许是一些幸运的缓存对齐,但这是一个很好的事实。以上是关于如何查看 gcc 优化选项?的主要内容,如果未能解决你的问题,请参考以下文章