brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1009 B · 0bc5e74 Raw
29 lines · plain
1.. _porting:2 3Porting GlobalISel to A New Target4==================================5 6There are four major classes to implement by the target:7 8* :ref:`CallLowering <translator-call-lower>` --- lower calls, returns, and9  arguments according to the ABI.10* :ref:`RegisterBankInfo <api-registerbankinfo>` --- describe11  :ref:`gmir-regbank` coverage, cross-bank copy cost, and the mapping of12  operands onto banks for each instruction.13* :ref:`LegalizerInfo <api-legalizerinfo>` --- describe what is legal, and how14  to legalize what isn't.15* :ref:`InstructionSelector <api-instructionselector>` --- select generic MIR16  to target-specific MIR.17 18Additionally:19 20* ``TargetPassConfig`` --- create the passes constituting the pipeline,21  including additional passes not included in the :ref:`pipeline`.22 23Tutorials24=========25 26We'd recommend watching `this tutorial27<https://www.llvm.org/devmtg/2017-10/#tutorial2>`_ from the 2017 LLVM DevMeeting28which gave an overview of how to bring up a new backend in GlobalISel.29