LLVM
昔はLow-Level Virtual Machineの略
今は何の略でもないらしい
コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤
コンパイラとツールチェーン技術の集まり
Rust、Swiftが採用例?
code:mermaid
%%{init:{'theme':'neutral'}}%%
flowchart LR
subgraph three-phase3フェーズ direction LR
end
フロントエンド
いろいろな言語のフロントエンドがある
コンパイラバックエンドは中間表現(IR)をネイティブコード(機械語)に変換する フロントエンドの例
共通オプティマイザ(Common Optimizer)
バックエンド
共通オプティマイザから吐かれた中間表現をネイティブコードに変換する
LLVMで何か作る
確認用
Q. LLVM
Q. コンパイラバックエンド
Q. フロントエンド
Q. バックエンド
関連
参考