summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/expression_command/call-function
diff options
context:
space:
mode:
authorMehdi Amini <mehdi.amini@apple.com>2017-01-04 22:54:33 +0000
committerMehdi Amini <mehdi.amini@apple.com>2017-01-04 22:54:33 +0000
commit19ef4fad91931daff9bb7b592b4c8100d92a9638 (patch)
tree085b5e5258395ff9370ad28b66e1a929a79ada9f /lldb/packages/Python/lldbsuite/test/expression_command/call-function
parent867aad13594af2cf09e977260eae8b186eb41bce (diff)
downloadbcm5719-llvm-19ef4fad91931daff9bb7b592b4c8100d92a9638.tar.gz
bcm5719-llvm-19ef4fad91931daff9bb7b592b4c8100d92a9638.zip
Use lazy-loading of Metadata in MetadataLoader when importing is enabled (NFC)
Summary: This is a relatively simple scheme: we use the index emitted in the bitcode to avoid loading all the global metadata. Instead we load the index with their position in the bitcode so that we can load each of them individually. Materializing the global metadata block in this condition only triggers loading the named metadata, and the ones referenced from there (transitively). When materializing a function, metadata from the global block are loaded lazily as they are referenced. Two main current limitations are: 1) Global values other than functions are not materialized on demand, so we need to eagerly load METADATA_GLOBAL_DECL_ATTACHMENT records (and their transitive dependencies). 2) When we load a single metadata, we don't recurse on the operands, instead we use a placeholder or a temporary metadata. Unfortunately tepmorary nodes are very expensive. This is why we don't have it always enabled and only for importing. These two limitations can be lifted in a subsequent improvement if needed. With this change, the total link time of opt with ThinLTO and Debug Info enabled is going down from 282s to 224s (~20%). Reviewers: pcc, tejohnson, dexonsmith Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D28113 llvm-svn: 291027
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/call-function')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud