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
少数のファイルで1画面分の(35行)ヒットを生成します。より詳細な分析を投稿するのは他の誰かに任せます(誰かが実際に十分気にかけている場合)。
それらのいくつかは私の目を引いた。私はそれについて言及します(執筆時点で):
flag_expensive_optimizations
in (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ドキュメントのレベルに残すことに満足する必要があります。