一般に「コンパイラ」と呼ばれるソフトウェアは、あるプログラミング言語で書かれたソースコードをコンパイルし、ターゲットとなるプラットフォームで実行可能なバイナリに変換する機能を備えています。 例えばCコンパイラならC言語をコンパイルし、FortranコンパイラならFortran言語をコンパイルして、ターゲットとなるOSやハードウェア、例えばx86用のLinuxや、あるいはメインフレームなどで実行可能なバイナリを生成するといった具合です。 「LLVM」はこうしたコンパイラを開発するための、基盤となるソフトウェアを開発するオープンソースプロジェクトといえます。LLVMは基本的にはClangと呼ばれるフロントエンドを用いてC/C++/Objective-Cなどをソースコードとして読み込み、LLVM IRと呼ばれる実行環境に依存しない中間表現を生成。そこからLinuxやWindows、FreeBSD