vsapsai added a comment.

It's good to know `ASTReader::ReadMethodPool` is pretty close for both 
approaches. And as far as I understand, it includes the code

  ReadMethodPoolVisitor Visitor(*this, Sel, PriorGeneration);
  ModuleMgr.visit(Visitor);

so the module visiting doesn't seem to be too expensive.

I can be wrong but I like writing less data as it can result in savings for 
more projects. For example, if compile time is dominated by method 
deserialization and not by `Sema::addMethodToGlobalList`, we still should see 
an improvement. I can try to experiment on a bunch of other projects and their 
heavy .m files and report the results, if you'd like.

Also I've updated D110123 <https://reviews.llvm.org/D110123> to preserve the 
order of methods (mostly, there are still some differences). Works better than 
the previous approach, compilation time difference is within the noise.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109632/new/

https://reviews.llvm.org/D109632

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to