Skip to main content
QUICK REVIEW

[論文レビュー] Machine Code Optimization - Improving Executable Object Code

Clinton F. Goss|arXiv (Cornell University)|Aug 22, 2013
Parallel Computing and Optimization Techniques参考文献 28被引用数 6
ひとこと要約

本論文は、リンキング後の段階で適用可能な機械語最適化技術を提示しており、以前のコンパイル段階で特定の最適化を適用できない場合の実行可能オブジェクトコードの改善に焦点を当てている。このアプローチは、再ターゲティング可能でリンキング後の変換を用い、パフォーマンスの向上とサイズの削減を図るものであり、ニューヨーク大学・コーラン研究所に実装されたデプロイされた実装を通じて、生産ソフトウェareにおける測定可能な向上が得られた。

ABSTRACT

This dissertation explores classes of compiler optimization techniques that are applicable late in the compilation process, after all executable code for a program has been linked. I concentrate on techniques which, for various reasons, cannot be applied earlier in the compilation process. In addition to a theoretical treatment of this class of optimization techniques, this dissertation reports on an implementation of these techniques in a production environment. I describe the details of the implementation which allows these techniques to be re-targeted easily and report on improvements gained when optimizing production software.

研究の動機と目的

  • リンキング段階以降に適用可能な機械語最適化技術を開発・実装すること。これは、従来のコンパイラ最適化がもう適用できない状況を想定している。
  • シンボルの解決、再配置、コード生成の制約によって、従来のコンパilation段階ではアクセスできない最適化機会に対処すること。
  • 異なる命令セットアーキテクチャに容易に適応可能な再ターゲティング可能なフレームワークを設計すること。
  • 実世界の生産ソフトウェアにおけるこれらの最適化の有効性を評価し、パフォーマンスおよびサイズの向上を測定すること。
  • 生産環境での実装を示し、測定可能な利点を提示すること。

提案手法

  • 本論文は、元のソースコードに依存せず、リンケージ後の機械語上で動作する再ターゲティング可能な最適化フレームワークを導入している。
  • 命令スケジューリング、重複除去、命令選択などの一連のコード変換技術を、最終的な実行可能オブジェクトコードに対して直接適用している。
  • 変換の正当性を保証するために、機械命令および意味論の形式的表現を用いている。
  • リンキング後にのみ入手可能な情報(シンボルアドレス、再配置エントリなど)を活用して最適化を実施している。
  • モジュラーでアーキテクチャ固有のバックエンドを備えることで、複数のターゲットアーキテクチャをサポートしている。
  • 既存のツールチェインと統合され、最終バイナリに対してポストプロセッサとして動作する。

実験結果

リサーチクエスチョン

  • RQ1リンキング後に適用可能な最適化の種類は何か? これは、従来のコンパイラ最適化がもう適用できない状況を想定している。
  • RQ2異なる命令セットアーキテクチャに跨る機械語最適化を再ターゲティング可能にするにはどうすればよいか?
  • RQ3実世界の生産ソフトウェアに対してリンキング後の最適化を適用することで、どのようなパフォーマンスおよびサイズの向上が達成できるか?
  • RQ4ソースレベルの文脈が欠如する低レベルの機械語を変換する際、正しさをどのように保証できるか?
  • RQ5生産環境にこのような最適化をデプロイする際の実際の課題と利点は何か?

主な発見

  • 提示された最適化フレームワークは、生産ソフトウェアにおいて実行可能コードのサイズおよびパフォーマンスを成功裏に改善し、実世界のワークロードで測定可能な向上を示した。
  • リンキング後の最適化により、命令レベルの変換および重複除去を通じて、コードサイズおよび実行時間の顕著な削減が達成された。
  • 再ターゲティング可能な設計のおかげで、コア最適化エンジンの変更を最小限に抑えながら、複数のアーキテクチャに容易に適応可能であった。
  • 低レベルのコード操作を行っても正しさの問題が観察されなかったため、実装は生産環境でも堅牢であることが確認された。
  • 技術報告(NYU コーラン、1986年)および改訂版(2013年)からの実験的結果は、多様なソフトウェアベンチマークにおいて一貫した向上を確認している。
  • 標準的なコンパイル段階ではアクセスできないが、最終実行可能コードに価値ある最適化機会が存在することが、本研究で確認された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。