Bruno Cardoso Lopes

I'm a compiler engineer working on LLVM, Clang, and MLIR, and a member of the C++ standards committee. Outside of compilers, I play guitar and make records with a few bands.

Compiler Work Papers & Proposals Talks Writing Music

My main focus is ClangIR, a project I started that's now part of upstream LLVM. It preserves C and C++ semantics in MLIR, providing a foundation for code generation, static analysis, and optimization.

I joined LLVM through Google Summer of Code in 2007, writing the MIPS backend. Since then, I've worked across the compiler, from x86 AVX support and C/C++/Objective-C language implementation to Clang modules and compile-time improvements.

On the language side, I work on C++ proposals and their Clang implementations, including modules, pattern matching, do expressions, and diverging expressions. I also host the monthly C/C++ MLIR working group and mentor students and interns.

Research

Design and evaluation of compact ISA extensions Microprocessors and Microsystems Journal. 2016
SHRINK: reducing the ISA complexity via instruction recycling Proceedings of ISCA. 2015
Design and evaluation of compact ISAs PhD thesis. 2014
ISA Aging: A X86 case study WIVOSCA. 2013
SPARC16: A New Compression Approach for the SPARC Architecture Computer Architecture and High Performance Computing. 2009

C++ Proposals

Diverging Expressions 2025
do expressions 2023
Pattern Matching 2020
Modules Feedback 2019
Disabling static destructors: introducing no_destroy and always_destroy attributes 2018
The no_float function attribute 2018
export module containing [[attribute]]; 2018
A proposal for modular macros 2018
Modules at scale 2017
ClangIR in 2026: Benchmarks, Self-Hosting, and Compile Time LLVM Developers' Meeting. Oct 2026
ClangIR: Upstreaming an Incubator Project US LLVM Developers Meeting keynote. Oct 2025
ClangIR's Footprint: A quick compile-time impact report Asia LLVM. Jun 2025
Introducing ClangIR, High-Level IR for the C/C++ Family of Languages Supercomputing Workshop. Nov 2024
Evolution of ClangIR: A Year of Progress, Challenges, and Future Plans US LLVM Developers Meeting. Oct 2023
ClangIR: A new high-level IR for Clang MLIR Workshop, LLVM Developer's Meeting. 2022
Clang, LLVM, and GNOME GUADEC, Brno. 2013
LLVM, Clang and Embedded Linux Systems Embedded Linux Conference. 2011
Object Code Emission and llvm-mc LLVM Developers' Meeting. 2009
Understanding and writing an LLVM Compiler Backend Embedded Linux Conference. 2009
Getting Started with LLVM Core Libraries A practical guide to building and using LLVM libraries and tools. Packt Publishing, 2014
Blog archive Technical notes and posts from earlier years.
Sunset Scavenger cover art (2026) Sunset Scavenger Sunset Scavenger Palomares cover art (2021) Palomares Monsoon His Master's Voice Versus Monsoon cover art (2018) His Master's Voice Versus Monsoon Monsoon Wrath Long Buried cover art (2015) Wrath Long Buried Medusa Mod 2 cover art (2014) 2 Nuvens Invisíveis Lost Elephants cover art (2013) Lost Elephants Nuvens Invisíveis
Bruno Cardoso Lopes brunocardoso.cc Previous site