CompiladoresVisão geral
Geração de Código
A geração de código traduz a representação intermediária em instruções da máquina-alvo: mnemônicos da ISA com operandos nos k registradores gerais ou na memória.
Seleção, alocação e escalonamento deste tópico — e a otimização e a ligação nos tópicos seguintes — partem dessa sequência e do contrato da ISA.
As páginas se agrupam em quatro blocos. O primeiro descreve o alvo: k gerais, endereço efetivo e os mnemônicos da ISA.
O segundo recobre a árvore da RI com padrões: cada subárvore vira uma instrução, ou um deslocamento no lugar de multiplicar por 2.
O terceiro percorre o código de trás para frente, marca quem ainda será lido e colore o grafo de interferência. χ é o mínimo de registradores; se χ > k, um valor vivo vai para a memória.
O quarto permuta instruções independentes para preencher o pipeline, respeitando RAW, WAR e WAW, e ocupa o delay slot depois de um desvio.
LOAD, STORE e o endereço a(R0) estão em Máquina Alvo. Recobrir (a+b)×2, ou casar a multiplicação por 2 com SHL, está em Seleção de Instruções.
O recobrimento de menor custo está em Seleção de Instruções. Permutar a sequência já emitida para reduzir bolhas está em Escalonamento de Instruções.
O k visível e a regra de que a ULA não lê memória direto estão em Máquina Alvo. Quem está vivo no trecho, o grafo de interferência e χ estão em Alocação de Registradores.
Dois valores vivos no mesmo ponto pedem registradores distintos em Alocação de Registradores. RAW, WAR ou WAW entre I₁, I₂ e I₃, e a ordem que os respeita, estão em Escalonamento de Instruções.
Páginas deste tópico
Máquina Alvo
ProBaixa incidência no POSCOMP10 min de leitura · 24ª mais cobrada em Compiladores
Registradores, modos de endereçamento e ISA brinquedo; convenção só recall.
Seleção de Instruções
ProMédia incidência no POSCOMP8 min de leitura · 20ª mais cobrada em Compiladores
Árvore IR → instrução; padrões; reescrita *2→shift; peephole.
Alocação de Registradores
ProMédia incidência no POSCOMP13 min de leitura · 14ª mais cobrada em Compiladores
Live-in/live-out; grafo de interferência; χ = mínimo de registradores.
Escalonamento de Instruções
ProMédia incidência no POSCOMP11 min de leitura · 19ª mais cobrada em Compiladores
RAW/WAR/WAW; reordenar independentes; delay slot.