17

GCCのドキュメントはそれについて特に冗長ではありません。それが言うことは:

-高価な最適化:

     Perform a number of minor optimizations that are relatively expensive.

これらはどのような最適化ですか?例はありますか?

4

1 に答える 1

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

少数のファイルで1画面分の(35行)ヒットを生成します。より詳細な分析を投稿するのは他の誰かに任せます(誰かが実際に十分気にかけている場合)。

それらのいくつかは私の目を引いた。私はそれについて言及します(執筆時点で):

  • flag_expensive_optimizationsin (C ++サポート)の唯一の言及は、cp/コメントされたコードのセクションにあり、関連するコメントとともにフラグ/* Handle ordinary C++ destructors. */の設定に影響を与えるようです LOOKUP_NONVIRTUAL/* Optimize for space over speed here. */

  • プロセッサ固有のconfig/ディレクトリ(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ドキュメントのレベルに残すことに満足する必要があります。

于 2012-09-29T15:02:10.727 に答える