[cfe-dev] [RFC] Compressing AST files by default?

Alexey Sidorin via cfe-dev cfe-dev at lists.llvm.org
Fri Oct 21 12:26:01 PDT 2016


Hi Gabor!

Yes, your guess is right. This work is XTU-related.
We didn't see any performance improvements, however. But Android's ASTs 
have the size reduction to 38Gb from 70Gb. I think it's a nice improvement.


21.10.2016 22:13, Gábor Horváth via cfe-dev пишет:
> Hi!
>
> On 20 October 2016 at 18:12, Mehdi Amini via cfe-dev 
> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>
>
>     > On Oct 20, 2016, at 2:23 AM, Ilya Palachev via cfe-dev
>     <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>     >
>     > Hi,
>     >
>     > It seems that compressing AST files with simple "gzip --fast"
>     makes them 30-40% smaller.
>     > So the questions are:
>     > 1. Is current AST serialization format really non-compressed
>     (only abbreviations in bit stream format)?
>     > 2. Is it worthwhile to compress AST by default (with -emit-ast)?
>     > 3. Will this break things like PCH?
>     > 4. What's the current trade-off between PCH compile time and
>     disk usage? If AST compression makes compilation a bit slower, but
>     reduces the disk usage significantly, will this be appropriate for
>     users or not?
>
>     Is there a need for this disk usage? If the main use of AST files
>     is C++ modules / PCH, what is a typical size for a module cache
>     directory?
>     (Compression is expensive)
>
>
>
> In some cases compression can actually improve the peformance, because 
> in some cases the bottleneck is the I/O, and less data read from the 
> disk and a fast decompression can be beneficial to the overall 
> performance.
>
> In case someone wants to do a whole project analysis on merged ASTs, 
> this compression can be a very significant saving. Dumping all of LLVM 
> and Clang TUs to the disk occupies about 45 GB of disk space at the 
> moment.
>
>
>>     Mehdi
>
>
>     >
>     > LLVM already has a support for compression (functions
>     compress/uncompress in include/llvm/Support/Compression.h).
>     >
>     > Best regards,
>     > Ilya Palachev
>     > _______________________________________________
>     > cfe-dev mailing list
>     > cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>     > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>     <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev>
>
>     _______________________________________________
>     cfe-dev mailing list
>     cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>     <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev>
>
>
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20161021/399b0468/attachment.html>


More information about the cfe-dev mailing list