GCC documentation并不是特别冗长。它说的是:
-fexpensive-optimizations:
Perform a number of minor optimizations that are relatively expensive.
这些是哪种优化?有什么例子吗?
最佳答案
我还没有足够的编译器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. */
的一段代码中,并且似乎会影响LOOKUP_NONVIRTUAL
标志,以及相关的注释/* Optimize for
space over speed here. */
特定于处理器的config /目录(sparc,alpha,sh,i386)中有一些匹配项。未针对大小进行优化时,唯一的i386适用于
TARGET_AVX
并被注释为/* When not optimize for size, enable vzeroupper optimization for TARGET_AVX with -fexpensive-optimizations and split 32-byte AVX unaligned load/store. */
扫一眼其他命中说服我,我应该满足于将我对该功能的了解留在gcc文档级别。
关于optimization - GCC最昂贵的优化是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12645669/