Technology」だったかもしれない。Machine)について知ったという人も少なからずいたようだ。Lattner氏はLLVMのチーフアーキテクトであり、同技術を語るには適切な人物といえる。モダンテクニックで開発されたマルチ言語コンパイラインフラLLVMはモダンなテクニックで開発されたコンパイラインフラストラクチャだ。プログラミング言語に依存しないモダンなオプティマイザとコードジェネレータを持ち、複数のプログラミング言語とアーキテクチャをサポートし、GCC互換フロントエンドllvm-gccを持っているという特徴がある。再利用可能なオプティマイザをさまざまなポイントで実行して最適化を行う。静的ビルドも動的ビルドもその組み合わせも可能だ。Licenseで開発されているという点だ。Cコンパイラは古いコード生成技術に基づいており、JITやクロスファイルオプティマイザといったモダン技術を採用していないため、ほかのアプリケーションで再利用しにくく、さらにリリースごとに遅くなっているという状況にある。LLVMはモダンなテクニックを活用することでこうした状況を改善することに目的がおかれている。従来どおり静的にコンパイルすることもできるし、JITで動作させることにも対応している。FreeBSDのメインコンパイラはGCCだが...FreeBSDではメインのコンパイラにGCCを採用している。C/C++コンパイラのメインストリームにあり、複数のアーキテクチャに対応している。今のところGCCをメインコンパイラとして採用するのはリーズナブルな選択肢だ。*BSDではコンパイラがGPLであることに抵抗を感じる向きもあり、GCCがGPLv3に移行した場合の影響を懸念する声もある。Licenseや他ライセンスのC/C++コンパイラの模索も常に続けられている。Collection(devel/llvm)にも追加されている。野心的な目標を掲げていることが同プロジェクトページからよくわかるが、GCCが存在する中でそういったコンパイラの開発が可能なのか半信半疑であったり、そもそもGCC以外の候補をそれほど気にしていなかったという状況だったと言えるだろう。サイトのドキュメントを読むのと、実際に担当者から話を聞くのとでは、印象がだいぶ違ってくる。発表を聞く開発者はLLVMに大きな関心を持ったようだった。4.2のリプレースを目指したllvm-gccフロントエンドを用意しているところにある。簡単に言ってしまえば、gccをllvm-gccに変更するだけで入れ替えができる。入れ替えるだけで最適化時間が30%ほど短縮されるほか、生成されるコードが5%から10%ほど優れたものになるという。4.2のリプレースを目的としたフロントエンドllvm-gccを持っているからといって、完璧にすべての互換性を実現しているわけではない。それにFreeBSDがLLVMへの移行に取り組んだとしても、その対応はすぐに終わるというものではないだろう。Licenseであり、コンパイル性能も生成されるコードの質も良いということになれば、開発者が興味を惹かれないわけがない。CollectionのビルドにLLVMを採用すればビルド時間を短縮できる可能性がある。OpenOffice.orgやKDE、Gnomeなど大規模アプリケーションが増える中、ビルド時間が短いうえに上質なコードを生成するコンパイラの存在は魅力的だ。committerにとってもLLVMは魅力的である。CフロントエンドとしてClangを持っている。GCCフロントエンドは遅いうえにメモリを大量に消費し、さらに最近のIDEが要求する機能に対応しきれないため、それらを解決したフロントエンドが必要という発想によるものだ。Clangはコンパイル時間がGCCよりも高速なうえにモダンなIDEや商用コードチェッカにも対応している。C以外の言語への発展も可能だ。多くのプログラミング言語ですでに実装された最適化技術が採用できるということになれば、LLVMの発展性の高さは魅力的なものだ。その間、GCCの開発も停滞しているわけではない。binutilsの一部として新しいELFリンカ機能が登場するなど改善も続けられている。LLVMは魅力的なコンパイルインフラとしての認識を広めつつあるようだ。これが日本の技術だ製品情報[ERP]日本の会計・人事を変える。1/16]転職ノウハウあなたの仕事適性診断シゴト性格・弱点が20の質問でサクッと分かる!「仕事辞めたい......」その理由は?71%の人が仕事を辞めたいと思った経験あり。あなたの年収をデータに基づき予報します。提供:転職サイトはマイナビ転職ページトップ。