analisis de diagrama de flujo

Páginas: 31 (7695 palabras) Publicado: 27 de mayo de 2013
Compiladores
Análisis de Flujo de Datos

Resumen






Overview de análisis de control de flujo
Expresiones disponibles
Algoritmo para calcular expresiones disponibles
Bit sets
Formulando un problema de análisis de flujo de
datos
• Cadenas DU
• Forma SSA

2

Representando el control de flujo
del progama
• Forma un grafo

• Un grafo muy grande
• Crear BloquesBásicos
• Un Grafo de Control de Flujo (CFG) conecta
los Bloques Básicos
3

Grafo de Control de Flujo (CFG)
• Control-Flow Graph G =
• Nodos(N): Bloques Básicos
• Edges(E): (x,y)  E ssi la primera
instrucción en el bloque básico y sigue a la
última instrucción en el bloque básico x

4

Identificando loops de estructuras
recursivas
• Identificar aristas de retorno
• Encontrar losnodos y aristas en el
loop dado por la arista de retorno
• Aparte de la arista de retorno
– Aristas entrantes sólo al bloque
básico con la cabeza de la arista
de retorno
– Una arista saliente del bloque
básico a la cola de la arista de
retorno

• ¿Cómo encontramos las aristas de
retorno?
5

bb1

bb2
bb3

bb4
bb5
bb6

Computando Dominators
• Algoritmo
– Hacer que elconjunto de dominators del nodo de
entrada sólo contenga ese nodo
– Hacer que el conjunto de dominators del resto de
los nodos contenga todos los nodos
– Visitar los nodos en cualquier orden
– Hacer que el conjunto de dominators del nodo
actual sea la intersección del conjunto de
dominators del nodo predecesor y el nodo actual
– Repetir hasta que no hayan cambios

6

Computando Dominators• Algoritmo
– Hacer que el conjunto de
dominators del nodo de entrada
sólo contenga ese nodo
– Hacer que el conjunto de
dominators del resto de los nodos
contenga todos los nodos
– Visitar los nodos en cualquier
orden
– Hacer que el conjunto de
dominators del nodo actual sea la
intersección del conjunto de
dominators del nodo predecesor
y el nodo actual
– Repetir hasta que no hayancambios

7

{bb1} bb1

bb2
bb3

bb4
bb5
bb6

Computando Dominators
• Algoritmo
– Hacer que el conjunto de
dominators del nodo de entrada
sólo contenga ese nodo
– Hacer que el conjunto de
dominators del resto de los nodos
contenga todos los nodos
– Visitar los nodos en cualquier
orden
– Hacer que el conjunto de
dominators del nodo actual sea la
intersección del conjuntode
dominators del nodo predecesor
y el nodo actual
– Repetir hasta que no hayan
cambios

8

{bb1} bb1

bb1
bb2
bb3
bb4
bb5
bb6

bb1
bb2
bb3
bb4
bb5
bb6

bb2

bb3
bb1
bb2
bb3
bb4
bb5
bb6
bb1
bb2
bb3
bb4
bb5
bb6

bb4
bb5
bb6

bb1
bb2
bb3
bb4
bb5
bb6

Computando Dominators
• Algoritmo
– Hacer que el conjunto de
dominators del nodo de entradasólo contenga ese nodo
– Hacer que el conjunto de
dominators del resto de los nodos
contenga todos los nodos
– Visitar los nodos en cualquier
orden
– Hacer que el conjunto de
dominators del nodo actual sea la
intersección del conjunto de
dominators del nodo predecesor
y el nodo actual
– Repetir hasta que no hayan
cambios

9

{bb1} bb1

bb1
bb2
bb3
bb4
bb5
bb6

bb1
bb2
bb3bb4
bb5
bb6

bb2

bb3
bb1
bb2
bb3
bb4
bb5
bb6
bb1
bb2
bb3
bb4
bb5
bb6

bb4
bb5
bb6

bb1
bb2
bb3
bb4
bb5
bb6

Computando Dominators
• Algoritmo
– Hacer que el conjunto de
dominators del nodo de entrada
sólo contenga ese nodo
– Hacer que el conjunto de
dominators del resto de los nodos
contenga todos los nodos
– Visitar los nodos en cualquier
orden
–Hacer que el conjunto de
dominators del nodo actual sea la
intersección del conjunto de
dominators del nodo predecesor
y el nodo actual
– Repetir hasta que no hayan
cambios

10

{bb1} bb1

bb1
bb2
bb3
bb4
bb5
bb6

bb1
bb2
bb3
bb4
bb5
bb6

bb2

bb3
bb1
bb2
bb3
bb4
bb5
bb6
bb1
bb2
bb3
bb4
bb5
bb6

bb4
bb5
bb6

bb1
bb2
bb3
bb4
bb5
bb6

Computando...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Diagrama de flujo
  • Diagrama de flujo
  • Diagrama De Flujo
  • Diagramas de flujo
  • Diagramas de flujo
  • Diagramas de flujo
  • Diagrama de flujo
  • Diagramas De Flujo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS