Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouEster Borrego Alterado mais de 10 anos atrás
1
VI – Optimização de código Blocos básicos Optimização de ciclos Bibliografia aconselhada: –Apontamentos LFA 1999/2000 - 1Jorge Morais
2
Blocos básicos Início dum bloco básico –A primeira instrução do programa –Instrução com um rótulo (label) –Instruções a seguir a um ramo A partir deste bloco consideramos todas as instruções até ao início dum novo bloco ou até ao fim do programa LFA 1999/2000 - 2Jorge Morais
3
Exemplo i = 17 s = 0 ------------------- l1: ifz i goto l2 ------------------- s = s + i i = i – 1 goto l1 ------------------- l2:... ------------------- LFA 1999/2000 - 3Jorge Morais
4
Exemplo LFA 1999/2000 - 4Jorge Morais i = 17 s = 0 l1: ifz i goto l2 s = s + 1 i = i – 1 goto l1 l2:...
5
Optimizações Eliminação de sub-expressões comuns Propagação de código Eliminação de código morto Transformações aritméticas –Cálculo de constantes –Transformações algébricas –Redução de força Empacotamento de temporários LFA 1999/2000 - 5Jorge Morais
6
Exemplo b = 4 – 2 t1 = b / 2 t2 = a * t1 t3 = t2 * b t4 = t3 + c t5 = t2 * b t6 = t5 + c d = t4 * t6 LFA 1999/2000 - 6Jorge Morais
7
Optimização de ciclos Identificação de ciclos –Dominadores –Back edges –Cabeçalho do ciclo –Pré-cabeçalho Elevação de código Variáveis de indução LFA 1999/2000 - 7Jorge Morais
8
Exemplo i = 42 l1: ifz i goto l2 s = 0 i = i – 1 j = i * 4 goto l1 l2:... LFA 1999/2000 - 8Jorge Morais i = 42 l1: ifz i goto l2 s = 0 i = i – 1 j = i * 4 goto l1 l2:...
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.