[ClangIR][GSoC 2025] ClangIR upstreaming

Description

ClangIR is a new, MLIR-based intermediate representation of C and C++ code. It has been developed in an LLVM incubator project, but work is now underway to migrate the code from the incubator to the main LLVM repository. As the code is moved, it must be updated to align with LLVM coding standards and quality expectations. The goal for this project is to participate in the ClangIR upstreaming process and help improve both the code and the upstreaming process.

This will be an opportunity to gain hands-on experience with MLIR development with a focus on day-to-day software engineering discipline. Participants will work side-by-side with other LLVM contributors to achieve a common goal.

Expected results

  • Migrate ClangIR support for C and C++ language features into the main LLVM repository
  • Improve the quality of code as it is being migrated
  • Suggest ways to improve the migration process

Requirements

Skills: Proficiency with modern C++ programming and familiarity with basic compiler design concepts are required. Prior experience with LLVM IR, MLIR, Clang or ClangIR programming is a big plus, but since the goal of this project is to gain such experience, it is not a prerequisite.

Project size: Medium to Large – This project is open-ended and can be as large as you like, but at least a month of commitment will be necessary to be successful in the goals of the project.

Difficulty: Medium

Mentors: Andy Kaylor

5 Likes

Hey @andykaylor! I’m really interested in this project and wanted to get your thoughts on defining a reasonable goal for a large project.

From the RFC and current work, I see that lowering to MLIR is still in early stages, and that’s where the main focus is right now. Given that, I’d love to get an idea of what might come next after this stage and what directions would make sense for a proposal. I understand that the scope is flexible and that this is more of a general project where I’ll likely contribute to different areas but are there specific areas (i.e. which feature migrations) that would be particularly valuable?

Any guidance would be really helpful! Thanks!