Restrictification of function arguments
| Ano de defesa: | 2016 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | eng |
| Instituição de defesa: |
Universidade Federal de Minas Gerais
|
| Programa de Pós-Graduação: |
Não Informado pela instituição
|
| Departamento: |
Não Informado pela instituição
|
| País: |
Não Informado pela instituição
|
| Palavras-chave em Português: | |
| Link de acesso: | https://hdl.handle.net/1843/ESBF-ALLNHB |
Resumo: | Pointer aliasing still hinders compiler optimizations, despite years of research on pointer disambiguation. Several programming languages offer to coders mechanisms to distinguish memory references, such as the 'restrict' keyword in C. However, the use of such mechanisms is prone to human mistakes. This work presents a suite of automatic techniques that mitigate this problem: three different ways to disambiguate pointers passed as arguments of functions. These techniques combine static analyses to infer symbolic bounds of memory regions and code versioning. Functions whose pointers are distinct can be aggressively optimized whereas they wouldn't otherwise. An implementation of the restrictification methods in the LLVM compiler shows that we can vectorize up to 63% more operations than what could be accomplished using the highest optimization level of said compiler. When applying the optimization on OpenCV benchmarks, a widely used library, we have observed speedups as great as 40%. |
| id |
UFMG_d61b8fb8d1b624acd22d26ce0dbe466f |
|---|---|
| oai_identifier_str |
oai:repositorio.ufmg.br:1843/ESBF-ALLNHB |
| network_acronym_str |
UFMG |
| network_name_str |
Repositório Institucional da UFMG |
| repository_id_str |
|
| spelling |
Restrictification of function argumentsCompiladores (Computadores)ComputaçãoAnálise estáticaOtimização de código (Compiladores)Clonagem de funçõesCompiladoresAliasingOtimização de códigoAnálise estáticaPointer aliasing still hinders compiler optimizations, despite years of research on pointer disambiguation. Several programming languages offer to coders mechanisms to distinguish memory references, such as the 'restrict' keyword in C. However, the use of such mechanisms is prone to human mistakes. This work presents a suite of automatic techniques that mitigate this problem: three different ways to disambiguate pointers passed as arguments of functions. These techniques combine static analyses to infer symbolic bounds of memory regions and code versioning. Functions whose pointers are distinct can be aggressively optimized whereas they wouldn't otherwise. An implementation of the restrictification methods in the LLVM compiler shows that we can vectorize up to 63% more operations than what could be accomplished using the highest optimization level of said compiler. When applying the optimization on OpenCV benchmarks, a widely used library, we have observed speedups as great as 40%.Universidade Federal de Minas Gerais2019-08-11T17:08:27Z2025-09-09T01:02:05Z2019-08-11T17:08:27Z2016-08-26info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1843/ESBF-ALLNHBVictor Hugo Sperle Camposinfo:eu-repo/semantics/openAccessengreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMG2025-09-09T18:48:58Zoai:repositorio.ufmg.br:1843/ESBF-ALLNHBRepositório InstitucionalPUBhttps://repositorio.ufmg.br/oairepositorio@ufmg.bropendoar:2025-09-09T18:48:58Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false |
| dc.title.none.fl_str_mv |
Restrictification of function arguments |
| title |
Restrictification of function arguments |
| spellingShingle |
Restrictification of function arguments Victor Hugo Sperle Campos Compiladores (Computadores) Computação Análise estática Otimização de código (Compiladores) Clonagem de funções Compiladores Aliasing Otimização de código Análise estática |
| title_short |
Restrictification of function arguments |
| title_full |
Restrictification of function arguments |
| title_fullStr |
Restrictification of function arguments |
| title_full_unstemmed |
Restrictification of function arguments |
| title_sort |
Restrictification of function arguments |
| author |
Victor Hugo Sperle Campos |
| author_facet |
Victor Hugo Sperle Campos |
| author_role |
author |
| dc.contributor.author.fl_str_mv |
Victor Hugo Sperle Campos |
| dc.subject.por.fl_str_mv |
Compiladores (Computadores) Computação Análise estática Otimização de código (Compiladores) Clonagem de funções Compiladores Aliasing Otimização de código Análise estática |
| topic |
Compiladores (Computadores) Computação Análise estática Otimização de código (Compiladores) Clonagem de funções Compiladores Aliasing Otimização de código Análise estática |
| description |
Pointer aliasing still hinders compiler optimizations, despite years of research on pointer disambiguation. Several programming languages offer to coders mechanisms to distinguish memory references, such as the 'restrict' keyword in C. However, the use of such mechanisms is prone to human mistakes. This work presents a suite of automatic techniques that mitigate this problem: three different ways to disambiguate pointers passed as arguments of functions. These techniques combine static analyses to infer symbolic bounds of memory regions and code versioning. Functions whose pointers are distinct can be aggressively optimized whereas they wouldn't otherwise. An implementation of the restrictification methods in the LLVM compiler shows that we can vectorize up to 63% more operations than what could be accomplished using the highest optimization level of said compiler. When applying the optimization on OpenCV benchmarks, a widely used library, we have observed speedups as great as 40%. |
| publishDate |
2016 |
| dc.date.none.fl_str_mv |
2016-08-26 2019-08-11T17:08:27Z 2019-08-11T17:08:27Z 2025-09-09T01:02:05Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
https://hdl.handle.net/1843/ESBF-ALLNHB |
| url |
https://hdl.handle.net/1843/ESBF-ALLNHB |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Minas Gerais |
| publisher.none.fl_str_mv |
Universidade Federal de Minas Gerais |
| dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFMG instname:Universidade Federal de Minas Gerais (UFMG) instacron:UFMG |
| instname_str |
Universidade Federal de Minas Gerais (UFMG) |
| instacron_str |
UFMG |
| institution |
UFMG |
| reponame_str |
Repositório Institucional da UFMG |
| collection |
Repositório Institucional da UFMG |
| repository.name.fl_str_mv |
Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG) |
| repository.mail.fl_str_mv |
repositorio@ufmg.br |
| _version_ |
1856413917215981568 |