forked from OSchip/llvm-project
11201315d5
Bitcode writer does not flush buffer until the end by default. This is fine to small bitcode files. When -flto,--plugin-opt=emit-llvm,-gmlt are used, the final bitcode file is large, for example, >8G. Keeping all data in memory consumes a lot of memory. This change allows bitcode writer flush data to disk early when buffered data size is above some threshold. This is only enabled when lld emits LLVM bitcode. One issue to address is backpatching bitcode: subblock length, function body indexes, meta data indexes need to backfill. If buffer can be flushed partially, we introduced raw_fd_stream that supports read/seek/write, and enables backpatching bitcode flushed in disk. Reviewed-by: tejohnson, MaskRay Differential Revision: https://reviews.llvm.org/D86905 |
||
---|---|---|
.. | ||
BitWriter.cpp | ||
BitcodeWriter.cpp | ||
BitcodeWriterPass.cpp | ||
CMakeLists.txt | ||
LLVMBuild.txt | ||
ValueEnumerator.cpp | ||
ValueEnumerator.h |