mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
c75c8e75b3
During D88827 it was requested to remove the local implementation of Memory/File Buffers: // TODO: refactor the buffer classes in LLVM to enable us to use them here // directly. This patch uses raw_ostream instead of Buffers. Generally, using streams could allow us to reduce memory usages. No need to load all data into the memory - the data could be streamed through a smaller buffer. Thus, this patch uses raw_ostream as an interface for output data: Error executeObjcopyOnBinary(CopyConfig &Config, object::Binary &In, raw_ostream &Out); Note 1. This patch does not change the implementation of Writers so that data would be directly stored into raw_ostream. This is assumed to be done later. Note 2. It would be better if Writers would be implemented in a such way that data could be streamed without seeking/updating. If that would be inconvenient then raw_ostream could be replaced with raw_pwrite_stream to have a possibility to seek back and update file headers. This is assumed to be done later if necessary. Note 3. Current FileOutputBuffer allows using a memory-mapped file. The raw_fd_ostream (which could be used if data should be stored in the file) does not allow us to use a memory-mapped file. Memory map functionality could be implemented for raw_fd_ostream: It is possible to add resize() method into raw_ostream. class raw_ostream { void resize(uint64_t size); } That method, implemented for raw_fd_ostream, could create a memory-mapped file. The streamed data would be written into that memory file then. Thus we would be able to use memory-mapped files with raw_fd_ostream. This is assumed to be done later if necessary. Differential Revision: https://reviews.llvm.org/D91028 |
||
---|---|---|
.. | ||
bugpoint | ||
bugpoint-passes | ||
dsymutil | ||
gold | ||
llc | ||
lli | ||
llvm-ar | ||
llvm-as | ||
llvm-as-fuzzer | ||
llvm-bcanalyzer | ||
llvm-c-test | ||
llvm-cat | ||
llvm-cfi-verify | ||
llvm-config | ||
llvm-cov | ||
llvm-cvtres | ||
llvm-cxxdump | ||
llvm-cxxfilt | ||
llvm-cxxmap | ||
llvm-diff | ||
llvm-dis | ||
llvm-dwarfdump | ||
llvm-dwp | ||
llvm-elfabi | ||
llvm-exegesis | ||
llvm-extract | ||
llvm-go | ||
llvm-gsymutil | ||
llvm-ifs | ||
llvm-isel-fuzzer | ||
llvm-itanium-demangle-fuzzer | ||
llvm-jitlink | ||
llvm-jitlistener | ||
llvm-libtool-darwin | ||
llvm-link | ||
llvm-lipo | ||
llvm-lto | ||
llvm-lto2 | ||
llvm-mc | ||
llvm-mc-assemble-fuzzer | ||
llvm-mc-disassemble-fuzzer | ||
llvm-mca | ||
llvm-microsoft-demangle-fuzzer | ||
llvm-ml | ||
llvm-modextract | ||
llvm-mt | ||
llvm-nm | ||
llvm-objcopy | ||
llvm-objdump | ||
llvm-opt-fuzzer | ||
llvm-opt-report | ||
llvm-pdbutil | ||
llvm-profdata | ||
llvm-profgen | ||
llvm-rc | ||
llvm-readobj | ||
llvm-reduce | ||
llvm-rtdyld | ||
llvm-shlib | ||
llvm-size | ||
llvm-special-case-list-fuzzer | ||
llvm-split | ||
llvm-stress | ||
llvm-strings | ||
llvm-symbolizer | ||
llvm-undname | ||
llvm-xray | ||
llvm-yaml-numeric-parser-fuzzer | ||
llvm-yaml-parser-fuzzer | ||
lto | ||
msbuild | ||
obj2yaml | ||
opt | ||
opt-viewer | ||
remarks-shlib | ||
sancov | ||
sanstats | ||
split-file | ||
verify-uselistorder | ||
vfabi-demangle-fuzzer | ||
xcode-toolchain | ||
yaml2obj | ||
CMakeLists.txt |