GCC 文档对此并不特别详细。它说的是:
-昂贵的优化:
Perform a number of minor optimizations that are relatively expensive.
这些是哪种优化?有什么例子吗?
GCC 文档对此并不特别详细。它说的是:
-昂贵的优化:
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
在(C++ 支持)中唯一提到的cp/
是一段代码注释/* Handle ordinary C++
destructors. */
,似乎影响
LOOKUP_NONVIRTUAL
标志的设置,以及相关的注释/* Optimize for
space over speed here. */
在特定于处理器的 config/ 目录 (sparc, alpha, sh, i386) 中有一些命中。唯一的 i386TARGET_AVX
在不优化尺寸时适用并被评论/* When not optimize for size, enable vzeroupper optimization for TARGET_AVX with -fexpensive-optimizations and split 32-byte AVX unaligned load/store. */
看了一些其他的文章就说服了我,我应该满足于将我对这个特性的了解留在 gcc 文档的级别。