Use este identificador para citar o ir al link de este elemento: http://hdl.handle.net/1843/ESBF-9KKQFY
Registro completo de metadatos
Campo DCValorIdioma
dc.contributor.advisor1Fernando Magno Quintao Pereirapt_BR
dc.contributor.referee1Edson Borinpt_BR
dc.contributor.referee2Mariza Andrade da Silva Bigonhapt_BR
dc.contributor.referee3Roberto da Silva Bigonhapt_BR
dc.creatorMatheus Silva Vilelapt_BR
dc.date.accessioned2019-08-14T18:36:21Z-
dc.date.available2019-08-14T18:36:21Z-
dc.date.issued2014-02-21pt_BR
dc.identifier.urihttp://hdl.handle.net/1843/ESBF-9KKQFY-
dc.description.abstractCompilers rely on two main techniques to implement optimizations that depend on the calling context of functions: inlining and cloning. Historically, function inlining has seen more widespread use, as it tends to be more e ective in practice. Yet, function cloning provides bene ts that inline leaves behind. In particular, cloning gives the program developer a way to ght performance bugs, because it generates reusable code. Furthermore, it deals with recursion more naturally. Finally, it might lead to less code expansion, the inlining's nemesis.In this work, we revisit function cloning under the light of these bene ts. We discuss some independent code specialization techniques based on function cloning, which, although simple, nd wide applicability, even in highly optimized benchmarks, such as SPEC CPU 2006. We claim that our optimizations are easy to implement and deploy. We use Wu and Larus's well-known static pro ling heuristic to measure the pro tability of a clone. This metric gives us a concrete way to point out to program developers potential performance bugs, and gives us a metric to decide whether we keep a clone. By implementing our ideas in LLVM, we have been able to achieve signi cant speed up on the SPEC benchmarks on top of the -O2 optimization level..pt_BR
dc.description.resumoCompiladores fazem uso de duas técnicas principais para implementar otimizações dependentes do contexto de chamadas de funções:integração e clonagem. Historica- mente, a integração de funções tem tido um uso mais amplo, já que, na prática, tende a ser mais efetiva. Apesar disso, a clonagem de funções provê benefícios não presentes na integração. Em particular, a clonagem dá ao desenvolvedor uma maneira de mitigar bugs de desempenho, já que sua aplicação gera código reusável. Além disso, ela lida com recursão de uma forma mais natural. Finalmente, a clonagem pode levar a uma menor expansão de código.Neste trabalho, revisamos a clonagem de funções sob a luz desses benefícios. Discutimos algumas técnicas de especialização de código independentes baseadas em clonagem que, apesar de simples, são amplamente aplicáveis, mesmo em benchmarks altamente otimizados, como o SPEC CPU 2006. Nossas otimizações são de fácil im- plementação e aplicação. Utilizamos a conhecida heurística de pro ling estático de Wu e Larus para medir o ganho de desempenho de um clone. Essa métrica nos dá uma maneira concreta de indicar, aos desenvolvedores de código, bugs de desempenho potenciais, além de nos fornecer uma métrica para decidirmos se devemos manter ou não um clone. Ao implementarmos nossas ideias no compilador LLVM, fomos capazes de obter ganhos de desempenho signi cantes nos benchmarks do SPEC, mesmo que aplicados sobre o nível de otimização -O2.pt_BR
dc.languageInglêspt_BR
dc.publisherUniversidade Federal de Minas Geraispt_BR
dc.publisher.initialsUFMGpt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectClonagempt_BR
dc.subjectLLVMpt_BR
dc.subjectOtimizações sensíveis ao contextopt_BR
dc.subject.otherCompiladores (Computadores)pt_BR
dc.subject.otherComputaçãopt_BR
dc.subject.otherArquitetura de computadorpt_BR
dc.subject.otherClonagem de códigopt_BR
dc.titleOtimizações de código sensíveis a contexto baseadas em clonagem de funçõespt_BR
dc.typeDissertação de Mestradopt_BR
Aparece en las colecciones:Dissertações de Mestrado

archivos asociados a este elemento:
archivo Descripción TamañoFormato 
matheus_silva_vilela.pdf6.11 MBAdobe PDFVisualizar/Abrir


Los elementos en el repositorio están protegidos por copyright, con todos los derechos reservados, salvo cuando es indicado lo contrario.