Quando é útil dividir arestas críticas?

7

Alguns compiladores têm funções utilitárias que dividem arestas críticas no gráfico de fluxo de controle. Suponho que isso não seja feito como uma otimização em si, mas para simplificar outras análises e transformações. Em que casos a divisão de arestas críticas seria útil?

zr.
fonte

Respostas:

5

Uma fácil pesquisa no google é exibida em Muchnick, Advanced Compiler Design & Implementation , Seção 13.3 Eliminação de redundância parcial , pp 407-408:

Um ponto chave no algoritmo é que ele pode ser muito mais eficaz se as arestas críticas no fluxograma tiverem sido divididas antes da análise do fluxo.

Portanto, a noção é útil para aumentar a eficiência de certas análises de fluxo na eliminação de redudância, que visa encontrar partes do código com subexpressões comuns e elevá-las em um único cálculo, facilitado na ausência de arestas críticas.

cody
fonte
obrigado pela resposta. Você pode ser mais específico sobre como o algoritmo de análise de fluxo é simplificado como resultado da divisão?
zr.