This project aims to implement a GlobalModuleIndex ,, which is expected to speed up ROOT’s  startup time two times. ROOT has its own C++ interpreter called Cling  for getting the reflection information.
We have been implementing C++ modules support in ROOT for the last few years, and we have recently reached the production level. However, there is still a room for optimization, and one of the possible solutions could be the implementation of GlobalModuleIndex. It is a mechanism to create the table of symbols and PCM names, so that ROOT will be able to load a corresponding library when a symbol lookup failed. This project will give the selected student an opportunity to contribute to two large and widely-used open source projects: ROOT and Clang/LLVM . Moreover, the student will get a deep knowledge of C++ compiler and interpreter technology throughout this project.
Implement GlobalModuleIndex in ROOT/Cling, provide a performance tuning for preloading of PCMs.