2 research outputs found

    Exploration of Compiler Optimization Sequences Using a Hybrid Approach

    Get PDF
    Finding a program-specific compiler optimization sequence is a challenge, due to the large number of optimizations provided by optimizing compilers. As a result, researchers have proposed design-space exploration schemes. This paper also presents a design-space exploration scheme, which aims to search for a compiler optimization sequence. Our hybrid approach relies on sequences previously generated for a set of training programs, with the purpose of finding optimizations and their order of application. In the first step, a clustering algorithm chooses optimizations, and in the second step, a metaheuristic algorithm discovers the sequence, in which the compiler will apply each optimization. We evaluate our approach using the LLVM compiler, and an I7 processor, respectively. The results show that we can find optimization sequences that result in target codes that, when executed on the I7 processor, outperform the standard optimization level O3, by an average improvement of 8.01 % and 6.07 %, on Polybench and cBench benchmark suites, respectively. In addition, our approach outperforms the method proposed by Purini and Jain, Best10, by an average improvement of 24.22 % and 38.81 %, considering the two benchmarks suites

    Seleção de Transformações Baseada em Estatística

    No full text
    Entre diversas transformações providas por um compilador é um desafio, até mesmo para o mais experiente programador, saber quais gerarão o melhor código alvo para determinado código fonte. Neste contexto, o desenvolvimento de um seletor automatizado de boas transformações é um desafio nos dias atuais.Tendo em vista a problemática da seleção automática de transformações, o objetivo deste artigo é descrever uma abordagem estatística para selecionar boas transformações para um determinado código fonte.O uso da abordagem estatística apresentada neste trabalho, apesar de simples, é capaz de obter bons resultados. Em um conjunto com 10 programas, o speedup médio alcançado, em relação à abordagem mais agressiva da LLVM foi de 1,0514 indicando um ganho de 5,14. No piorcaso a abordagem proposta obteve um speedup igual a 1 e no melhor caso de 1,19, indicandoum ganho de 0% e 19%, respectivamente
    corecore