4

gcc が実際にコードを最適化したコードを見ることに興味があります。私にできる方法はありますか?

私は他のいくつかの同様のクエストを経験しました.いくつかのことを試しました.

  1. -Wa,ahl=filename.lst :- このオプションは非常に優れています。コードと対応するマシン コードを参照できますが、O3 オプションを有効にするとうまくいきません。
  2. 最適化されたツリーのダンプ:- gcc が大量のデバッグ情報を提供してくれると確信しています。しかし、私はそれを解読する方法を知りません。誰かが利用可能な情報を指摘できれば幸いです。

gcc が最適化したコードのどの部分を見つけるために、他に良い方法はありますか?

ありがとう、マドゥール

4

2 に答える 2

9

最初に次を使用して、コードを2回コンパイルできます。

$ gcc -O0 -S -o yourfile_o0.s

それから:

$ gcc -O3 -S -o yourfile_o3.s

次にdiff、結果の 2 つのアセンブリ ファイルを取得できます。

$ diff -u yourfile_o0.s yourfile_o3.s
$ vim -d yourfile_o0.s yourfile_o3.s
$ emacs --eval '(ediff "yourfile_o0.s" "yourfile_o3.s")'
于 2010-10-28T11:11:44.687 に答える
0

アセンバー コードを確認するか、コンパイル済みのアプリケーションを逆コンパイルします。C デコンパイラーは醜い C コードを生成しますが、どのコードが生成されたかを分析するには、それで十分です。

于 2010-10-28T11:10:18.000 に答える