Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/SLSS-8GPQ97
Type: Dissertação de Mestrado
Title: Eliminação de testes de overflow para compiladores de trilhas
Authors: Marcos Rodrigo Sol Souza
First Advisor: Mariza Andrade da Silva Bigonha
First Co-advisor: Fernando Magno Quintao Pereira
First Referee: Vladimir Oliveira Di Iorio
Second Referee: Roberto da Silva Bigonha
Abstract: Compilação de trilhas é uma nova técnica utilizada por compiladores just-in-time (JIT) como o TraceMonkey, o compilador de JavaScript do navegador Mozilla Firefox. Diferente dos compiladores just-in-time tradicionais, um compilador de trilhas trabalha somente com uma parte do programa fonte, geralmente um caminho linear de instruções que são frequentemente executadas dentro de um laço. Como uma trilha é compilada durante a interpretação de um programa, o compilador just-in-time tem acesso aos valores manipulados em tempo de execução. A capacidade de acessar esses valores permite ao compilador a possibilidade de produzir código de máquina mais otimizado. Nesta dissertação é explorada a oportunidade de prover uma análise que remove testes de overflow desnecessários de programas JavaScript. Para mostrar que algumas operações não podem causar overflows é utilizada uma técnica denominada análise de largura de variáveis. A otimização proposta é linear em tamanho e espaço com o número de instruções presentes na trilha de entrada, e é mais efetiva que as análises de largura de variável tradicionais porque utiliza valores conhecidos em tempo de execução. A otimização proposta foi implementada no navegador Mozilla Firefox, e testada em mais de 1.000 programas JavaScript de diversas coleções, incluindo os 100 sítios mais visitados da Internet segundo o índice Alexa. Foram produzidos códigos binários para as arquiteturas x86 e ST40-300. Na média, a otimização proposta foi capaz de remover 91.82% dos testes de overflow nos programas presentes na coleção de programas de teste do TraceMonkey. A otimização proposta prove uma redução do tamanho do código binário de 8.83% na plataforma ST40 e de 6.63% na plataforma x86. A otimização aumenta o tempo de execução do compilador TraceMonkey em 2.53.
Abstract: Trace compilation is a new technique used by just-in-time (JIT) compilers such as TraceMonkey, the JavaScript engine in the Mozilla Firefox browser. Contrary to traditional JIT machines, a trace compiler works on only part of the source program, normally a linear path inside a heavily executed loop. Because the trace is compiled during the interpretation of the source program the JIT compiler has access to the values manipulated at runtime. This observation gives to the compiler the possibility of producing binary code specialized to these values. In this thesis we explore this opportunity to provide an analysis that removes unnecessary overflow tests from JavaScript programs. Our optimization uses range analysis to show that some operations cannot produce overflows. The analysis is linear in size and space on the number of instructions present in the input trace, and it is more effective than traditional range analyses, because we have access to values known only at execution time. We have implemented our analysis on top of Firefox's TraceMonkey, and have tested it on over 1000 scripts from several industrial strength benchmarks, including the scripts present in the top 100 most visited webpages in the Alexa index. We generate binaries to either x86 or the embedded microprocessor ST40-300. On the average, we eliminate 91.82% of the overflows in the programspresent in the TraceMonkey test suite. This optimization provides an average code size reduction of 8.83% on ST40 and 6.63% on x86. Our optimization increases TraceMonkey's runtime by 2.53%.
Subject: Computação
Compiladores (Programas de computador)
language: Inglês
Publisher: Universidade Federal de Minas Gerais
Publisher Initials: UFMG
Rights: Acesso Aberto
URI: http://hdl.handle.net/1843/SLSS-8GPQ97
Issue Date: 25-Jan-2011
Appears in Collections:Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
marcosrodrigosolsouza.pdf3.05 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.