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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits