我想找出关键的优化方案。首先,用
gcc source.c -o test -O3 -Q -v-Q -v列出了已启用的标志(-f进攻性-循环-优化-falign标签-显式同步-展开表等)。如果直接将这些标志提供给gcc而不是-O3,则结果程序的性能是如果禁用了优化。
gcc的文件说
并不是所有的优化都直接由一个标志控制。
是因为这件事还是我错过了其他的机会?
发布于 2018-09-23 11:33:35
不,很可能你什么都没错过。这一点在这篇文章中得到了解释。
How to get gcc -O1 optimization without specifying -O1
有些内部标志无法由用户控制,但由全局优化标志(如-O1、-O2、-O3、-Os或-Ofast )激活。
您可以尝试通过首先指定-O1而不是添加您的标志来“欺骗”。但是,仍然不能保证您将获得与第一名的-O3相同的效果。
很短的版本-只是不要这么做。使用全局开关并根据需要打开/关闭单个标志。
https://stackoverflow.com/questions/52461214
复制相似问题