Bruno Cardoso Lopes

Bruno Cardoso Lopes received a PhD in Computer Science from University of Campinas, Brazil. He's been an LLVM contributor since 2007 and implemented the MIPS backend from scratch, which maintained for several years. Among his other contributions, he wrote the x86 AVX support and improved the ARM assembler. His research interests include code compression techniques and reduced bit width ISAs. In the past, he has also developed drivers for Linux and FreeBSD operating systems.

Informações coletadas do Lattes em 03/11/2022

Acadêmico

Formação acadêmica

Doutorado em Ciência da Computação

2009 - 2014

Universidade Estadual de Campinas
Título: Design and Evaluation of Compact ISAs
Rodolfo Jardim de Azevedo. Bolsista do(a): Fundação de Amparo à Pesquisa do Estado de São Paulo. Palavras-chave: arquitetura de computadores; compiladores; compressão de código.Grande área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Sistemas de Computação / Especialidade: Arquitetura de Sistemas de Computação. Grande Área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Sistemas de Computação / Especialidade: Hardware. Grande Área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Metodologia e Técnicas da Computação / Especialidade: Linguagens de Programação.

Mestrado interrompido em 2009 em Ciência da Computação

2008 - interrompida

Universidade Estadual de Campinas
Bolsista do(a): Coordenação de Aperfeiçoamento de Pessoal de Nível Superior. Ano de interrupção: 2009Palavras-chave: compiladores; arquitetura de computadores.Grande área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Sistemas de Computação / Especialidade: Arquitetura de Sistemas de Computação. Grande Área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Metodologia e Técnicas da Computação / Especialidade: Linguagens de Programação.

Graduação em Engenharia de Computação

2003 - 2007

Universidade Estadual de Campinas
Orientador: Rodolfo Jardim de Azevedo

Idiomas

Bandeira representando o idioma Inglês

Compreende Bem, Fala Bem, Lê Bem, Escreve Bem.

Áreas de atuação

Grande área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Metodologia e Técnicas da Computação/Especialidade: Linguagens de Programação.

Grande área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Sistemas de Computação/Especialidade: Arquitetura de Sistemas de Computação.

Grande área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Metodologia e Técnicas da Computação/Especialidade: Segurança de Redes.

Grande área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Sistemas de Computação/Especialidade: Hardware.

Participação em eventos

LLVM Developers Meeting 2014. 2014. (Congresso).

GUADEC - The Gnome Conference. Clang, LLVM, and GNOME. 2013. (Congresso).

Workshop on the Interaction amongst Virtualization, Operating Systems and Computer Architecture (WIVOSCA). ISA Aging: A X86 case study. 2013. (Congresso).

Compiler, Architecture and Tools Conference (CATC). ISA Anti-Aging: Recycling Old Instructions and Reducing ISA Complexity. 2013. (Congresso).

Embedded Linux Conference. LLVM, Clang and Embedded Linux Systems. 2011. (Congresso).

Apple Worldwide Developers Conference (WWDC). LLVM Lab Monitor. 2011. (Exposição).

Embedded Linux Conference - ELC. Understanding and writing an LLVM Compiler Backend. 2009. (Congresso).

Embedded Linux Conference Europe - ELCE. The LLVM MIPS and ARM Back-ends. 2009. (Congresso).

Computer Architecture and High Performance Computing Symposium (SBAC). SPARC16: A New Compression Approach for the SPARC Architecture. 2009. (Congresso).

LLVM Developers Meeting.Object Code Emission and llvm-mc. 2009. (Encontro).

Hackers to Hackers Conference (H2HC). Low Level Playground - PCI Rootkits. 2008. (Congresso).

Workshop de Computação de Alto Desempenho (WSCAD).High Computing Performance with CUDA. 2008. (Oficina).

International Free Software Forum (FISL 9).Writing LLVM backends. 2008. (Encontro).

International Free Software Forum (FISL 8). 2007. (Encontro).

Sematis - Semana de Tecnologia de informação do Sudoeste do Paraná. Sematis - Semana de Tecnologia de informação do Sudoeste do Paraná O Ataque de buffer overflow. 2006. (Congresso).

International Free Software Forum (FISL 7).Distribuição Linux Librix. 2006. (Encontro).

International Free Software Forum (FISL 6).Distribuição Linux Librix. 2005. (Outra).

XXI ENECOMP. 2003. (Encontro).

