[cfe-dev] [analyzer] Summary IPA thoughts +code

Aleksei Sidorin via cfe-dev cfe-dev at lists.llvm.org
Wed Mar 2 05:42:25 PST 2016

Hello Gabor,

We still use a file-by-file approach so we don't build a full AST but 
merging ASTs of analyzed callees only where possible. We build a mapping 
showing what file contains required functions. Then, we analyze a 
project file-by-file. During analysis, we import this definition to our 
TU if we meet a call with a callee definition in another file,  and 
continue analysis as usually.

This approach seems to work. It should get much better performance after 
implementation of summary serialization due to summary inter-TU reusage. 
We don't build a full project AST but this is not a memory bottleneck: a 
real bottleneck currently is function summaries.

Currently we're working on upstreaming our ASTImporter work. This work 
is slow enough because it requires massive test writing (ASTImporter 
lacks tests now). But we hope, it will become available for all clang 
users who needs it.

> Hi!
> Do you have some updates? I checked the repository, and there are python
> scripts indicating cross TU analysis support (and there were also some
> ASTImporter work). I was wondering what is the state of this? What is the
> approach you are using? Does that approach work, when the unified AST
> possibly not fit into the memory?

Best regards,
Aleksei Sidorin
Software Engineer,
IMSWL-IMCG, SRR, Samsung Electronics

More information about the cfe-dev mailing list