aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/Module.cpp
diff options
context:
space:
mode:
authorManman Ren <manman.ren@gmail.com>2015-03-13 19:24:30 +0000
committerManman Ren <manman.ren@gmail.com>2015-03-13 19:24:30 +0000
commit4a9b0ebe83d199d0aa2bc3c7fe1fd24f1280960e (patch)
treede2cb487b2df81d871467b210044ac36a201750b /llvm/lib/IR/Module.cpp
parentc6820ec1c2bdfba3f044b634476cdcafda52e0d0 (diff)
downloadllvm-4a9b0ebe83d199d0aa2bc3c7fe1fd24f1280960e.zip
llvm-4a9b0ebe83d199d0aa2bc3c7fe1fd24f1280960e.tar.gz
llvm-4a9b0ebe83d199d0aa2bc3c7fe1fd24f1280960e.tar.bz2
Add a parameter for getLazyBitcodeModule to lazily load Metadata.
We only defer loading metadata inside ParseModule when ShouldLazyLoadMetadata is true and we have not loaded any Metadata block yet. This commit implements all-or-nothing loading of Metadata. If there is a request to load any metadata block, we will load all deferred metadata blocks. We make sure the deferred metadata blocks are loaded before we materialize any function or a module. The default value of the added parameter ShouldLazyLoadMetadata for getLazyBitcodeModule is false, so the default behavior stays the same. We only set the parameter to true when creating LTOModule in local contexts. These can only really be used for parsing symbols, so it's unnecessary to ever load the metadata blocks. If we are going to enable lazy-loading of Metadata for other usages of getLazyBitcodeModule, where deferred metadata blocks need to be loaded, we can expose BitcodeReader::materializeMetadata to Module, similar to Module::materialize. rdar://19804575 llvm-svn: 232198
Diffstat (limited to 'llvm/lib/IR/Module.cpp')
0 files changed, 0 insertions, 0 deletions