Go to the previous, next section.
Pseudo registers can only contain scalar variables that cannot be
aliased. This means that global variables, local variables that have
their addresses taken, and aggregates (e.g. structures and unions)
cannot be stored in pseudo registers, and thus they must be accessed
with separate load and store instructions. Because of the guarantee
that pseudo registers are not aliased, they are ideal targets for
optimization. Most basic optimizations cannot handle variables that are
potentially aliased, so they ignore any variables that are not in pseudo
registers. Only cpy
(copy) instructions are allowed to assign to
pseudo registers. This makes it easier to do value numbering and common
subexpression elimination.
Another Simple-SUIF convention is that the pseudo registers with the lowest register numbers are the formal parameters of the procedure. For this reason, do not be surprised to find references to pseudo registers that have not yet been defined within the procedure.
Go to the previous, next section.