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