optimization - GCC最昂贵的优化是什么?

标签 optimization gcc

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/

相关文章:

mysql - "SELECT COUNT(*)"很慢,即使有 where 子句

c - C 中的堆栈内存重用 gcc 优化?

c - 如何在 C 中编写 pragma

c - 像 gcc 这样的 C 编译器是否足够智能,可以进行位移位?

linux - ELF Relocation - 这些符号从何而来?

algorithm - 寻找有关理解特定组合优化问题的建议

c - 提高 SQLite 的每秒插入性能

optimization - 优化 ifort 中的 SIGSEGV

javascript - 在 JavaScript 中创建集合(相同类型的唯一元素)时,通常使用什么作为键的值?

c - 与 '%rbx' 后缀一起使用的寄存器 0x​​104567910 不正确