Porting GlobalISel to A New Target¶
There are four major classes to implement by the target:
CallLowering — lower calls, returns, and arguments according to the ABI.
LegalizerInfo — describe what is legal, and how to legalize what isn’t.
InstructionSelector — select generic MIR to target-specific MIR.
TargetPassConfig— create the passes constituting the pipeline, including additional passes not included in the Core Pipeline.
We’d recommend watching this tutorial from the 2017 LLVM DevMeeting which gave an overview of how to bring up a new backend in GlobalISel.