Algoritmos para escalonamento de instruções e alocação de registradores na infraestrutura LLVM

Detalhes bibliográficos
Autor(a) principal: Silva, Lucas da Costa
Data de Publicação: 2013
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFMS
Texto Completo: https://repositorio.ufms.br/handle/123456789/2209
Resumo: O objetivo deste trabalho _e apresentar uma proposta integrada para Escalonamento de Instruções e Alocação de Registradores baseada em Isomorfismo de Subgrafos implementada no compilador LLVM. A contribuição principal deste trabalho _e mapear as fases de escalonamento instruções e alocação de registradores como um problema de Isomorfismo de Subgrafos. A resolução _e baseada na modelagem dos recursos de hardware (unidades funcionais, banco de registradores e suas interconexões) como um grafo base e a representação do programa de entrada como um Directed Acyclic Graph (DAG) com vértices representando instruções, operandos de entradas e saída, e as arestas as dependências entre esses vértices. O DAG de entrada possui atributos especiais para indicar a lat^encia de instruções, operandos especiais (registradores de instruções especificas/dedicadas) e dependências de controle. As entradas para o algoritmo são compostas por um DAG G1 e um grafo base G2 que representa a arquitetura alvo. A saída é um grafo G0 2 isomórfico para G1. Outra contribuição é a definição de grafo base como uma ferramenta para modelar diferentes modelos arquiteturais de processadores. A técnica tem-se mostrado particularmente viável para arquiteturas com restrições de registradores e interconexões. No entanto, pode-se vislumbrar extensões para arquiteturas Very Long Instruction Word (VLIW), maquinas escalares e até mesmo processadores que exploram paralelismo em nível de instrução utilizando outros modelos de execução. Experimentos foram realizados visando a validação, caracterização do algoritmo e a comparação com outras técnicas existentes na infraestrutura de compilação LLVM. Os resultados mostram que o algoritmo proposto, apesar de necessitar melhorias quanto ao tempo de compilação, pode obter ganhos de desempenho no código final gerado.
id UFMS_c9b99269c883313347641bcc4543a528
oai_identifier_str oai:repositorio.ufms.br:123456789/2209
network_acronym_str UFMS
network_name_str Repositório Institucional da UFMS
repository_id_str 2124
spelling 2015-04-23T18:20:56Z2021-09-30T19:57:06Z2013https://repositorio.ufms.br/handle/123456789/2209O objetivo deste trabalho _e apresentar uma proposta integrada para Escalonamento de Instruções e Alocação de Registradores baseada em Isomorfismo de Subgrafos implementada no compilador LLVM. A contribuição principal deste trabalho _e mapear as fases de escalonamento instruções e alocação de registradores como um problema de Isomorfismo de Subgrafos. A resolução _e baseada na modelagem dos recursos de hardware (unidades funcionais, banco de registradores e suas interconexões) como um grafo base e a representação do programa de entrada como um Directed Acyclic Graph (DAG) com vértices representando instruções, operandos de entradas e saída, e as arestas as dependências entre esses vértices. O DAG de entrada possui atributos especiais para indicar a lat^encia de instruções, operandos especiais (registradores de instruções especificas/dedicadas) e dependências de controle. As entradas para o algoritmo são compostas por um DAG G1 e um grafo base G2 que representa a arquitetura alvo. A saída é um grafo G0 2 isomórfico para G1. Outra contribuição é a definição de grafo base como uma ferramenta para modelar diferentes modelos arquiteturais de processadores. A técnica tem-se mostrado particularmente viável para arquiteturas com restrições de registradores e interconexões. No entanto, pode-se vislumbrar extensões para arquiteturas Very Long Instruction Word (VLIW), maquinas escalares e até mesmo processadores que exploram paralelismo em nível de instrução utilizando outros modelos de execução. Experimentos foram realizados visando a validação, caracterização do algoritmo e a comparação com outras técnicas existentes na infraestrutura de compilação LLVM. Os resultados mostram que o algoritmo proposto, apesar de necessitar melhorias quanto ao tempo de compilação, pode obter ganhos de desempenho no código final gerado.ABSTRACT - This work aims at providing an integrated Instruction Scheduling and Register Allocation algorithm based on Subgraph Isomorphism theory implemented on the LLVM Compiler. The main contribution of this work is the mapping of instruction scheduling and register allocation as a Subgraph Isomorphism problem. The approach is based on the modelling of the hardware resources (functional units, register les and their interconnections) as a base graph, and the representation of the input program as Directed Acyclic Graphs (DAG) with vertices representing program instructions, input and output operands, and edges representing the dependences between two vertices. This input DAG has also special attributes to indicate the instruction latency, special operands (speci c/dedicated instruction registers), and control dependencies. The algorithm input comprises a DAG G1 of the program and a base graph G2 that represents the target architecture. The output is a graph G0 2 isomorphic to G1. Another contribution is the de nition of base graphs as a tool to model di erent computer architectures to be used by the technique. The technique has shown to be a viable alternative for constrained register and interconnection processor architectures. In addition, the technique can be also extensible for architectures ranging from Very Long InstructionWord (VLIW), scalar, and even processors exploiting instruction level parallelism by using non-conventional execution models. Experiments have been performed to validate and characterize the algorithm. Other experiments have been performed to compare our proposal to classical techniques existing in the LLVM compiler. The results show that proposed algorithm, in spite being a subject for future investigations regarding compilation time, can provide performance gains for programs.porCompiladores (Programas de Computador)Algorítmos ComputacionaisCompilers (Computer Programs)Computer AlgorithmsAlgoritmos para escalonamento de instruções e alocação de registradores na infraestrutura LLVMinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisSantos, Ricardo Ribeiro dosSilva, Lucas da Costainfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFMSinstname:Universidade Federal de Mato Grosso do Sul (UFMS)instacron:UFMSTHUMBNAILLucas da Costa Silva.pdf.jpgLucas da Costa Silva.pdf.jpgGenerated Thumbnailimage/jpeg1252https://repositorio.ufms.br/bitstream/123456789/2209/4/Lucas%20da%20Costa%20Silva.pdf.jpg66ea2ec92cadd03f54077ca20a655dfcMD54ORIGINALLucas da Costa Silva.pdfLucas da Costa Silva.pdfapplication/pdf3078352https://repositorio.ufms.br/bitstream/123456789/2209/1/Lucas%20da%20Costa%20Silva.pdfbc7ce3bb47d34239d0ed8e01fe3a8403MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://repositorio.ufms.br/bitstream/123456789/2209/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52TEXTLucas da Costa Silva.pdf.txtLucas da Costa Silva.pdf.txtExtracted texttext/plain0https://repositorio.ufms.br/bitstream/123456789/2209/3/Lucas%20da%20Costa%20Silva.pdf.txtd41d8cd98f00b204e9800998ecf8427eMD53123456789/22092021-09-30 15:57:06.405oai:repositorio.ufms.br:123456789/2209Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttps://repositorio.ufms.br/oai/requestri.prograd@ufms.bropendoar:21242021-09-30T19:57:06Repositório Institucional da UFMS - Universidade Federal de Mato Grosso do Sul (UFMS)false
dc.title.pt_BR.fl_str_mv Algoritmos para escalonamento de instruções e alocação de registradores na infraestrutura LLVM
title Algoritmos para escalonamento de instruções e alocação de registradores na infraestrutura LLVM
spellingShingle Algoritmos para escalonamento de instruções e alocação de registradores na infraestrutura LLVM
Silva, Lucas da Costa
Compiladores (Programas de Computador)
Algorítmos Computacionais
Compilers (Computer Programs)
Computer Algorithms
title_short Algoritmos para escalonamento de instruções e alocação de registradores na infraestrutura LLVM
title_full Algoritmos para escalonamento de instruções e alocação de registradores na infraestrutura LLVM
title_fullStr Algoritmos para escalonamento de instruções e alocação de registradores na infraestrutura LLVM
title_full_unstemmed Algoritmos para escalonamento de instruções e alocação de registradores na infraestrutura LLVM
title_sort Algoritmos para escalonamento de instruções e alocação de registradores na infraestrutura LLVM
author Silva, Lucas da Costa
author_facet Silva, Lucas da Costa
author_role author
dc.contributor.advisor1.fl_str_mv Santos, Ricardo Ribeiro dos
dc.contributor.author.fl_str_mv Silva, Lucas da Costa
contributor_str_mv Santos, Ricardo Ribeiro dos
dc.subject.por.fl_str_mv Compiladores (Programas de Computador)
Algorítmos Computacionais
Compilers (Computer Programs)
Computer Algorithms
topic Compiladores (Programas de Computador)
Algorítmos Computacionais
Compilers (Computer Programs)
Computer Algorithms
description O objetivo deste trabalho _e apresentar uma proposta integrada para Escalonamento de Instruções e Alocação de Registradores baseada em Isomorfismo de Subgrafos implementada no compilador LLVM. A contribuição principal deste trabalho _e mapear as fases de escalonamento instruções e alocação de registradores como um problema de Isomorfismo de Subgrafos. A resolução _e baseada na modelagem dos recursos de hardware (unidades funcionais, banco de registradores e suas interconexões) como um grafo base e a representação do programa de entrada como um Directed Acyclic Graph (DAG) com vértices representando instruções, operandos de entradas e saída, e as arestas as dependências entre esses vértices. O DAG de entrada possui atributos especiais para indicar a lat^encia de instruções, operandos especiais (registradores de instruções especificas/dedicadas) e dependências de controle. As entradas para o algoritmo são compostas por um DAG G1 e um grafo base G2 que representa a arquitetura alvo. A saída é um grafo G0 2 isomórfico para G1. Outra contribuição é a definição de grafo base como uma ferramenta para modelar diferentes modelos arquiteturais de processadores. A técnica tem-se mostrado particularmente viável para arquiteturas com restrições de registradores e interconexões. No entanto, pode-se vislumbrar extensões para arquiteturas Very Long Instruction Word (VLIW), maquinas escalares e até mesmo processadores que exploram paralelismo em nível de instrução utilizando outros modelos de execução. Experimentos foram realizados visando a validação, caracterização do algoritmo e a comparação com outras técnicas existentes na infraestrutura de compilação LLVM. Os resultados mostram que o algoritmo proposto, apesar de necessitar melhorias quanto ao tempo de compilação, pode obter ganhos de desempenho no código final gerado.
publishDate 2013
dc.date.issued.fl_str_mv 2013
dc.date.accessioned.fl_str_mv 2015-04-23T18:20:56Z
dc.date.available.fl_str_mv 2021-09-30T19:57:06Z
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://repositorio.ufms.br/handle/123456789/2209
url https://repositorio.ufms.br/handle/123456789/2209
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFMS
instname:Universidade Federal de Mato Grosso do Sul (UFMS)
instacron:UFMS
instname_str Universidade Federal de Mato Grosso do Sul (UFMS)
instacron_str UFMS
institution UFMS
reponame_str Repositório Institucional da UFMS
collection Repositório Institucional da UFMS
bitstream.url.fl_str_mv https://repositorio.ufms.br/bitstream/123456789/2209/4/Lucas%20da%20Costa%20Silva.pdf.jpg
https://repositorio.ufms.br/bitstream/123456789/2209/1/Lucas%20da%20Costa%20Silva.pdf
https://repositorio.ufms.br/bitstream/123456789/2209/2/license.txt
https://repositorio.ufms.br/bitstream/123456789/2209/3/Lucas%20da%20Costa%20Silva.pdf.txt
bitstream.checksum.fl_str_mv 66ea2ec92cadd03f54077ca20a655dfc
bc7ce3bb47d34239d0ed8e01fe3a8403
8a4605be74aa9ea9d79846c1fba20a33
d41d8cd98f00b204e9800998ecf8427e
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFMS - Universidade Federal de Mato Grosso do Sul (UFMS)
repository.mail.fl_str_mv ri.prograd@ufms.br
_version_ 1815448038813990912