ChuanqiXu9 wrote:

> Thanks for the change! I have done a round of review and left a few 
> suggestion and also have a bunch of questions. I am sorry if some of them may 
> look too obvious, I did try to dig into the code where I could, but Clang's 
> serialization is complicated and some things are easier researched through a 
> conversation than through looking at code. Please bear with me, I promise to 
> get better in the upcoming reviews.

You're welcome.

> 
> Here are a few extra question that came to mind too.
> 
> Question 1: Do we have estimates on how much bigger the PCMs become? Did you 
> observer any negative performance impact?
> 
> I would expect `TypeID`s to be much more common than decls, and the 
> corresponding size increases to be more significant. We've already lost ~6% 
> from DeclID change, I am slightly worried the types are going to be a bigger 
> hit.

I did and my local results shows, I see less than 1% change with this patch. 
This fits my understanding somehow. Since the `TypeID` is much less common than 
`DeclID`. This matches my experience in coding. The `DeclID` patch is the 
hardest one and the `TypeID` patch is the easiest one.

> 
> Question 2: could you explain why we the PCM in your example was changing 
> before? Was there some base offset inherited from the PCM files we depended 
> on?

Yes. In the higher level, it should be easy to understand. There is a new type 
in `m-partA.v1.cppm`. And in the low level, when we write a module file, we 
would record the type offset for the module files we depend on: 
https://github.com/llvm/llvm-project/blob/ad79a14c9e5ec4a369eed4adf567c22cc029863f/clang/lib/Serialization/ASTWriter.cpp#L5454

And this is exactly what the series patch want to eliminate.

https://github.com/llvm/llvm-project/pull/92511
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to