Summary of 2024
Overview
In 2024, I continued to explore various areas within the compiler field. My focus this year included the Bazel Build System, LLVM JIT integration with our internal database, Sanitizers, and ClangIR. Below is a detailed summary of my work and achievements in each of these areas.
Bazel Build System
Since April 2023, I have been working on supporting C++20 Modules in Bazel. On October 25, 2023, I submitted a patch to the Bazel repository. In 2024, five additional small patches were merged into the Bazel repository. If Bazel PR#22553 is merged, we will be able to use C++20 Modules with Bazel in a fundamental way. However, there are still some issues related to C++20 Modules support in Bazel. I plan to continue improving the implementation, provided Google accepts my patch.
LLVM JIT
I attempted to integrate LLVM JIT into our internal database product but was unsuccessful due to limited effort and knowledge. Despite dedicating several months to this project, my understanding of LLVM JIT remains constrained. From my perspective, applying LLVM JIT to our internal database was a challenging experience, and I did not achieve the desired results.
Sanitizers
Although I initially had no clear idea why I needed to address issues related to Sanitizers, in practice, I spent considerable time troubleshooting problems such as missing stack traces, absent symbols, and how to suppress erroneous errors or warnings—particularly those misreported by UndefinedBehaviorSanitizer. Handling these issues was time-consuming but necessary for maintaining code quality.
ClangIR
Working on ClangIR has been the most enjoyable and surprising aspect of my 2024. I submitted my first patch for ClangIR on October 28, and it was merged on October 31. I am grateful to @Lancern and @bcardosolopes for reviewing my code and providing valuable suggestions to improve its quality. Throughout 2024, 14 of my patches were merged into the ClangIR repository. Although patches related to TBAA Support were reverted, I am committed to refactoring my patches to meet ClangIR’s requirements. My work plan for 2025 includes focusing on TBAA Support, Debugging Info Support, and lowering through MLIR. Notably, I contributed my first patch to the LLVM repository, which I celebrated by writing a blog post.
Conclusion
I chose to write this blog in English despite not being a native speaker, relying on ChatGPT to help polish my draft. As a result, some sentences may still seem unusual or unclear, reflecting my ongoing learning process. Overall, I am excited to continue contributing more code to the ClangIR repository and plan to dedicate some time to working on Triton in the coming year.