Principal Product Manager at Microsoft Azure Core Engineering
email: tapaswenipathak@gmail.com
Education: B.Tech in Computer Science, Indira Gandhi Delhi Technical University for Women, 2014
Incomplete project:
Improving performance of C++ modules in Clang
The C++ modules technology aims to provide a scalable compilation model
for the C++ language. The C++ Modules technology in Clang provides an
io-efficient, on-disk representation capable to reduce build times and
peak memory usage. The internal compiler state such as the abstract
syntax tree (AST) is stored on disk and lazily loaded on demand. C++
Modules improve the memory footprint for interpreted C++ through the
Cling C++ interpreter developed by CERN and the compiler research group
at Princeton. The current implementation is pretty good at making most
operations on demand. However in a few cases, we eagerly load pieces of
the AST, for example at module import time and upon selecting a suitable
template specialization. When selecting the template specialization we
load all template specializations from the module files just to find out
they are not suitable. There is a patch that partially solves this issue
by introducing a template argument hash and use it to look up the
candidates without deserializing them. However, the data structure it
uses to store the hashes leads to quadratic search which is inefficient
when the number of modules becomes sufficiently large.
Project Proposal: URL
Mentors: Vassil Vassilev