[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:78010] Re: OPTION="-02"


ゆうき@甲府 です。

以下、man gcc より抜粋しました。
>>>>出典:man-pages-ja-0.5-0.20000815.1 / RHL7J
>>>>(/usr/share/man/ja/man1/gcc.1.gz)

======================(ここから)=============================
GCC(1)                      GNU Tools                      GCC(1)

名称
       gcc, g++ - GNU プロジェクト C コンパイラ および C++ コンパ
       イラ (v2.4)
:
(:中略)
:
最適化オプション
       これらのオプションは様々な種類の最適化処理を制御します。

       -O

       -O1    最適化を行います。最適化コンパイルは幾分長めの処 理
              時 間と、大きな関数に対する非常に多くのメモリを必要
              とします。 `-O' が指定されなかった場合は、コンパ イ
              ラ の目標はコンパイルのコストを低減することや、目的
              の結果を得るためのデバッグを可能とすることに置か れ
              ま す。それぞれの文は独立しています。つまり、ブレー
              クポイントでプログラムを停止させることによって、 任
              意 の変数に新しい値を代入したり、プログラムカウンタ
              を他の文へと変更することを可能とし、そのソースコ ー
              ド にプログラマが望む正しい結果を得ることを可能にし
              ます。 `-O' を指定しなかった場合は、register と宣言
              し た変数のみがレジスタへと割り当てられます。コンパ
              イルの結果として得られるコードは、PCC を `-O' な し
              で 使 用 した場合と比較して若干良くないものとなりま
              す。 `-O' が指定されると、コンパイラはコードのサ イ
              ズ と実行時間を減少させることを試みます。 `-O' を指
              定 す る こ と に よっ て、   `-fthread-jumps'   と
              `-fdelayed-branch' のフラグが指定されます。いくつか
              のマシンではさらにその他のフラグが指定されます。

       -O2    さらに最適化を行います。ほとんどのサポートされて い
              る 最適化手段のうち、空間と速度のトレードオフを含ま
              ないものは全て使用されます。 -O, と比較して、このオ
              プ ションはコンパイル時間と生成コードの性能の双方を
              増加させ ま す。  -O2  は、  -funroll-loops,  -fun-
              roll-all-loops , そして -fomit-frame-pointer 以外の
              全ての -fflag オプションを有効化し、さらに強力な 最
              適化を可能にします。

       -O0    最 適化を行いません。複数の -O オプションを指定した
              場合は、レベル番号の有無に関わらず、最後に指定し た
              ものが有効になります。
(:中略)
日本語訳
       細川 達己(hosokawa _at_ mt.cs.keio.ac.jp)
======================(ここまで)=============================

=>・要するに、コードの実行速度/サイズと、デバッグ効率のどちらを
   優先させるか。ってことなんでしょうかね。
  ・その昔、コンパイラの最適化ってあまりあてにならなくて苦労した
   方々も多いはず。・・・・最近はそんなことないでしょうけど。
  ・そういえば、本番用なのに "-g" オプションを強要させるってのは
   やっぱりこの部分のロジックに依存していたためなんだろうか。
   (>>>>例えば、gcc 本体なんか。とか。)


tyuuki _at_ yukia.co.jp

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」