Produções bibliográficas

  • LOPES, B. C. ; R. Auler . Getting Started with LLVM Core Libraries. 1. ed. , 2014.

  • LOPES, B. C. ; APPEL, D. . Gerenciamento de Redes. Revista PC & Cia, p. 36 - 39, 10 jan. 2005.

  • LOPES, B. C. ; GOMES, P. H. . Homeplug. Revista PC & Cia, p. 61 - 63, 27 fev. 2004.

  • LOPES, B. C. ; Porto, L. P. (Lucas Pereira Porto) . Voz sobre IP. Revist a PC & Cia, p. 47 - 49, 18 fev. 2004.

  • LOPES, B. C. ; R. Auler ; BORIN, E. ; AZEVEDO, R. J. . ISA Anti-Aging: Recycling Old Instruc- tions and Reducing ISA Complexity. In: Compiler, Architecture and Tools Conference (CATC), 2013, Haifa. ISA Anti-Aging: Recycling Old Instruc- tions and Reducing ISA Complexity, 2013.

  • LOPES, B. C. ; R. Auler ; BORIN, E. ; AZEVEDO, R. J. . ISA Aging: A X86 case study. In: Workshop on the Interaction amongst Virtualization, Operating Systems and Computer Architecture (WIVOSCA), 2013, Tel Aviv. ISA Aging: A X86 case study, 2013.

  • ECCO, L. ; LOPES, B. C. ; PANNAIN, R. ; CENTODUCATTE, P. C. ; AZEVEDO, R. J. . SPARC16: A New Compression Approach for the SPARC Architecture. In: International Symposium on Computer Architecture and High-Performance Computing - SBAC-PAD, 2009, São Paulo, SP. Proceedings of International Symposium on Computer Architecture and High Performance Computing - SBAC-PAD. Los Alamitos, CA, USA: IEEE Computer Society, 2009. v. 0. p. 169-176.

  • LOPES, B. C. ; ECCO, L. ; AZEVEDO, R. J. . Design and evaluation of compact ISA extensions. Microprocessors and Microsystems , 2016.

  • LOPES, B. C. ; AULER, R. ; BORIN, E. ; AZEVEDO, R. J. . SHRINK: Reducing the ISA Complexity Via Instruction Recycling. The International Symposium on Computer Architecture , 2015.

Outras produções

LOPES, B. C. . LLVM Mips backend. 2007.

Histórico profissional

Endereço profissional

  • Universidade Estadual de Campinas, Instituto de Computação, LSC - Laboratorio de Sistemas Computacionais. , Avenida Albert Einstein nº 400, Cidade Universitária, 13083970 - Campinas, SP - Brasil, Telefone: (19) 35215838

Experiência profissional

2014 - Atual

APPLE INC BRASIL

Vínculo: Celetista, Enquadramento Funcional: Compiler Engineer, Carga horária: 40, Regime: Dedicação exclusiva.

2010 - 2010

APPLE INC

Vínculo: Celetista, Enquadramento Funcional: Compiler Engineer Intern (Estagiário), Carga horária: 40, Regime: Dedicação exclusiva.

Outras informações:
Summer internship in the Apple compiler code generator team - support for parsing and assembling x86 AVX instructions and vector shuffle handling rewrite.

2007 - 2009

Google Inc., Google

Vínculo: Contrato temporário, Enquadramento Funcional: Estudante do programa Google Summer of Code

Outras informações:
Participação 3 anos consecutivas no programa Google Summer Of Code.

Atividades

  • 05/2009 - 08/2009

    Outras atividades técnico-científicas , Universidade Estadual de Campinas, .,Atividade realizada, Suporte a emissão de código objeto no formato ELF.

  • 05/2008 - 08/2008

    Outras atividades técnico-científicas , Universidade Estadual de Campinas, .,Atividade realizada, Suporte ao console PSP no back-end MIPS do compilador LLVM.

  • 05/2007 - 08/2007

    Outras atividades técnico-científicas , Universidade Estadual de Campinas, .,Atividade realizada, Implementação do back-end MIPS para o compilador LLVM..

2007 - 2007

Kryptus Tecnologias, Kryptus

Vínculo: Colaborador, Enquadramento Funcional: Estagiário, Carga horária: 15

Outras informações:
Development of embedded cryptographic firmware, drivers to the Linux Kernel and modifications to FreeBSD kernel TCP/IP protocol stack

2006 - 2007

Universidade Estadual de Campinas

Vínculo: Iniciação Científica, Enquadramento Funcional: Estudante, Carga horária: 20

Outras informações:
Implementation of a Sparv8 processor (Leon3) and peripherals simulator using the SystemC and ArchC tools aimed at booting the Linux kernel.

2005 - 2006

Convênio Unicamp - Itautec

Vínculo: Estagiário, Enquadramento Funcional: Programador, Carga horária: 20

Outras informações:
Development of a Brazilian Linux distribution based on Gentoo called Librix. The work consisted in a implementation of the distribution Graphic Installer using PyQt, implementation of a graphic package installer and tutoolyst, a tool designed to automatically compile, pack and easy generate live and install cd s