How much compilation speedup we will get from C++ Modules: A Case Study
The presentation will show a series of experimental results to (try to) answer the interesting and hard question: how much speedup we could get if we use C++20 Modules? We will compare the compilation time of a modularized library with its original implementation in many different compiling configurations (Optimization Levels, Debug Informations and other compiler techniques). Then we would discuss the reasons behind the numbers. And we will discuss the possible optimization techniques in the future to speedup the compilation process more and the corresponding impact on performance, code sizes, object ABI and language standard.
Q: What will I learn? and Why is this important to me?
You will find the improvements of C++20 modules for a real world project. It may be helpful for your future decision on C++20 modules. (For example, should we use it? How much benefit could we get actually?)
Q: Will it include a quick recap of modules or is that knowledge a prerequisite from the audience?
It will include a quick recap of modules.
Q: What is the compiler used?
We use clang in our experiments.
Q: What is the build system used?
We use a hand written makefile to build the modules.
Q: Will it talk about the lessons learned in refactoring to modules?
No. We don't focus on specific grammars.
Chuanqi Xu
A compiler engineer for Clang/LLVM who focus on both frontend/middle-end. Maintaining Coroutines parts in Clang/LLVM. Implementer/User of Coroutine libraries. Implementing/Using C++20 Named Modules.