[llvm-dev] RFC: Removing the DataStreamer and MemoryObject interfaces

Peter Collingbourne via llvm-dev llvm-dev at lists.llvm.org
Fri Oct 28 10:08:22 PDT 2016


Hi all,

BitstreamReader is the only in-tree client of the DataStreamer and
MemoryObject interfaces. In practice when using user-facing LLVM tools, the
bitcode will normally either be in memory or in a file, so the best way to
access it is through memory, either directly or memory mapped.

As part of some refactorings I am making to BitstreamReader, I would like
to simplify it by changing it to use a memory buffer directly and then
removing the DataStreamer and MemoryObject interfaces.

My understanding that the only significant user of that interface as
designed (for network streaming) is PNaCl, however it looks like removing
this interface would not impose a significant burden on that project; they
are already maintaining a couple of forks of BitstreamReader [1] so it
would appear that the only change necessary on their side would be to also
fork the interfaces.

If you are aware of any other significant users, please speak up!

Thanks,
-- 
-- 
Peter

[1] https://chromium.googlesource.com/native_client/pnacl-llvm/+/master/
include/llvm/Bitcode/NaCl/NaClBitstreamReader.h
https://chromium.googlesource.com/native_client/pnacl-subzero/+/master/pnacl-llvm/include/llvm/Bitcode/NaCl/NaClBitstreamReader.h
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161028/713bee20/attachment.html>


More information about the llvm-dev mailing list