[Serialization] Add -ftime-trace block for reading loaded modules.
authorSam McCall <sam.mccall@gmail.com>
Fri, 9 Dec 2022 13:30:04 +0000 (14:30 +0100)
committerSam McCall <sam.mccall@gmail.com>
Fri, 9 Dec 2022 13:36:57 +0000 (14:36 +0100)
commit3fffe6826448ac2daf9c4feb8e48ae8d601aca06
tree2c1546d1ee56038792f6af0f52128d50dceadd0b
parent4002eaaa01b71ab1f74fc15b151c72c0626d9d2d
[Serialization] Add -ftime-trace block for reading loaded modules.

The existing ReadAST block only describes the top-level PCM file being
loaded, when in practice most of the time taken is dealing with other
PCM files which are loaded in turn.

Because this work isn't strictly recursive (first all the modules are
discovered, then processsed in several flat loops), we can't have a neat
recursive structure like processing of source files. Instead, slap a
timer on the largest of these boxes: reading the AST block for modules.
In practice this shows where most of the time goes, and in particular
which modules are most expensive.
clang/lib/Serialization/ASTReader.cpp