GlobalISelを新しいターゲットに移植¶
ターゲットによって実装される4つの主要クラスがあります。
CallLowering — ABIに従ってcall、return、引数をローワーします。
RegisterBankInfo — Register Bankの範囲、バンク間コピーコスト、および各命令のオペランドに対するバンクのマッピングを記述します。
LegalizerInfo — 合法な内容と、合法でない内容を合法する方法を記述します。
InstructionSelector — 一般的なMIRからターゲット固有のMIRを選択します。
追加
TargetPassConfig
— Core Pipelineに含まれていない追加のパスを含め、パイプラインを構成するパスを作成します。
チュートリアル¶
このチュートリアルは、GlobalISelで新しいバックエンドを起動する方法の概要を提供する、2017LLVM DevMeetingのものです。