Restrictification of function arguments

Detalhes bibliográficos
Ano de defesa: 2016
Autor(a) principal: Victor Hugo Sperle Campos
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
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