El documento habla sobre los registros en la generación de código. Explica que los registros son elementos valiosos y escasos para el procesador debido a que solo puede procesar datos almacenados en ellos. Además, las instrucciones con operandos en registros son más rápidas. El uso de registros implica asignar variables a registros durante la generación de código y luego escoger el registro específico. Esto es un problema NP-complejo debido a limitaciones de hardware y software.
2. REGISTROS
o Concepto
Actividad de una variable: se expresa en términos de
proposiciones o bloques básicos.
Se dice que una variable está “activa” desde la proposición en la
que se le asigna un valor hasta la última proposición en la que es
utilizada antes de que se le vuelva a asignar un valor.
3. Los registros son los elementos más valiosos y escasos en la
fase de generación de código, puesto que el CPU solamente
puede procesar datos que se encuentren en registros.
Además, las instrucciones que implican operandos en
registros son más cortas y rápidas que las de operandos en
memoria.
Existen registros acumuladores, puntero de instrucción, de
pila, etc.
4. El uso de registros se divide generalmente en dos
subproblemas :
1) Durante la asignación de registros, se selecciona el
conjunto de variables y/o constantes que residirán en
los registros en un momento del programa.
2) Durante una fase posterior a la anterior, se escoje el
registro específico en el que residirá una variable.
5. Es muy difícil encontrar una asignación óptima de registros a
variables.
Matemáticamente, el problema es NP-completo. Este problema
se complica todavía más debido a restricciones de hardware,
de sistema operativo o ambos. Puede ser que el conjunto de
instrucciones de la máquina no sea ortogonal.
Algunas máquinas además requieren para ciertas operaciones
el uso de un conjunto de registros para algunos operandos y
resultados.
6. Asignación de registros:
Intentar conservar los valores más
utilizados durante un lazo en registros.
Reservar un número fijo de registros
para este tipo de valores.