In this chapter, we will cover the following recipes:
The life of an LLVM IR instruction
Visualizing the LLVM IR CFG using GraphViz
Describing the target using TableGen
Defining an instruction set
Adding a machine code descriptor
Implementing the MachineInstrBuilder class
Implementing the MachineBasicBlock class
Implementing the MachineFunction class
Writing an instruction selector
Legalizing SelectionDAG
Optimizing SelectionDAG
Selecting instructions from the DAG
Scheduling instructions in SelectionDAG