LLVM Google Summer of Code 2024 & 2023
The LLVM organization was accepted to participate in Google Summer of Code in 2024. Soon, prospective participants will begin submitting their project proposals, and mentors will review them to select those who will spend a significant amount of time this year contributing to various parts of LLVM.
But first, let’s look back and see what we had in 2023. The Google Summer of Code 2023 was very successful for the LLVM project. Overall, we received 54 proposals for 24 open projects. Out of this set of proposals, 20 projects were successfully completed and covered many different aspects of LLVM and its subprojects.
- ExtractAPI while building by Ankur Saini, mentored by Daniel Grumberg
- WebAssembly Support for clang-repl by Anubhab Ghosh, mentored by Vassil Vassilev and Alexander Penev
- Modules Build Daemon: Build System Agnostic Support for Explicitly Built Modules by Connor Sughrue, mentored by Jan Svoboda, Michael Spencer
- [Interactive MLIR query tool to make exploring the IR easier] (https://summerofcode.withgoogle.com/archive/2023/projects/bdePp9VD) by Devajith Valaparambil Sreeramaswamy, mentored by Jacques Pienaar
- Improving Compile Times by Dhruv Chawla, mentored by Nikita Popov
- Adding C++ Support to Clang’s ExtractAPI by Erick Velez, mentored by Daniel Grumberg
- Optimizing MLIR’s Presburger library by gilsaia, mentored by Kunwar Grover
- Adapting IR Load Semantics to Freeze All or Freeze Only Uninitialized Data by John McIver, mentored by Nuno Lopes
- Addressing Rust optimization failures in LLVM by Kohei Asano, mentored by Nikita Popov
- Tutorial development with clang-repl by Krishna Narayanan, mentored by Vassil Vassilev
- Fix Handling of Undefined Behavior in NewGVN by Manuel Brito, mentored by Nuno Lopes
- Map LLVM values to corresponding source-level expressions by phyBrackets, mentored by Satish Guggilla and Karthik Senthil
- Machine Learning Guided Ordering of Compiler Optimization Passes by Puneeth A R, mentored by Tarindu Jayatilaka, Johannes Doerfert, and Mircea Trofin
- Patch based test coverage for quick test feedback by ShivamGupta123, mentored by Henrik Olsson
- Re-optimization using JITLink by Sunho Kim, mentored by Vassil Vassilev, Stefan Gränitz, and Lang Hames
- Improvements in Clang Diagnostics by Takuya Shimizu, mentored by Timm Bäder
- Build & Run SingleSource Benchmarks with ClangIR by Vinicius Espindola, mentored by Bruno Cardoso Lopes and Nathan Lanza
- Better Performance Models for MLGO Training by Viraj Shah, mentored by Mircea Trofin, Aiden Grossman, and Ondrej Sykora
- Enhancing llvm-cov to Generate Hierarchical Coverage Reports by Yuhao Gu, mentored by Petr Hosek and Gulfem Savrun Yeniceri
- Autocompletion in Clang-REPL by Yuquan Fu, mentored by Vassil Vassilev
Some projects also provided detailed end-of-project reports or project diaries that are outstanding on their own:
- Tutorial Development with Clang-Repl
- Diagnostic Improvements in Clang 17
- Improving Compile Times
- Addressing Rust optimization failures in LLVM
- Map LLVM Values to corresponding source level expression
- Another step forward towards interactive programming - covers Autocompletion in Clang-REPL, WebAssembly Support for Clang-Repl, Re-optimization using JITLink and Tutorial development with clang-repl projects.
GSoC 2024
With a successful end to 2023, the LLVM Project is excited to participate in GSOC 2024. If you are interested in participating, here are some guidelines:
1. Project ideas
Please take a look on list of projects at Open Projects page. Projects also have topics below on LLVM Discourse having #gsoc24 tag, so you can ask mentors about details of the project, skills required, etc.
2. Way to submitting a proposal
We encourage you to discuss your proposal before submitting to GSoC system. Having your proposal discussed ensures that your proposal will be well aligned with the project. Please do not hijack other threads (e.g. with mentor Q&A) and create a separate new thread to discuss your proposal. The ideal proposal will contain:
- A descriptive title
- Information about you, including contact information. Please do not forget to include:
- Your prior compiler and compiler-related experience, if any (e.g. studies at the University, prior contributions)
- Whether you have any prior contributions to LLVM. If yes, please provide links to these contributions.
- Your past open source participation and contributions, if any
- Your knowledge of programming languages (e.g. C, C++, Python, Rust, etc.) and your estimate of your level of experience
- Information about your proposed project. This should be fairly detailed and include a timeline.
- Information about other commitments that might affect your ability to work during the GSoC period (exams, classes, holidays, other jobs, weddings, etc.). Also, if the project allows both medium- and large-size participation, indicate the intended size of the project and the timeframe of your participation.
3. Useful links
LLVM Contribution Guidelines LLVM Developer Policy GSoC channel on LLVM Discord Other documents LLVM Community Code of Conduct GSoC Contributor Guide Advice for People Applying for GSoC GSoC Program Website LLVM Office Hours
4. Deadlines
- Submission to GSoC system opens on March 18th at 18:00 UTC.
- Submission to GSoC system ends on April 2nd at 18:00 UTC.
- Results to be announced on May 1st at 18:00 UTC.
Welcome to the 20th Google Summer of Code!