[PATCH] D11722: [ThinLTO] Bitcode reading/writing support for ThinLTO function summary/index

Duncan P. N. Exon Smith via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 13 09:42:16 PDT 2015


> On 2015-Aug-12, at 21:23, Teresa Johnson <tejohnson at google.com> wrote:
> 
> tejohnson updated the summary for this revision.
> tejohnson updated this revision to Diff 32027.
> tejohnson added a comment.
> 
> Removed native object wrapper support from this patch.
> 
> 
> http://reviews.llvm.org/D11722
> 
> Files:
>  include/llvm/Bitcode/LLVMBitCodes.h
>  include/llvm/Bitcode/ReaderWriter.h
>  lib/Bitcode/Reader/BitcodeReader.cpp
>  lib/Bitcode/Writer/BitcodeWriter.cpp
>  tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
> 
> <D11722.32027.patch>

(Sorry I'm so late getting to this patch.)

I'm concerned about the direction.  IIUC, the purpose of this is faster
lazy-loading.  Why do this in a side-channel?  Why not optimize the
existing lazy-loader?  I imagine the LTO model implemented by the gold
plugin would benefit from this, for example.  If we need an extra index
to make lazy-loading "fast enough", it seems like the index should be
available (as an opt-in for time/space tradeoff) for other consumers as
well.  Alternatively, maybe there's something we can change about how
the existing lazy-loader works (or the layout of bitcode) to be more
amenable to the partial loading ThinLTO needs.

Not included in this patch is support for lazy-loading of metadata,
something you suggested you had support for in your prototype (and I
assume ThinLTO relies on it).  I think it's particularly important that
whatever you do there isn't ThinLTO-specific.



More information about the llvm-commits mailing list