Gcc の-fdump-tree-optimized
オプションは、C コードの最適化されたバージョンを C ファイルとしてダンプします。intel の icc コンパイラを使用して同じことを行う方法はありますか?
としてコンパイルした行列乗算コードがありますicc -O3 -ipo mult.c
。コンパイラが最適化をどのように実行したかを確認したいと考えています。何も機能しない場合は、プログラムのアセンブリ コードを生成します。
Gcc の-fdump-tree-optimized
オプションは、C コードの最適化されたバージョンを C ファイルとしてダンプします。intel の icc コンパイラを使用して同じことを行う方法はありますか?
としてコンパイルした行列乗算コードがありますicc -O3 -ipo mult.c
。コンパイラが最適化をどのように実行したかを確認したいと考えています。何も機能しない場合は、プログラムのアセンブリ コードを生成します。
技術的に-fdump-tree-optimized
は、C 表現をダンプするのではなく、GCC 内部で使用される Gimple コードのテキスト部分表現をダンプしないでください (Gimple は、ほとんどの GCC ターゲットに依存しない最適化パスが動作する命令のミドルエンド内部表現です)。
しかしicc
、これはプロプライエタリ コンパイラ (ブラック ボックス) であるため、そのプロバイダーの観点からは、(Intel にとって) どのようにicc
動作するかを示すことは興味深いことではありません。
GCC はフリー ソフトウェアであるため、内部表現を表示する機能を備えています。プロプライエタリなコンパイラは、自分がどのように動作するかを示したくありません。
これがクラスの場合は、おそらく LLVM も試すことができます。(しかし、内部表現を内部にダンプする方法がわかりません)。
さらに重要なことは、これがクラスである場合、GCC 4.6 を使用してプラグインまたは GCC MELT拡張機能を開発し、最適化を調査および実験することを生徒に提案することです。MELT は、GCC を拡張する高レベルのドメイン固有言語であり、そのようなタスクを容易にする多くの機能を提供します。