[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
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.
> 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?
IMSWL-IMCG, SRR, Samsung Electronics
More information about the cfe-dev