Go to the previous, next section.

Pseudo Registers

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.