IF688 - Teoria e Implementação de Linguagens Computacionais
Geração de Código - Alocação de Registradores
Objetivo
O objetivo desta aula é revisar os conceitos de register e address descriptors, analisando as diretrizes para seu uso, bem como apresentar como o processo de alocação de registradores pode se beneficiar da análise de liveness para evitar spilling.
Questões para Discussão
- Em que consistem register e address descriptors e de que forma estes podem auxiliar na geração de código?
- Quais são as diretrizes para escolha de registradores neste contexto?
- Como os descriptors são alterados na medida que o código é gerado?
- Como usar liveness para auxiliar no processo de alocação de registradores em inner loops?
- Como estimar, de forma aproximada, o ganho em manter certas variáveis fixas em registradores durante a execução de loops?
Material usado em sala de aula
Links Relacionados