[PATCH] D109632: [clang] de-duplicate methods from AST files
Richard Howell via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 4 15:23:42 PDT 2021
rmaz added a comment.
In D109632#3037501 <https://reviews.llvm.org/D109632#3037501>, @vsapsai wrote:
> My assumption was that all dependent modules are in memory at this point. And we visit transitive modules only once, so I don't expect it to be a big performance hit (though I can be wrong). And deserializing methods from different modules shouldn't be more work because we are deserializing fewer methods than with "set dedupe".
I added some stats collection for the number of methods deserialized, here are the results from the slowest file in the above table:
| **Method** | **# Module File Lookups** | **# Module File Hits** | **# Instance Methods Deserialized** | **# Class Methods Deserialized** |
| Baseline | 34023 | 129 | 82005 | 29298 |
| Set Dedupe | 34023 | 129 | 13743 | 6781 |
| No external | 45265 | 960 | 4010 | 1704 |
|
So while the no external approach has ~3.5x fewer methods to deserialize, it has to visit ~7.5x as many module files to deserialize methods from.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D109632/new/
https://reviews.llvm.org/D109632
More information about the cfe-commits
mailing list