本文へスキップ

LLVMとは?

えるえるぶいえむ

LLVMはコンパイラ基盤として広く使われるオープンソースのツールチェーンで、多言語・多アーキテクチャのコード生成を担います。

LLVMはコンパイラやツールチェーンを構築するためのオープンソースインフラトラクチャプロジェクトです。もともとは大学の研究プロジェクトとして始まりましたが、現在はApple・Google・Microsoftなど多くの企業が開発に参加する大規模なオープンソースプロジェクトになっています。

LLVMの中心にあるのはLLVM IR(Intermediate Representation)と呼ばれる中間表現です。フロントエンド(言語のパーサー・意味解析)がLLVM IRを出力し、LLVMのバックエンドがそのIRをx86・ARM・WebAssemblyなど様々なアーキテクチャのマシンコードに変換します。この設計により、新しいプログラミング言語を開発する際にフロントエンドだけを実装すれば多様なCPUアーキテクチャ向けのコード生成が可能になります。

代表的なコンポーネントとして、C/C++/Objective-CのフロントエンドであるClang、Rust言語のバックエンド、JuliaやSwiftのコンパイラなどがLLVMを活用しています。またLLVM JIT機能を使えば実行時コンパイルも実現でき、スクリプト言語の高速化にも応用されます。

最適化パスが豊富で、インライン展開・ループ変換・デッドコード除去などをモジュール式に適用できるため、言語処理系研究の基盤としても活用されています。

使い方・例文

RustコンパイラはLLVMをバックエンドとして使用しており、rustcがLLVM IRを生成してLLVMがネイティブバイナリへ変換します。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語