Brussels / 3 & 4 February 2024


My experience as a first time contributor to GCC's LTO

Bypass assembler when generating LTO object file

This summer, I worked with my mentor Jan Hubicka and Martin Jambor on a project to bypass assemblers when generating LTO object files. Link Time Optimization (LTO) enables GCC to dump its internal representation (GIMPLE) to disk so that a single executable can be optimized as a single module. The current implementation creates an assembly file, and the assembler creates the final LTO object file from the provided binary contents. This project aims to create Link-time-optimization (LTO) object files directly from the compiler to improve compile time performance significantly by bypassing the assembler. The GCC's LTO infrastructure has matured enough to compile large real-world applications. Thus, this project will significantly reduce their compile time once completed. In this presentation, I will discuss the current state of my project and future direction. Additionally, I will delve into my journey, discussing the challenges I encountered as a beginner working with GCC (GNU Compiler Collection) and how I overcame them with the community's help.


Photo of Rishi Raj Rishi Raj