メインメニューを開く

Low Level Virtual Machine(読み:ろーれべるばーちゃるましーん、略語:LLVM)とは、様々なプログラミング言語の、様々なコンパイラに、共通の「最適化」を提供する目的で開発されているオープンソースなコンパイラ基盤である。

目次

概要編集

LLVMでは様々なプログラミング言語に「共通の最適化」を提供するため、clangなどのLLVM対応コンパイラからLLVMが指定する中間コード形式で出力してもらい、LLVMはその中間コードに対してプラットフォーム非依存の最適化やプラットフォーム依存の最適化などの「段階的な最適化」を行い、最終的にネイティブコードを出力する。

LLVMはRISCと非常によく似た命令セットを持つ極めて実在のCPUネイティブコードに近い仮想マシンおよび中間コードのひとつとなっており、Java VM(とJavaバイトコード)や共通言語基盤(と共通中間言語)などと比べると抽象度は極めて低く、あくまで最適化に徹している。このためガベージコレクションセキュリティサンドボックスなどの余計な機構は持たないという特徴がある。

建前と本音編集

LLVMでは「様々なプログラミング言語」という建前はあるが、その実態はGPL撲滅を訴えるBSD信者たちにより、gccを駆逐すべく開発が進められている「clang」と呼ばれるC言語コンパイラが主軸となっており、clangの意見・要望がまず第一優先される。この2つのプロジェクトは事実上の同一プロジェクトであると考えてほぼ間違いない。

関連項目編集

外部リンク編集