Um Algoritmo Inter-Procedural para Análise de Largura de Variáveis

Douglas do Couto Teixeira, Fernando Magno Quintão Pereira

Resumo


Durante este projeto foi desenvolvido um algoritmo inter-procedural que é capaz de processar programas com milhões de instruções assembly. Ao contrário de muitos trabalhos anteriores, nosso algoritmo trata comparações entre variáveis sem recorrer a algoritmos custosos. Nós obtemos sensibilidade ao fluxo de execução usando como representação intermediária o formato e-SSA (Extended Static Single Assignment) descrito por Bodik. Nós também mostramos que processar os componentes fortemente conexos do grafo em ordem topológica não só reduz o tempo de execução do programa, mas também aumenta sua precisão. Nós implementamos nossa técnica em LLVM, um compilador industrial, e fomos capazes de processar cerca de quatro milhões de instruções assembly em poucos segundos.


Palavras-chave


Análise Estática;Compiladores

Texto completo:

PDF


A REIC mudou de endereço! Para acessar as edições publicadas e/ou submeter seu artigo, acesse https://sol.sbc.org.br/journals/index.php/reic.