At the leaves of the abstract syntax trees, the tree_instr
nodes
(see section Instruction Nodes) hold SUIF instructions. Each instruction
performs a single operation, specified by its opcode. With just a few
exceptions, the opcodes are simple and straightforward, similar to the
instruction set of a typical RISC processor. The instructions include
arithmetic, data transfer, and control flow operations.
SUIF instructions may be used in two ways. Most high-level passes use expression trees, where the instructions are grouped together in trees that correspond to the expressions in the source programs. Back-end optimization passes have traditionally worked with flat lists of instructions, and SUIF supports that representation as well.
The files `instruction.h' and `instruction.cc' contain the code for the SUIF instruction classes.
in_rrr
class (most instructions).
in_bj
class.
in_ldc
class.
in_cal
class.
in_array
class.
in_mbr
class.
in_lab
class.
in_gen
class (non-standard).