Low Level Virtual Machine (LLVM) とは、プログラムのさまざまなステージで最適化を可能にする、 コンパイラフレームワークである。
コンパイラを作るのに使うライブラリ・ツール群。
VMの名の通り中間言語にした後、LLVMのツールで実行(JIT)、またはネイティブへのバイナリへの変換ができる。
このときコンパイル時や実行時に様々な最適化を施してくれて、より実行効率の良いプログラムを作れるようにしてくれる。
LLVM自体はC++で実装されている。現在llvmをバックエンドに動くものとしてはllvm-gccやclangが有名だが、llvm-gccのサポートは無くなる予定。
VM の instruction set と、LLVM の中で使われている中間表現は、同一である。
LLVM の命令のデータ型は、基本型の int float double と、基本型を拡張した、関数、ポインタ、構造体、配列がある。
VM は無限の仮想レジスタを持ち、これらの仮想レジスタは、SSA形式であり一度定義されたら二度と変更されない。
実行時にはは、中間表現を interpret しつつ、場合によっては JIT を行なっている。
この時にプロファイルも取っておく。
プログラムの実行を行なっていない時に、プロファイルに基づいて中間表現を最適化している。
LLVM が優れている点として、次5つがある。
掲示板
急上昇ワード改
最終更新:2025/12/15(月) 03:00
最終更新:2025/12/15(月) 03:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。