LLVM 単語


ニコニコ動画でLLVMの動画を見に行く

エルエルブイエム

1.1千文字の記事

Low Level Virtual Machine (LLVM) とは、プログラムのさまざまなステージ最適化を可にする、 コンパイラフレームワークである。

概要

コンパイラを作るのに使うライブラリツール群。
VMの名の通り中間言語にした後、LLVMのツールで実行(JIT)、またはネイティブへのバイナリへの変換ができる。
このときコンパイル時や実行時に様々な最適化を施してくれて、より実行効率の良いプログラムを作れるようにしてくれる。
LLVM自体はC++実装されている。現在llvmをバックエンドに動くものとしてはllvm-gccやclangが有名だが、llvm-gccサポートくなる予定。

特徴

VMinstruction set と、LLVM の中で使われている中間表現は、同一である。
LLVM の命データは、基本int float double と、基本を拡した、関数ポインタ構造体配列がある。
VM無限の仮想レジスタを持ち、これらの仮想レジスタは、SSA形式であり一度定義されたら二度と変更されない。
実行時にはは、中間表現を interpret しつつ、場合によっては JIT を行なっている。
この時にプロファイルも取っておく。
プログラムの実行を行なっていない時に、プロファイルに基づいて中間表現を最適化している。

LLVMの優れている点

LLVM が優れている点として、次5つがある。

persistent program information
大域的な最適化をするために、常に高レベルな中間表現を持っている。
offline code generation
時間のかかる最適化ができるように、実行時以外でも最適化ができるようになっている。
user-based profiling and optimization
ユーザの実行したプロファイルに基づいて、最適化が可である。
transparent runtime model
特定の実行モデル依存しない。
uniform, whole-program compilation
プログラム全体を見て最適化を行なえる。 LLVM ではリンク後に最適化ができるので、プログラム全体を見た最適化が可である。

関連リンク

この記事を編集する

掲示板

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
ラーメン二郎[単語]

提供: レイ・アヤサキ

もっと見る

急上昇ワード改

最終更新:2025/12/15(月) 03:00

ほめられた記事

最終更新:2025/12/15(月) 03:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP