什么是GCC昂贵的优化?

qdi*_*dii 17 optimization gcc

GCC文档并不特别冗长.它的内容是:

-fexpensive的优化:

     Perform a number of minor optimizations that are relatively expensive.
Run Code Online (Sandbox Code Playgroud)

这些优化是哪种?任何例子?

tim*_*day 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
Run Code Online (Sandbox Code Playgroud)

(至少那个似乎与我发现的C/C++相关的子集;如果你对gcc支持的其他语言感兴趣,可以添加其他目录)

然后

grep -R flag_expensive_optimizations . | grep -v .svn
Run Code Online (Sandbox Code Playgroud)

在少量文件上产生一个屏幕值(35行)的点击量.我会留给其他人发布更详细的分析(如果有人真正关心的话).

他们中的几个引起了我的注意.我会提到(在撰写本文时):

  • 唯一提到flag_expensive_optimizationscp/(C++支撑)在代码注释的区间/* Handle ordinary C++ destructors. */和似乎影响一个的设置 LOOKUP_NONVIRTUAL标志,具有相关联的评论/* Optimize for space over speed here. */

  • 处理器特定的配置/目录(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文档的层面上留下我对此功能的了解.