Clang / LLVM について

ClangとLLVMについて学習したため、そのまとめとしてここに整理する。


コンパイラのフロントエンドとバックエンドについて

  • コンパイラはフロントエンドとバックエンドに分割し設計されているケースがあり、それぞれ役割がある
    • フロントエンド
    • ソースコードを解析し、中間表現・中間言語と呼ばれるデータに変換する
    • バックエンド
    • フロントエンドによって生成された中間表現から、環境に合わせた機械語バイトコードを生成する
    • その他、最適化なども行う

Clang


LLVM