<div dir="ltr">I think at this point we can just delete the streaming reader.</div><br><div class="gmail_quote"><div dir="ltr">On Fri, Oct 28, 2016 at 10:04 AM Peter Collingbourne via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Agreed that we should consider removing it, but I'd like to first make sure this is ok with the PNaCl developers. I'll send an RFC to llvm-dev.<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Separately though this patch would seem to be a useful step towards removing it due to the switch to a mostly buffer-based interface.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Peter</div></div><div class="gmail_extra gmail_msg"></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On Fri, Oct 28, 2016 at 6:00 AM, Rafael Espíndola <span dir="ltr" class="gmail_msg"><<a href="mailto:rafael.espindola@gmail.com" class="gmail_msg" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Can we just delete it and the streaming reader?<br class="gmail_msg">
<br class="gmail_msg">
My understanding was that it was just used for PNaCl and PNaCl is<br class="gmail_msg">
moving to subzero.<br class="gmail_msg">
<br class="gmail_msg">
Cheers,<br class="gmail_msg">
Rafael<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
On 28 October 2016 at 05:14, Peter Collingbourne via llvm-commits<br class="gmail_msg">
<div class="gmail_msg"><div class="m_3036510075177256376h5 gmail_msg"><<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br class="gmail_msg">
> pcc created this revision.<br class="gmail_msg">
> pcc added a reviewer: mehdi_amini.<br class="gmail_msg">
> pcc added a subscriber: llvm-commits.<br class="gmail_msg">
><br class="gmail_msg">
> This simplifies the existing MemoryObject interface to the following:<br class="gmail_msg">
><br class="gmail_msg">
> /// Returns a reference to a buffer containing all of the data read so far.<br class="gmail_msg">
> ArrayRef<uint8_t> getBuffer() const;<br class="gmail_msg">
><br class="gmail_msg">
> /// Try to extend the buffer held by this MemoryObject to at least Size<br class="gmail_msg">
> /// bytes. Calling this function invalidates any buffer previously<br class="gmail_msg">
> /// returned by getBuffer().<br class="gmail_msg">
> ///<br class="gmail_msg">
> /// @result True if successful.<br class="gmail_msg">
> bool tryExtendTo(uint64_t Size);<br class="gmail_msg">
><br class="gmail_msg">
> /// Returns the size of the region in bytes.  (The region is contiguous, so<br class="gmail_msg">
> /// the highest valid address of the region is getExtent() - 1). Calling this<br class="gmail_msg">
> /// function invalidates any buffer previously returned by getBuffer().<br class="gmail_msg">
> ///<br class="gmail_msg">
> /// @result The size of the region.<br class="gmail_msg">
> uint64_t getExtent();<br class="gmail_msg">
><br class="gmail_msg">
> This interface is not only smaller, but it results in better performance<br class="gmail_msg">
> likely as a result of avoiding a virtual call and a copy for each word we<br class="gmail_msg">
> read. I observed a performance improvement of 7.5% when using "llvm-dis<br class="gmail_msg">
> -disable-output" and 3% when using "opt -disable-output -disable-verify"<br class="gmail_msg">
> to read a bitcode file of size ~11MB (median of 100 runs).<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> <a href="https://reviews.llvm.org/D26068" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D26068</a><br class="gmail_msg">
><br class="gmail_msg">
> Files:<br class="gmail_msg">
>   llvm/include/llvm/Bitcode/BitstreamReader.h<br class="gmail_msg">
>   llvm/include/llvm/Support/MemoryObject.h<br class="gmail_msg">
>   llvm/include/llvm/Support/StreamingMemoryObject.h<br class="gmail_msg">
>   llvm/lib/Bitcode/Reader/BitcodeReader.cpp<br class="gmail_msg">
>   llvm/lib/Support/StreamingMemoryObject.cpp<br class="gmail_msg">
>   llvm/unittests/Support/StreamingMemoryObjectTest.cpp<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
</div></div>> _______________________________________________<br class="gmail_msg">
> llvm-commits mailing list<br class="gmail_msg">
> <a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg">
><br class="gmail_msg">
</blockquote></div><br class="gmail_msg"><br clear="all" class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div></div><div class="gmail_extra gmail_msg">-- <br class="gmail_msg"><div class="m_3036510075177256376gmail_signature gmail_msg" data-smartmail="gmail_signature"><div dir="ltr" class="gmail_msg">-- <div class="gmail_msg">Peter</div></div></div>
</div>
_______________________________________________<br class="gmail_msg">
llvm-commits mailing list<br class="gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg">
</blockquote></div>