aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-12-17 22:05:42 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-12-17 22:05:42 +0000
commit140d41b791825eb29dcfcb81744ef7a87c554bba (patch)
tree3ab5aac030f255b9a29f822922ae0967aea36eaf /llvm/lib/Object/MachOObjectFile.cpp
parent6c93b3e29c56d14eab570ce62cd646a95f0c1403 (diff)
downloadllvm-140d41b791825eb29dcfcb81744ef7a87c554bba.zip
llvm-140d41b791825eb29dcfcb81744ef7a87c554bba.tar.gz
llvm-140d41b791825eb29dcfcb81744ef7a87c554bba.tar.bz2
LTO: Lazy-load LTOModule in local contexts
Start lazy-loading `LTOModule`s that own their contexts. These can only really be used for parsing symbols, so its unnecessary to ever materialize their functions. I looked into using `IRObjectFile::create()` and optionally calling `materializAllPermanently()` afterwards, but this turned out to be awkward. - The default target triple and data layout logic needs to happen *before* the call to `IRObjectFile::IRObjectFile()`, but after `Module` was created. - I tried passing a lambda in to do the module initialization, but this seemed to require threading the error message from `TargetRegistry::lookupTarget()` through `std::error_code`. - I also looked at setting `errMsg` directly from within the lambda, but this didn't look any better. (I guess there's a reason we weren't already using that function.) llvm-svn: 224466
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions