bar_1

contents_map

2014年6月5日木曜日

LLVM コンパイラ・インフラストラクチャ・プロジェクト 日本語訳

原文は、”The LLVM Compiler Infrastructure Project” http://llvm.org/Features.html です。


LLVM コンパイラ・インフラストラクチャ・プロジェクト The LLVM Compiler Infrastructure Project

LLVM 機能仕様 LLVM Features

C と C++ のための LLVM コンパイラ・システム は次のことを含みます:
  • C, C++, Objective-C, Fortran, など GCC4.2 パーサーに基づいた諸フロントエンド。それらは GCC がサポートするのと同程度に、ANSI 標準 C と C++ 言語をサポートします。さらに、多くの GCC 拡張がサポートされます。
  • LLVM 命令セットの安定した実装; これは、オンラインとオフライン両方のコード表現提供し、アセンプリ (ASCII) とバイトコード (バイナリ) のリーダーとライター、そしてベリファイアとともに提供します。
  • 強力なパス・マネージメント・システム; 依存性に基づいた、諸パス (分析、変換、およびコード生成の諸パスを含む) の自動シーケンス、また効率的にそれらをパイプライニングします。
  • 広範囲のグローバルなスカラー最適化。
  • リンク時のプロシージャ間最適化のフレームワーク; 分析と変換のひとつの豊富なセットを持ち、洗練されたプログラム全体のポインター分析、コール・グラフ構築、そしてプロフィール=ガイドされた最適化のサポートを含みます。
  • 容易にリターゲット可能なコードジェネレーター; X86, X86-64, PowerPC,PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, SystemZ と XCore を現在サポートしています。
  • ジャスト・イン・タイム (JIT) コード生成システム; 現在 X86, X86-64, PowerPC と PowerPC-64 をサポートしています。
  • DWARF デバッグ情報の生成のサポート。
  • 上記以外の、ターゲット上でのテストやネイティブのコードの生成に役立つ C バックエンド。
  • gprof に似たプロファイリング・システム。
  • たくさんのベンチマーク・コードとアプリケーションを持つテスト・フレームワーク。
  • LLVM コンポーネントたちのラピッド・デベロップメントを単純化する API とデバッギングツール群。

LLVM の強味 Strengths of the LLVM System

  1. LLVM は、厳密に定義されたセマンティクスを持つシンプルな低水準言語を使用します。
  2. C と C++ のフロントエンドを含みます。Java, Scheme, またその他の言語のフロントエンドについても開発中です。
  3. スカラー、プロシージャ間、プロフィール・ドリブン、そしていくつかの単純なループ最適化といった、アグレッシブなオプティマイザを含みます。
  4. リンク時、インストール時、実行時、そしてオフライン最適化といった、ライフ期間のコンパイル・モデルをサポートします。
  5. LLVM は精密なガベージコレクションをフルサポートします。
  6. LLVM のコードジェネレータは、比較的リターゲットが容易で、強力なターゲット記述言語に使えます。
  7. LLVM には、豊富なドキュメントがあり、数多の諸プロジェクトでホストされています。
  8. 多くのサードパーティのユーザたちは、LLVM はカンタンに動作し開発できると断言しています。例えば、(今はないですが) スタッカー・フロントエンド Stacker front-end は、LLVM について何も知らないレベルで始めた人によって 4 日で書かれました。さらに、LLVM には開発を容易にするためのツール群があります。
  9. LLVM はアクティブな開発のもとにあり、定期的に拡張、向上、改良がなされています。開発頻度を見るためには左欄のバー (訳注. 原文のあるサイトでは、左欄にメニューがある) にあるステータスの更新を見てください。
  10. LLVM は、OSI に認証された「3条BSD」ライセンスの下で、フリーに使えます。
  11. LLVM は、現在いくつかの企業で使われており、それらの企業はたくさんの拡張や新しい機能に貢献しています。

LLVM オーディエンス LLVM Audience

LLVM はたくさんの異なる種類のプロジェクトで使うことができます。以下のような分野であなたは LLVM に興味をもつかもしれません:
  • コンパイラ研究者は、コンパイル時、リンク時 (プロシージャ間)、また C や C++ プログラムのための実行時の変換に興味があるでしょう。
  • 仮想マシンの研究者/開発者は、ポータブルで、言語独立な命令セットとコンパイラ・フレームワークに興味があるでしょう。
  • アーキテクチャ研究者は、コンパイラ/ハードウェアのテクニックに興味があるでしょう。
  • セキュリティ研究者は、静的解析または実験 instrumentation に興味があるでしょう。
  • インストラクターや開発者は、コンパイラ変換の手早いプロトタイピングのシステムとして興味があるでしょう。
  • あなたのコードによりよいパフォーマンスが欲しいエンドユーザーに興味が持たれるでしょう。

もっと知りたい? Want to Know More?

あなたはオンラインでドキュメントをブラウズできますし、Web ブラウザで LLVM を試したり、ソースコードをダウンロードできます。

0 件のコメント:

コメントを投稿

何かありましたら、どうぞ: