LLVM
概要
LLVM とは コンパイラ基盤 と呼べるものらしい。コンパイルの実装のために必要なモジュールや技術をまとめたライブラリのようなものという雰囲気を感じる。
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines. The name "LLVM" itself is not an acronym; it is the full name of the project.
http://www.llvm.org
コンパイラは通常フロントエンド、ミドルエンド、バックエンドに分けられ、各プロセスで様々な処理をしています。特にミドルエンド、バックエンドでは中間言語や各アーキテクチャに対するたくさんの最適化を施さなければなりません。この最適化を預けてフロントエンドだけを考えればコンパイラが作れるというものがLLVMです。
こわくないLLVM入門!
サブプロジェクトに Clang などがある。
参考
雑把の仮想マシン(JVM, .NET, BEAM, スクリプト言語, LLVM) | プログラマーズ雑記帳
https://medium.com/@JMangia/swift-c-llvm-compiler-optimization-842012568bb7