Reports」の日本語参考訳です。最適化レポートを理解して適切に対処することで、コンパイラーの最適化によりアプリケーションのパフォーマンスを改善できます。コンパイラーを使用することで簡単に行うことができます。現代の最適化コンパイラーは、アプリケーションのパフォーマンスを大幅に改善するためコード変換を行いますが、これは元のコードがどのように記述されているか、そしてコンパイラーに対しどの程度の情報が提供されているかに依存します。コンパイラーの最適化レポートは、プログラマーに対し適用された最適化を通知し、適用されなかった最適化の理由を示します。プログラマーはこのフィードバックを、コンパイラーの最適化を有効にし、アプリケーションのパフォーマンスをさらに高めるためのチューニングに利用することができます。価値のある多くの潜在的な情報を一連の異なるレポートで提供しましたが、メッセージが論理的に配置されておらず、時にインライン展開やコンパイラーが生成する複数バージョンのループは特に難解で、暗号のようであると言われていました。一部の情報は、プログラマーがアクションを取りにくかったり、すぐに役立てることはできませんでした。単一のレポートストリームは理解するのが難しく、他のツールからアクセスするのも困難であり、ビルド時間を短縮するため複数のプロセッサーを利用する並列ビルドには不向きでした。つに統合し、ユーザーが使いやすく、これまでの制限に対処するため全体的に再設計されました。この記事では、新しい最適化レポートの機能を紹介し、さらにコンパイラーが適用した最適化や適用できなかった最適化を理解して、さらにアプリケーションをチューニングする方法を説明します。示す新しい最適化レポートのレベルを制御するには、コマンドライン・オプションを使用します。コンパイラーで共通です。詳細レベルを指定します。レポートの出力先を指定します。表示できるフォーマットにします。指定された関数名、もしくはその文字列を含む関数のレポートを取得します。レポートを取得します。指定したフェーズの最適化レポートのみを取得します。オプションで有効にします。拡張子を持った個別のレポートが生成されます。変更することができます。アセンブリー・コードとオブジェクト・ファイルにループ最適化情報が埋め込まれます。これにより、アセンブリー・コードにおけるループ構造を理解するのが容易になり、他のソフトウェア・ツールがコンパイラーが提供する最適化情報を利用できるようになります。最適化レポートは、状況によって非常に大きくなります。オプションでソースの行範囲を特定し、必要とするレポートのみを取得できます。示すように階層的に表示されます。END」を生成します。入れ子構造を明確にするためインデントを使用しています。単一のソースのループからコンパイラーによって複数のループが生成されることがあり、この場合入れ子構造はソースコードとは異なることがあります。(分割)」されることもあります。つの内部ループに変換されています。1この階層表示は、コンパイラーの最適化が適用されたコード内の特定ループに直接関連付けられます。レジスター幅の倍数でアライメントされたメモリー位置から読み込みを行う際に最も効率が良くなります。ループとして最適化されます。「ピール」と「リマインダー」ループを最適化レポートで特定する方法を示します。新しい最適化レポートの目的は、コンパイラーが行った最適化を分かりやすくするだけではなく、遭遇した障害を理解し上手く対処できるように支援することです。