Skip to content
Latchkey

O Que É um Control Flow Graph?

Um control flow graph, ou CFG, modela uma função como um grafo dirigido cujos nós são basic blocks e cujas arestas representam possíveis transferências de controle entre eles. Desvios, loops e fall-through tornam-se arestas que capturam cada rota que a execução pode seguir. Compiladores analisam esse grafo para conduzir otimizações e detectar propriedades como código inalcançável.

Por que isso importa

O control flow graph é a estrutura sobre a qual a maioria das otimizações de dataflow opera, da eliminação de código morto à análise de loops. Ver o código como um grafo de caminhos é o que permite a um compilador raciocinar sobre todas as execuções possíveis.

Guias relacionados