Idempotent backward slices: a gsa-based approach to code-size reduction
| dc.creator | Rafael Alvarenga de Azevedo | |
| dc.date.accessioned | 2026-01-22T18:03:22Z | |
| dc.date.issued | 2025-11-28 | |
| dc.description.abstract | Compiler optimizations are critical for enhancing the efficiency of programs, particularly for software deployed on resource-constrained systems where code size is a primary concern. This thesis introduces a novel technique for code-size reduction by identifying and outlining recurrent program slices. Our approach leverages the Gated Single Assignment (GSA) form, an intermediate representation that makes both data and control dependencies explicit, to enable the precise extraction of self-contained, executable program logic, which we term Idempotent Backward Slices. The proposed algorithm is implemented as a complete, functional, and open-source, out-of-tree pass for the LLVM compiler infrastructure. To evaluate its effectiveness, we conducted a rigorous empirical study, compiling 2007 programs from the LLVM Test Suite. The results demonstrates that our technique achieves significant code-size reductions in specific, targeted cases where other optimizers fail. We conclude that GSA-based slicing is a viable but specialized tool, best suited for domains where code footprint is paramount and code bases contain the recurrent computational patterns our slicer is designed to identify. | |
| dc.description.sponsorship | FAPEMIG - Fundação de Amparo à Pesquisa do Estado de Minas Gerais | |
| dc.identifier.uri | https://hdl.handle.net/1843/1472 | |
| dc.language | eng | |
| dc.publisher | Universidade Federal de Minas Gerais | |
| dc.rights | Acesso aberto | |
| dc.rights | Attribution-NonCommercial-NoDerivs 3.0 Brazil | en |
| dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/br/ | |
| dc.subject | Computação – Teses | |
| dc.subject | Compiladores (Programas de computador) - Teses | |
| dc.subject | Software de sistemas – Teses | |
| dc.subject | Otimização de códigos (compiladores) – Teses | |
| dc.subject.other | Compiler Optimizations | |
| dc.subject.other | Program Slices | |
| dc.subject.other | Gated Single Assignment Form | |
| dc.title | Idempotent backward slices: a gsa-based approach to code-size reduction | |
| dc.title.alternative | Fatias reversas idempotentes: uma abordagem baseada em GSA para redução do tamanho do código | |
| dc.type | Dissertação de mestrado | |
| local.contributor.advisor-co1 | Rodrigo Caetano de Oliveira Rocha | |
| local.contributor.advisor-co1Lattes | http://lattes.cnpq.br/3024280434335126 | |
| local.contributor.advisor1 | Fernando Magno Quintão Pereira | |
| local.contributor.advisor1Lattes | http://lattes.cnpq.br/4608001746330875 | |
| local.contributor.referee1 | Sandro Rigo | |
| local.contributor.referee1 | Yann Herklotz | |
| local.creator.Lattes | http://lattes.cnpq.br/7041307314384502 | |
| local.description.resumo | Otimizações de compiladores são cruciais para melhorar a eficiência de programas, especialmente para software implementado em sistemas com recursos limitados, onde o tamanho do código é uma preocupação primordial. Esta dissertação introduz uma nova técnica para a redução do tamanho de código, identificando e extraindo Program Slices recorrentes. A nova abordagem utiliza a representação intermediária Gated Single Assignment (GSA) form, que torna explícitas tanto as dependências de dados quanto as de controle, para permitir a extração precisa de lógicas de programa autocontidas e executáveis, as quais denominamos Idempotent Backward Slices. O algoritmo proposto é implementado como um pass completo, funcional e de código aberto para a infraestrutura de compiladores LLVM. Para avaliar sua eficácia, conduziu-se um rigoroso estudo empírico, compilando 2007 programas da coleção de testes de LLVM. Os resultados demonstram que a nova técnica alcança reduções significativas no tamanho do código em casos específicos em que outras técnicas publicadas previamente falham. Concluímos que o slicing baseado em GSA é uma ferramenta viável, porém especializada, mais adequada para domínios onde o tamanho do código é fundamental e as bases de código contêm os padrões computacionais recorrentes que nosso algoritmo foi projetado para identificar. | |
| local.identifier.orcid | https://orcid.org/0009-0009-3295-3467 | |
| local.publisher.country | Brasil | |
| local.publisher.department | ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO | |
| local.publisher.initials | UFMG | |
| local.publisher.program | Programa de Pós-Graduação em Ciência da Computação | |
| local.subject.cnpq | CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::LINGUAGENS DE PROGRAMACAO |