GCC documentation对此并不特别冗长。它的意思是:
-fexpensive的优化:
Perform a number of minor optimizations that are relatively expensive.
这些是哪种优化?任何一个例子?
答案 0 :(得分:12)
我不够编译gee ^ H ^ H ^ H专家能够做到这一点,但也许有人可以在它上面建立......
gcc的相关位可以很容易地获得(如果你不尝试检查整个事情):
svn co --depth=immediates svn://gcc.gnu.org/svn/gcc/trunk/gcc gcc
cd gcc
svn --set-depth infinity update config c cp
(至少那个似乎与我发现的C / C ++相关的子集;如果你对gcc支持的其他语言感兴趣,可以添加其他目录)
然后
grep -R flag_expensive_optimizations . | grep -v .svn
在少量文件上产生一个屏幕值(35行)的点击量。我会留给其他人发布更详细的分析(如果有人真正关心的话)。
其中一些引起了我的注意。我会提到(在撰写本文时):
在flag_expensive_optimizations
中唯一提及cp/
(C ++
支持)位于注释/* Handle ordinary C++
destructors. */
的代码段中,似乎影响了a的设置
LOOKUP_NONVIRTUAL
标记,以及相关评论/* Optimize for
space over speed here. */
处理器特定的配置/目录(sparc,alpha,sh,i386)中有一些点击。当没有针对大小进行优化时,唯一适用于TARGET_AVX
的i386适用/* When not optimize for size, enable vzeroupper optimization for TARGET_AVX with -fexpensive-optimizations and split 32-byte AVX unaligned load/store. */
只要看一下其他一些点击就可以说服我,我应该满足于在gcc文档的层面上留下我对这个功能的了解。