bruno marked an inline comment as done.
bruno added inline comments.

================
Comment at: clang/lib/Serialization/ASTWriter.cpp:1767
   bool IsTopLevelModuleMap;
+  uint32_t ContentHash[2];
 };
----------------
ributzka wrote:
> bruno wrote:
> > aprantl wrote:
> > > Why is this not a uint64_t?
> > Serializing a `uint64_t` directly instead of two `uint32_t` gives me a 
> > slightly bigger final cache. One could argue that the value is negligible 
> > (+800 bytes for a 40MB cache), but here's the rationale :)
> Creating an abbrev might fix this, because this should be a fixed size field. 
> The generic emission code for a record without an abbrev is not very space 
> efficient for single fields.
Right, I did more experiments, and although VBR::64 or Fixed::64 aren't 
supported, I could shave off 10KB by using abbrev + two ::Fixed, 32. Using two 
::VBR:32 is actually 400 bytes worse than the current approach. Thanks for the 
suggestion, gonna update the patch.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D67249



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

Reply via email to