LLVM単語

4件
エルエルブイエム
1.1千文字の記事
  • 2
  • 0pt
掲示板へ

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 ではリンク後に最適化ができるので、プログラム全体を見た最適化が可である。

関連リンク

【スポンサーリンク】

  • 2
  • 0pt
記事編集 編集履歴を閲覧

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

熱情の律動 (単) 記事と一緒に動画もおすすめ!
提供: かふぇお~れ
もっと見る

この記事の掲示板に最近描かれたお絵カキコ

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

LLVM

1 ななしのよっしん
2013/04/09(火) 22:01:31 ID: D/IfsYnHo6
👍
高評価
0
👎
低評価
0
2 ななしのよっしん
2014/06/14(土) 14:25:44 ID: Yc/o6EZMhW
LLVM
LLVM
タイトル:LLVM
Twitterで紹介する

3 ななしのよっしん
2014/06/14(土) 16:07:42 ID: Xh80osLizA
またドットトレーサーかよ
いい加減にしてほしいわ
👍
高評価
0
👎
低評価
1
4 ななしのよっしん
2016/07/11(月) 17:29:56 ID: aYtcylFNQT
LLVMがもっとも優れている点は

GNU であること
👍
高評価
0
👎
低評価
0
5 削除しました
削除しました ID: V4JQnIc+sB
削除しました