LLVM
LLVMは言語から独立した命令セットと型システムを持つ。命令の多くは3番地コード形式に似ている。各命令はまた静的単一代入形でもあり、変数(型付きレジスタ)は一回代入されるとその後は変更されない。このため、変数間の依存関係の解析が単純化される。
型変換は、どういう形式であっても明示的に cast 命令を使って行われる。LLVMの持つ基本型はいくつかの固定長の整数型であり、派生型としてポインタ、配列(任意のデータ型を格納可能な配列)、ベクトル(整数、浮動小数、ポインタのみ格納可能な配列)、構造体、関数の5つがある。具体的な言語で構築される型は、LLVM上ではこれらの型を組み合わせて表現される。例えば、C++におけるクラスは、構造体と関数と関数へのポインタの配列を組み合わせて表現される。
Torch-MLIR は機械学習に使われる PyTorch 向けのコンパイラとなっている。元々はnpcompであり、NumPyのコンパイラであった。